@@ -623,4 +623,92 @@ void main() {
623623
624624 testDisconnected2 (() => repository.getTrackUser (tUserId, tDate));
625625 });
626+
627+ group ('deleteTrackUser' , () {
628+ const trackId = 1 ;
629+ final tResponse = GeneralResponse .fromJson (
630+ json.decode (
631+ fixture ('general_response.json' ),
632+ ),
633+ );
634+
635+ test (
636+ 'pastikan mengembalikan objek model GeneralResponse ketika RemoteDataSource berhasil menerima '
637+ 'respon sukses dari endpoint' ,
638+ () async {
639+ // arrange
640+ setUpMockNetworkConnected ();
641+ when (mockRemoteDataSource.deleteTrackUser (any)).thenAnswer ((_) async => tResponse);
642+
643+ // act
644+ final result = await repository.deleteTrackUser (trackId);
645+
646+ // assert
647+ verify (mockRemoteDataSource.deleteTrackUser (trackId));
648+ expect (result.response, tResponse);
649+ },
650+ );
651+
652+ test (
653+ 'pastikan mengembalikan objek ServerFailure ketika RemoteDataSource berhasil menerima '
654+ 'respon timeout dari endpoint' ,
655+ () async {
656+ // arrange
657+ setUpMockNetworkConnected ();
658+ when (mockRemoteDataSource.deleteTrackUser (any))
659+ .thenThrow (DioException (requestOptions: tRequestOptions, message: 'testError' ));
660+
661+ // act
662+ final result = await repository.deleteTrackUser (trackId);
663+
664+ // assert
665+ verify (mockRemoteDataSource.deleteTrackUser (trackId));
666+ expect (result.failure, ServerFailure ('testError' ));
667+ },
668+ );
669+
670+ test (
671+ 'pastikan mengembalikan objek ServerFailure ketika RemoteDataSource menerima respon kegagalan '
672+ 'dari endpoint' ,
673+ () async {
674+ // arrange
675+ setUpMockNetworkConnected ();
676+ when (mockRemoteDataSource.deleteTrackUser (any)).thenThrow (
677+ DioException (
678+ requestOptions: tRequestOptions,
679+ message: 'testError' ,
680+ response: Response (
681+ requestOptions: tRequestOptions,
682+ data: {
683+ 'title' : 'testTitleError' ,
684+ 'message' : 'testMessageError' ,
685+ },
686+ statusCode: 400 ,
687+ ),
688+ ),
689+ );
690+
691+ // act
692+ final result = await repository.deleteTrackUser (trackId);
693+
694+ // assert
695+ verify (mockRemoteDataSource.deleteTrackUser (trackId));
696+ expect (result.failure, ServerFailure ('400 testMessageError' ));
697+ },
698+ );
699+
700+ testServerFailureString2 (
701+ () => mockRemoteDataSource.deleteTrackUser (any),
702+ () => repository.deleteTrackUser (trackId),
703+ () => mockRemoteDataSource.deleteTrackUser (trackId),
704+ );
705+
706+ testParsingFailure2 (
707+ () => mockRemoteDataSource.deleteTrackUser (any),
708+ () => repository.deleteTrackUser (trackId),
709+ () => mockRemoteDataSource.deleteTrackUser (trackId),
710+ );
711+
712+ testDisconnected2 (() => repository.deleteTrackUser (trackId));
713+ });
626714}
0 commit comments