Skip to content

Commit 37b3a06

Browse files
committed
Buat use case endpoint ping
Sekalian buat unit testnya.
1 parent 5ee2f1d commit 37b3a06

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import 'package:dipantau_desktop_client/core/error/failure.dart';
2+
import 'package:dipantau_desktop_client/core/usecase/usecase.dart';
3+
import 'package:dipantau_desktop_client/feature/data/model/general/general_response.dart';
4+
import 'package:dipantau_desktop_client/feature/domain/repository/general/general_repository.dart';
5+
6+
class Ping implements UseCaseRecords<GeneralResponse, NoParams> {
7+
final GeneralRepository repository;
8+
9+
Ping({required this.repository});
10+
11+
@override
12+
Future<({Failure? failure, GeneralResponse? response})> call(NoParams params) {
13+
return repository.ping();
14+
}
15+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import 'dart:convert';
2+
3+
import 'package:dipantau_desktop_client/core/usecase/usecase.dart';
4+
import 'package:dipantau_desktop_client/feature/data/model/general/general_response.dart';
5+
import 'package:dipantau_desktop_client/feature/domain/usecase/ping/ping.dart';
6+
import 'package:flutter_test/flutter_test.dart';
7+
import 'package:mockito/mockito.dart';
8+
9+
import '../../../../fixture/fixture_reader.dart';
10+
import '../../../../helper/mock_helper.mocks.dart';
11+
12+
void main() {
13+
late Ping useCase;
14+
late MockGeneralRepository mockRepository;
15+
16+
setUp(() {
17+
mockRepository = MockGeneralRepository();
18+
useCase = Ping(repository: mockRepository);
19+
});
20+
21+
test(
22+
'pastikan objek repository berhasil menerima respon sukses atau gagal dari endpoint',
23+
() async {
24+
// arrange
25+
final tResponse = GeneralResponse.fromJson(
26+
json.decode(
27+
fixture('general_response.json'),
28+
),
29+
);
30+
final tParams = NoParams();
31+
final tResult = (failure: null, response: tResponse);
32+
when(mockRepository.ping()).thenAnswer((_) async => tResult);
33+
34+
// act
35+
final result = await useCase(tParams);
36+
37+
// assert
38+
expect(result, tResult);
39+
verify(mockRepository.ping());
40+
verifyNoMoreInteractions(mockRepository);
41+
},
42+
);
43+
}

0 commit comments

Comments
 (0)