Skip to content

Commit e427d24

Browse files
committed
Add tests for helpers and moels to Flutter and Dart SDKs
1 parent fbeead0 commit e427d24

File tree

9 files changed

+415
-0
lines changed

9 files changed

+415
-0
lines changed

src/SDK/Language/Dart.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,36 @@ public function getFiles(): array
401401
'destination' => 'docs/examples/{{service.name | caseLower}}/{{method.name | caseDash}}.md',
402402
'template' => 'dart/docs/example.md.twig',
403403
],
404+
[
405+
'scope' => 'default',
406+
'destination' => '/test/id_test.dart',
407+
'template' => 'dart/test/id_test.dart.twig',
408+
],
409+
[
410+
'scope' => 'default',
411+
'destination' => '/test/permission_test.dart',
412+
'template' => 'dart/test/permission_test.dart.twig',
413+
],
414+
[
415+
'scope' => 'default',
416+
'destination' => '/test/query_test.dart',
417+
'template' => 'dart/test/query_test.dart.twig',
418+
],
419+
[
420+
'scope' => 'default',
421+
'destination' => '/test/role_test.dart',
422+
'template' => 'dart/test/role_test.dart.twig',
423+
],
424+
[
425+
'scope' => 'default',
426+
'destination' => '/test/src/enums_test.dart',
427+
'template' => 'dart/test/src/enums_test.dart.twig',
428+
],
429+
[
430+
'scope' => 'default',
431+
'destination' => '/test/src/response_test.dart',
432+
'template' => 'dart/test/src/response_test.dart.twig',
433+
],
404434
[
405435
'scope' => 'default',
406436
'destination' => '.travis.yml',

src/SDK/Language/Flutter.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,41 @@ public function getFiles(): array
245245
'destination' => '/test/services/{{service.name | caseDash}}_test.dart',
246246
'template' => 'flutter/test/services/service_test.dart.twig',
247247
],
248+
[
249+
'scope' => 'definition',
250+
'destination' => '/test/src/models/{{definition.name | caseSnake }}_test.dart',
251+
'template' => 'dart/test/src/models/model_test.dart.twig',
252+
],
253+
[
254+
'scope' => 'default',
255+
'destination' => '/test/id_test.dart',
256+
'template' => 'dart/test/id_test.dart.twig',
257+
],
258+
[
259+
'scope' => 'default',
260+
'destination' => '/test/permission_test.dart',
261+
'template' => 'dart/test/permission_test.dart.twig',
262+
],
263+
[
264+
'scope' => 'default',
265+
'destination' => '/test/query_test.dart',
266+
'template' => 'dart/test/query_test.dart.twig',
267+
],
268+
[
269+
'scope' => 'default',
270+
'destination' => '/test/role_test.dart',
271+
'template' => 'dart/test/role_test.dart.twig',
272+
],
273+
[
274+
'scope' => 'default',
275+
'destination' => '/test/src/enums_test.dart',
276+
'template' => 'dart/test/src/enums_test.dart.twig',
277+
],
278+
[
279+
'scope' => 'default',
280+
'destination' => '/test/src/response_test.dart',
281+
'template' => 'dart/test/src/response_test.dart.twig',
282+
],
248283
[
249284
'scope' => 'method',
250285
'destination' => 'docs/examples/{{service.name | caseLower}}/{{method.name | caseDash}}.md',

templates/dart/test/id_test.dart.twig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import 'package:{{ language.params.packageName }}/{{ language.params.packageName }}.dart';
2+
import 'package:flutter_test/flutter_test.dart';
3+
4+
void main() {
5+
group('unique()', () {
6+
test('returns unique()', () {
7+
expect(ID.unique(), 'unique()');
8+
});
9+
});
10+
11+
group('custom()', () {
12+
test('returns the custom string', () {
13+
expect(ID.custom('custom'), 'custom');
14+
});
15+
});
16+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import 'package:{{ language.params.packageName }}/{{ language.params.packageName }}.dart';
2+
import 'package:flutter_test/flutter_test.dart';
3+
4+
void main() {
5+
group('read()', () {
6+
test('returns read', () {
7+
expect(Permission.read(Role.any()), 'read("any")');
8+
});
9+
});
10+
11+
group('write()', () {
12+
test('returns write', () {
13+
expect(Permission.write(Role.any()), 'write("any")');
14+
});
15+
});
16+
17+
group('create()', () {
18+
test('returns create', () {
19+
expect(Permission.create(Role.any()), 'create("any")');
20+
});
21+
});
22+
23+
group('update()', () {
24+
test('returns update', () {
25+
expect(Permission.update(Role.any()), 'update("any")');
26+
});
27+
});
28+
29+
group('delete()', () {
30+
test('returns delete', () {
31+
expect(Permission.delete(Role.any()), 'delete("any")');
32+
});
33+
});
34+
}
Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
import 'package:{{ language.params.packageName }}/{{ language.params.packageName }}.dart';
2+
import 'package:flutter_test/flutter_test.dart';
3+
4+
class BasicFilterQueryTest {
5+
final String description;
6+
final dynamic value;
7+
final String expectedValues;
8+
9+
BasicFilterQueryTest({
10+
required this.description,
11+
required this.value,
12+
required this.expectedValues,
13+
});
14+
}
15+
16+
void main() {
17+
group('basic filter tests', () {
18+
final tests = [
19+
BasicFilterQueryTest(
20+
description: 'with a string',
21+
value: 's',
22+
expectedValues: '["s"]',
23+
),
24+
BasicFilterQueryTest(
25+
description: 'with an integer',
26+
value: 1,
27+
expectedValues: '[1]',
28+
),
29+
BasicFilterQueryTest(
30+
description: 'with a double',
31+
value: 1.2,
32+
expectedValues: '[1.2]',
33+
),
34+
BasicFilterQueryTest(
35+
description: 'with a whole number double',
36+
value: 1.0,
37+
expectedValues: '[1.0]',
38+
),
39+
BasicFilterQueryTest(
40+
description: 'with a bool',
41+
value: false,
42+
expectedValues: '[false]',
43+
),
44+
BasicFilterQueryTest(
45+
description: 'with a list',
46+
value: ['a', 'b', 'c'],
47+
expectedValues: '["a","b","c"]',
48+
),
49+
];
50+
51+
group('equal()', () {
52+
for (var t in tests) {
53+
test(t.description, () {
54+
expect(
55+
Query.equal('attr', t.value),
56+
'equal("attr", ${t.expectedValues})',
57+
);
58+
});
59+
}
60+
});
61+
62+
group('notEqual()', () {
63+
for (var t in tests) {
64+
test(t.description, () {
65+
expect(
66+
Query.notEqual('attr', t.value),
67+
'notEqual("attr", ${t.expectedValues})',
68+
);
69+
});
70+
}
71+
});
72+
73+
group('lessThan()', () {
74+
for (var t in tests) {
75+
test(t.description, () {
76+
expect(
77+
Query.lessThan('attr', t.value),
78+
'lessThan("attr", ${t.expectedValues})',
79+
);
80+
});
81+
}
82+
});
83+
84+
group('lessThanEqual()', () {
85+
for (var t in tests) {
86+
test(t.description, () {
87+
expect(
88+
Query.lessThanEqual('attr', t.value),
89+
'lessThanEqual("attr", ${t.expectedValues})',
90+
);
91+
});
92+
}
93+
});
94+
95+
group('greaterThan()', () {
96+
for (var t in tests) {
97+
test(t.description, () {
98+
expect(
99+
Query.greaterThan('attr', t.value),
100+
'greaterThan("attr", ${t.expectedValues})',
101+
);
102+
});
103+
}
104+
});
105+
106+
group('greaterThanEqual()', () {
107+
for (var t in tests) {
108+
test(t.description, () {
109+
expect(
110+
Query.greaterThanEqual('attr', t.value),
111+
'greaterThanEqual("attr", ${t.expectedValues})',
112+
);
113+
});
114+
}
115+
});
116+
});
117+
118+
group('search()', () {
119+
test('returns search', () {
120+
expect(Query.search('attr', 'keyword1 keyword2'), 'search("attr", ["keyword1 keyword2"])');
121+
});
122+
});
123+
124+
group('isNull()', () {
125+
test('returns isNull', () {
126+
expect(Query.isNull('attr'), 'isNull("attr")');
127+
});
128+
});
129+
130+
group('isNotNull()', () {
131+
test('returns isNotNull', () {
132+
expect(Query.isNotNull('attr'), 'isNotNull("attr")');
133+
});
134+
});
135+
136+
group('between()', () {
137+
test('with integers', () {
138+
expect(Query.between('attr', 1, 2), 'between("attr", [1,2])');
139+
});
140+
141+
test('with doubles', () {
142+
expect(Query.between('attr', 1.0, 2.0), 'between("attr", [1.0,2.0])');
143+
});
144+
145+
test('with strings', () {
146+
expect(Query.between('attr', "a", "z"), 'between("attr", ["a","z"])');
147+
});
148+
});
149+
150+
group('select()', () {
151+
test('returns select', () {
152+
expect(Query.select(['attr1', 'attr2']), 'select(["attr1","attr2"])');
153+
});
154+
});
155+
156+
group('orderAsc()', () {
157+
test('returns orderAsc', () {
158+
expect(Query.orderAsc('attr'), 'orderAsc("attr")');
159+
});
160+
});
161+
162+
group('orderDesc()', () {
163+
test('returns orderDesc', () {
164+
expect(Query.orderDesc('attr'), 'orderDesc("attr")');
165+
});
166+
});
167+
168+
group('cursorBefore()', () {
169+
test('returns cursorBefore', () {
170+
expect(Query.cursorBefore(ID.custom('custom')), 'cursorBefore("custom")');
171+
});
172+
});
173+
174+
group('cursorAfter()', () {
175+
test('returns cursorAfter', () {
176+
expect(Query.cursorAfter(ID.custom('custom')), 'cursorAfter("custom")');
177+
});
178+
});
179+
180+
group('limit()', () {
181+
test('returns limit', () {
182+
expect(Query.limit(1), 'limit(1)');
183+
});
184+
});
185+
186+
group('offset()', () {
187+
test('returns offset', () {
188+
expect(Query.offset(1), 'offset(1)');
189+
});
190+
});
191+
}
192+
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import 'package:{{ language.params.packageName }}/{{ language.params.packageName }}.dart';
2+
import 'package:flutter_test/flutter_test.dart';
3+
4+
void main() {
5+
group('any()', () {
6+
test('returns any', () {
7+
expect(Role.any(), 'any');
8+
});
9+
});
10+
11+
group('user()', () {
12+
test('without status', () {
13+
expect(Role.user('custom'), 'user:custom');
14+
});
15+
16+
test('with status', () {
17+
expect(Role.user('custom', 'verified'), 'user:custom/verified');
18+
});
19+
});
20+
21+
group('users()', () {
22+
test('without status', () {
23+
expect(Role.users(), 'users');
24+
});
25+
26+
test('with status', () {
27+
expect(Role.users('verified'), 'users/verified');
28+
});
29+
});
30+
31+
group('guests()', () {
32+
test('returns guests', () {
33+
expect(Role.guests(), 'guests');
34+
});
35+
});
36+
37+
group('team()', () {
38+
test('without role', () {
39+
expect(Role.team('custom'), 'team:custom');
40+
});
41+
42+
test('with role', () {
43+
expect(Role.team('custom', 'owner'), 'team:custom/owner');
44+
});
45+
});
46+
47+
group('member()', () {
48+
test('returns member', () {
49+
expect(Role.member('custom'), 'member:custom');
50+
});
51+
});
52+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import 'package:{{ language.params.packageName }}/src/enums.dart';
2+
import 'package:flutter_test/flutter_test.dart';
3+
4+
void main() {
5+
group('name()', () {
6+
for (final method in HttpMethod.values) {
7+
test('returns ${method.toString().split('.').last.toUpperCase()} for $method', () {
8+
expect(method.name(), method.toString().split('.').last.toUpperCase());
9+
});
10+
}
11+
});
12+
}

0 commit comments

Comments
 (0)