-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathusecase.code-snippets
More file actions
77 lines (77 loc) · 2.4 KB
/
usecase.code-snippets
File metadata and controls
77 lines (77 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
{
"UseCase": {
"scope": "dart",
"prefix": "usecase",
"body": [
"import 'package:foo/src/core/failures.dart';",
"import 'package:foo/src/core/use_case.abstract.dart';",
"",
"class ${1:${TM_FILENAME_BASE/(^((?!.usecase).)*)(.*)/${1:/pascalcase}/g}}UseCase implements BaseUseCase<${2:Data}, ${3:Param}> {",
" final ${4:Repository} _repo;",
"",
" const $1UseCase(this._repo);",
"",
" @override",
" Future<Either<Failure, $2>> call([$3 ${5:param}]) {",
" throw UnimplementedError('$1');",
" }",
"}",
""
],
"description": "Repository abstract class"
},
"UsecaseTest": {
"scope": "dart",
"prefix": "usecaseTest",
"body": [
"import 'package:flutter_test/flutter_test.dart';",
"import 'package:mocktail/mocktail.dart';",
"import 'package:foo/src/core/failures.dart';",
"import 'package:foo/src/modules/usecases.dart';",
"",
"import '../../../../mocks/repository.mocks.dart';",
"",
"void main() {",
" $1Repository repositoryMock;",
" ${6:${TM_FILENAME_BASE/(^((?!.usecase_test).)*)(.*)/${1:/pascalcase}/g}}UseCase usecase;",
"",
" setUp(() {",
" repositoryMock = $1RepositoryMock();",
" usecase = $6UseCase(repositoryMock);",
" });",
"",
" tearDown(() {",
" reset(repositoryMock);",
" });",
"",
" const result = $3;",
"",
" group('$6UseCase Should return the result from repository', () {",
" test('when repo return Right with result', () async {",
" when(repositoryMock.$4())",
" .thenAnswer((_) async => Right(result));",
"",
" final res = await usecase();",
"",
" verify(repositoryMock.$4()).called(1);",
" expect(res, Right(result));",
" });",
" });",
"",
" group('$6UseCase Should return Failure from repository', () {",
" test('when repo return Left with a ${5:ServerFailure}', () async {",
" when(repositoryMock.$4())",
" .thenAnswer((_) async => Left($5()));",
"",
" final res = await usecase();",
"",
" verify(repositoryMock.$4()).called(1);",
" expect(res, equals(Left($5())));",
" });",
" });",
"}",
""
],
"description": "Use case Test"
}
}