Skip to content

Commit cf206a9

Browse files
committed
test: 🧪 add tests for either class
1 parent 89c8ae4 commit cf206a9

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

test/either_test.dart

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import 'package:test/test.dart';
2+
import 'package:exponential_back_off/src/either.dart';
3+
4+
void main() {
5+
test('test Left Either', () {
6+
// arrange
7+
final error = Exception('error');
8+
Either<Exception, int> leftEither = Left(error);
9+
10+
// act
11+
final isLeft = leftEither.isLeft();
12+
final isRight = leftEither.isRight();
13+
14+
final getLeftLeftEither = leftEither.getLeft;
15+
final getLeftRightEither = leftEither.getRight;
16+
17+
final getLeftValue = leftEither.getLeftValue;
18+
final getRightValue = leftEither.getRightValue;
19+
20+
final foldResult = leftEither.fold(
21+
(l) => l,
22+
(r) => 'NO OP',
23+
);
24+
25+
// assert
26+
expect(isLeft, isTrue);
27+
expect(isRight, isFalse);
28+
29+
expect(getLeftLeftEither(), equals(leftEither));
30+
expect(() => getLeftRightEither(), throwsA(isA<NotRightException>()));
31+
32+
expect(getLeftValue(), equals(error));
33+
expect(() => getRightValue(), throwsA(isA<NotRightException>()));
34+
35+
expect(foldResult, equals(error));
36+
});
37+
38+
test('test Right Either', () {
39+
// arrange
40+
final data = 1;
41+
Either<Exception, int> rightEither = Right(data);
42+
43+
// act
44+
final isLeft = rightEither.isLeft();
45+
final isRight = rightEither.isRight();
46+
47+
final getLeftLeftEither = rightEither.getLeft;
48+
final getLeftRightEither = rightEither.getRight;
49+
50+
final getLeftValue = rightEither.getLeftValue;
51+
final getRightValue = rightEither.getRightValue;
52+
53+
final foldResult = rightEither.fold(
54+
(l) => 'NO OP',
55+
(r) => r,
56+
);
57+
58+
// assert
59+
expect(isLeft, isFalse);
60+
expect(isRight, isTrue);
61+
62+
expect(() => getLeftLeftEither(), throwsA(isA<NotLeftException>()));
63+
expect(getLeftRightEither(), equals(rightEither));
64+
65+
expect(getRightValue(), equals(data));
66+
expect(() => getLeftValue(), throwsA(isA<NotLeftException>()));
67+
68+
expect(foldResult, equals(data));
69+
});
70+
}

0 commit comments

Comments
 (0)