Skip to content

Commit c0c65dd

Browse files
committed
Added unit tests for OrderByPipe class.
1 parent a44ea24 commit c0c65dd

File tree

2 files changed

+115
-1
lines changed

2 files changed

+115
-1
lines changed

lib/order_by_pipe.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class OrderByPipe implements PipeTransform {
1414

1515
List<SmartTableRecord> transform(
1616
List<SmartTableRecord> array, String columnName, String order) {
17-
if (columnName.isNotEmpty && order.isNotEmpty) {
17+
if (columnName.isNotEmpty && order.isNotEmpty && (order=='asc' || order=='des')) {
1818
array.sort((SmartTableRecord a, SmartTableRecord b) {
1919
var value1 = getProperty(a, columnName).reflectee;
2020
var value2 = getProperty(b, columnName).reflectee;

test/order_by_pipe.dart

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
@TestOn("dart-vm")
2+
3+
import 'package:test/test.dart';
4+
import 'package:DartAngular2SmartTable/smart_table_component.dart';
5+
6+
void main() {
7+
test('transform() asc sort', () {
8+
OrderByPipe orderByPipe = new OrderByPipe();
9+
SmartTableRecord alexRecord = new SmartTableRecord('Alex',
10+
35,
11+
Sex.male(),
12+
new Department('Russia dept.'),
13+
new Address('Moscow', 'Fuchika str.', '12F'));
14+
SmartTableRecord mariaRecord = new SmartTableRecord('Maria',
15+
25,
16+
Sex.female(),
17+
new Department('Italy dept.'),
18+
new Address('Milano', 'Corso Magento str.', '32'));
19+
SmartTableRecord innaRecord = new SmartTableRecord('Inna',
20+
51,
21+
Sex.female(),
22+
new Department('Russia dept.'),
23+
new Address('Moscow', 'Fuchika str.', '98q'));
24+
List<SmartTableRecord> smartTableRecordList = [alexRecord, mariaRecord, innaRecord];
25+
26+
List<SmartTableRecord> smartTableRecordListNameByAsc = [alexRecord, innaRecord, mariaRecord];
27+
28+
List<SmartTableRecord> smartTableRecordListResult =
29+
orderByPipe.transform(smartTableRecordList, 'name', 'asc');
30+
31+
expect(smartTableRecordListResult, smartTableRecordListNameByAsc);
32+
});
33+
34+
test('transform() des sort', () {
35+
OrderByPipe orderByPipe = new OrderByPipe();
36+
SmartTableRecord alexRecord = new SmartTableRecord('Alex',
37+
35,
38+
Sex.male(),
39+
new Department('Russia dept.'),
40+
new Address('Moscow', 'Fuchika str.', '12F'));
41+
SmartTableRecord mariaRecord = new SmartTableRecord('Maria',
42+
25,
43+
Sex.female(),
44+
new Department('Italy dept.'),
45+
new Address('Milano', 'Corso Magento str.', '32'));
46+
SmartTableRecord innaRecord = new SmartTableRecord('Inna',
47+
51,
48+
Sex.female(),
49+
new Department('Russia dept.'),
50+
new Address('Moscow', 'Fuchika str.', '98q'));
51+
List<SmartTableRecord> smartTableRecordList = [alexRecord, mariaRecord, innaRecord];
52+
53+
List<SmartTableRecord> smartTableRecordListNameByDes = [mariaRecord, innaRecord, alexRecord];
54+
55+
List<SmartTableRecord> smartTableRecordListResult =
56+
orderByPipe.transform(smartTableRecordList, 'name', 'des');
57+
58+
expect(smartTableRecordListResult, smartTableRecordListNameByDes);
59+
});
60+
61+
test('transform() wrong order', () {
62+
OrderByPipe orderByPipe = new OrderByPipe();
63+
SmartTableRecord alexRecord = new SmartTableRecord('Alex',
64+
35,
65+
Sex.male(),
66+
new Department('Russia dept.'),
67+
new Address('Moscow', 'Fuchika str.', '12F'));
68+
SmartTableRecord mariaRecord = new SmartTableRecord('Maria',
69+
25,
70+
Sex.female(),
71+
new Department('Italy dept.'),
72+
new Address('Milano', 'Corso Magento str.', '32'));
73+
SmartTableRecord innaRecord = new SmartTableRecord('Inna',
74+
51,
75+
Sex.female(),
76+
new Department('Russia dept.'),
77+
new Address('Moscow', 'Fuchika str.', '98q'));
78+
List<SmartTableRecord> smartTableRecordList = [alexRecord, mariaRecord, innaRecord];
79+
80+
List<SmartTableRecord> smartTableRecordListNameWrongOrder = [alexRecord, mariaRecord, innaRecord];
81+
82+
List<SmartTableRecord> smartTableRecordListResult =
83+
orderByPipe.transform(smartTableRecordList, 'name', 'wrongOrder');
84+
85+
expect(smartTableRecordListResult, smartTableRecordListNameWrongOrder);
86+
});
87+
88+
test('transform() wrong field', () {
89+
OrderByPipe orderByPipe = new OrderByPipe();
90+
SmartTableRecord alexRecord = new SmartTableRecord('Alex',
91+
35,
92+
Sex.male(),
93+
new Department('Russia dept.'),
94+
new Address('Moscow', 'Fuchika str.', '12F'));
95+
SmartTableRecord mariaRecord = new SmartTableRecord('Maria',
96+
25,
97+
Sex.female(),
98+
new Department('Italy dept.'),
99+
new Address('Milano', 'Corso Magento str.', '32'));
100+
SmartTableRecord innaRecord = new SmartTableRecord('Inna',
101+
51,
102+
Sex.female(),
103+
new Department('Russia dept.'),
104+
new Address('Moscow', 'Fuchika str.', '98q'));
105+
List<SmartTableRecord> smartTableRecordList = [alexRecord, mariaRecord, innaRecord];
106+
107+
try {
108+
orderByPipe.transform(smartTableRecordList, 'wrongField', 'asc');
109+
expect(true, false);
110+
} on NoSuchMethodError {
111+
expect(true, true);
112+
}
113+
});
114+
}

0 commit comments

Comments
 (0)