Skip to content

Commit 85bcebc

Browse files
committed
feat: add unit tests for ScheduleRepository implementation's createSchedule function
1 parent 81890ea commit 85bcebc

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
import 'package:flutter_test/flutter_test.dart';
2+
import 'package:mockito/mockito.dart';
3+
import 'package:on_time_front/data/repositories/schedule_repository_impl.dart';
4+
import 'package:on_time_front/domain/entities/place_entity.dart';
5+
import 'package:on_time_front/domain/entities/schedule_entity.dart';
6+
import 'package:on_time_front/domain/repositories/schedule_repository.dart';
7+
8+
import '../../helpers/mock.mocks.dart';
9+
10+
void main() {
11+
late MockScheduleLocalDataSource mockScheduleLocalDataSource;
12+
late MockScheduleRemoteDataSource mockScheduleRemoteDataSource;
13+
late ScheduleRepository scheduleRepository;
14+
15+
final tPlaceEntity = PlaceEntity(
16+
id: 1,
17+
placeName: 'Office',
18+
);
19+
20+
final tScheduleEntity = ScheduleEntity(
21+
id: 1,
22+
place: tPlaceEntity,
23+
scheduleName: 'Meeting',
24+
scheduleTime: DateTime.now(),
25+
moveTime: DateTime(0, 0, 0, 0, 10),
26+
isChanged: false,
27+
isStarted: false,
28+
scheduleSpareTime: DateTime(0, 0, 0, 0, 5),
29+
scheduleNote: 'Discuss project updates',
30+
);
31+
32+
setUpAll(() {
33+
mockScheduleLocalDataSource = MockScheduleLocalDataSource();
34+
mockScheduleRemoteDataSource = MockScheduleRemoteDataSource();
35+
scheduleRepository = ScheduleRepositoryImpl(
36+
scheduleLocalDataSource: mockScheduleLocalDataSource,
37+
scheduleRemoteDataSource: mockScheduleRemoteDataSource,
38+
);
39+
});
40+
group(
41+
'createSchedule',
42+
() {
43+
test(
44+
'when successful [createSchedule] should create a schedule with the given schedule entity',
45+
() async {
46+
// Arrange
47+
when(mockScheduleLocalDataSource.createSchedule(tScheduleEntity, 1))
48+
.thenAnswer((_) async {});
49+
when(mockScheduleRemoteDataSource.createSchedule(tScheduleEntity))
50+
.thenAnswer((_) async {});
51+
// Act
52+
await scheduleRepository.createSchedule(tScheduleEntity, 1);
53+
// Assert
54+
verify(
55+
mockScheduleLocalDataSource.createSchedule(tScheduleEntity, 1));
56+
verify(mockScheduleRemoteDataSource.createSchedule(tScheduleEntity));
57+
},
58+
);
59+
},
60+
);
61+
}

0 commit comments

Comments
 (0)