Skip to content

Commit e8b973b

Browse files
committed
Added unit testing and model testing for the new features.
1 parent 5f3959a commit e8b973b

File tree

2 files changed

+210
-0
lines changed

2 files changed

+210
-0
lines changed
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
import 'package:flutter_test/flutter_test.dart';
2+
import 'package:flood_mobile/Model/user_interface_model.dart';
3+
4+
void main() {
5+
group('UserInterfaceModel', () {
6+
test('fromJson should return a valid UserInterfaceModel object', () {
7+
final json = {
8+
'showDateAdded': true,
9+
'showDateCreated': false,
10+
'showRatio': true,
11+
'showLocation': false,
12+
'showTags': true,
13+
'showTrackers': false,
14+
'showTrackersMessage': true,
15+
'showDownloadSpeed': false,
16+
'showUploadSpeed': true,
17+
'showPeers': false,
18+
'showSeeds': true,
19+
'showSize': false,
20+
'showType': true,
21+
'showHash': false,
22+
'showDelete': true,
23+
'showSetTags': false,
24+
'showCheckHash': true,
25+
'showReannounce': false,
26+
'showSetTrackers': true,
27+
'showGenerateMagnetLink': false,
28+
'showPriority': true,
29+
'showInitialSeeding': false,
30+
'showSequentialDownload': true,
31+
'showDownloadTorrent': false,
32+
};
33+
34+
final model = UserInterfaceModel.fromJson(json);
35+
36+
expect(model.showDateAdded, true);
37+
expect(model.showDateCreated, false);
38+
expect(model.showRatio, true);
39+
expect(model.showLocation, false);
40+
expect(model.showTags, true);
41+
expect(model.showTrackers, false);
42+
expect(model.showTrackersMessage, true);
43+
expect(model.showDownloadSpeed, false);
44+
expect(model.showUploadSpeed, true);
45+
expect(model.showPeers, false);
46+
expect(model.showSeeds, true);
47+
expect(model.showSize, false);
48+
expect(model.showType, true);
49+
expect(model.showHash, false);
50+
expect(model.showDelete, true);
51+
expect(model.showSetTags, false);
52+
expect(model.showCheckHash, true);
53+
expect(model.showReannounce, false);
54+
expect(model.showSetTrackers, true);
55+
expect(model.showGenerateMagnetLink, false);
56+
expect(model.showPriority, true);
57+
expect(model.showInitialSeeding, false);
58+
expect(model.showSequentialDownload, true);
59+
expect(model.showDownloadTorrent, false);
60+
});
61+
62+
test('toJson should return a valid JSON map', () {
63+
final model = UserInterfaceModel(
64+
showDateAdded: true,
65+
showDateCreated: false,
66+
showRatio: true,
67+
showLocation: false,
68+
showTags: true,
69+
showTrackers: false,
70+
showTrackersMessage: true,
71+
showDownloadSpeed: false,
72+
showUploadSpeed: true,
73+
showPeers: false,
74+
showSeeds: true,
75+
showSize: false,
76+
showType: true,
77+
showHash: false,
78+
showDelete: true,
79+
showSetTags: false,
80+
showCheckHash: true,
81+
showReannounce: false,
82+
showSetTrackers: true,
83+
showGenerateMagnetLink: false,
84+
showPriority: true,
85+
showInitialSeeding: false,
86+
showSequentialDownload: true,
87+
showDownloadTorrent: false,
88+
);
89+
90+
final json = model.toJson();
91+
92+
expect(json['showDateAdded'], true);
93+
expect(json['showDateCreated'], false);
94+
expect(json['showRatio'], true);
95+
expect(json['showLocation'], false);
96+
expect(json['showTags'], true);
97+
expect(json['showTrackers'], false);
98+
expect(json['showTrackersMessage'], true);
99+
expect(json['showDownloadSpeed'], false);
100+
expect(json['showUploadSpeed'], true);
101+
expect(json['showPeers'], false);
102+
expect(json['showSeeds'], true);
103+
expect(json['showSize'], false);
104+
expect(json['showType'], true);
105+
expect(json['showHash'], false);
106+
expect(json['showDelete'], true);
107+
expect(json['showSetTags'], false);
108+
expect(json['showCheckHash'], true);
109+
expect(json['showReannounce'], false);
110+
expect(json['showSetTrackers'], true);
111+
expect(json['showGenerateMagnetLink'], false);
112+
expect(json['showPriority'], true);
113+
expect(json['showInitialSeeding'], false);
114+
expect(json['showSequentialDownload'], true);
115+
expect(json['showDownloadTorrent'], false);
116+
});
117+
});
118+
}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
import 'package:bloc_test/bloc_test.dart';
2+
import 'package:flood_mobile/Blocs/user_interface_bloc/user_interface_bloc.dart';
3+
import 'package:flood_mobile/Model/user_interface_model.dart';
4+
import 'package:flutter/material.dart';
5+
import 'package:flutter_test/flutter_test.dart';
6+
7+
void main() {
8+
WidgetsFlutterBinding.ensureInitialized();
9+
group(
10+
'UserInterfaceBloc',
11+
() {
12+
late UserInterfaceBloc userInterfaceBloc;
13+
14+
setUp(() {
15+
userInterfaceBloc = UserInterfaceBloc();
16+
});
17+
18+
tearDown(() {
19+
userInterfaceBloc.close();
20+
});
21+
22+
test('initial state should be UserInterfaceState.initial()', () {
23+
expect(userInterfaceBloc.state, UserInterfaceState.initial());
24+
});
25+
26+
blocTest<UserInterfaceBloc, UserInterfaceState>(
27+
'should update the user interface model',
28+
build: () => userInterfaceBloc,
29+
act: (bloc) => bloc.add(
30+
UpdateUserInterfaceEvent(
31+
model: UserInterfaceModel(
32+
showDateAdded: false,
33+
showDateCreated: true,
34+
showRatio: true,
35+
showLocation: false,
36+
showTags: true,
37+
showTrackers: true,
38+
showTrackersMessage: false,
39+
showDownloadSpeed: true,
40+
showUploadSpeed: false,
41+
showPeers: true,
42+
showSeeds: false,
43+
showSize: true,
44+
showType: false,
45+
showHash: true,
46+
showDelete: false,
47+
showCheckHash: true,
48+
showReannounce: false,
49+
showSetTags: true,
50+
showSetTrackers: false,
51+
showGenerateMagnetLink: true,
52+
showPriority: false,
53+
showInitialSeeding: true,
54+
showSequentialDownload: false,
55+
showDownloadTorrent: true,
56+
),
57+
),
58+
),
59+
expect: () => [
60+
UserInterfaceState(
61+
model: UserInterfaceModel(
62+
showDateAdded: false,
63+
showDateCreated: true,
64+
showRatio: true,
65+
showLocation: false,
66+
showTags: true,
67+
showTrackers: true,
68+
showTrackersMessage: false,
69+
showDownloadSpeed: true,
70+
showUploadSpeed: false,
71+
showPeers: true,
72+
showSeeds: false,
73+
showSize: true,
74+
showType: false,
75+
showHash: true,
76+
showDelete: false,
77+
showCheckHash: true,
78+
showReannounce: false,
79+
showSetTags: true,
80+
showSetTrackers: false,
81+
showGenerateMagnetLink: true,
82+
showPriority: false,
83+
showInitialSeeding: true,
84+
showSequentialDownload: false,
85+
showDownloadTorrent: true,
86+
),
87+
),
88+
],
89+
);
90+
},
91+
);
92+
}

0 commit comments

Comments
 (0)