|
45 | 45 | import static com.flutterwave.raveandroid.RaveConstants.fieldPhone; |
46 | 46 | import static com.flutterwave.raveandroid.RaveConstants.noResponse; |
47 | 47 | import static com.flutterwave.raveandroid.RaveConstants.success; |
| 48 | +import static com.flutterwave.raveandroid.RaveConstants.transactionError; |
| 49 | +import static com.flutterwave.raveandroid.RaveConstants.validNetworkPrompt; |
48 | 50 | import static org.junit.Assert.assertEquals; |
49 | 51 | import static org.mockito.ArgumentMatchers.any; |
50 | 52 | import static org.mockito.ArgumentMatchers.anyInt; |
51 | 53 | import static org.mockito.ArgumentMatchers.anyObject; |
52 | 54 | import static org.mockito.ArgumentMatchers.anyString; |
| 55 | +import static org.mockito.Mockito.doThrow; |
53 | 56 | import static org.mockito.Mockito.times; |
54 | 57 | import static org.mockito.Mockito.verify; |
55 | 58 | import static org.mockito.Mockito.when; |
@@ -115,6 +118,20 @@ public void fetchFee_onSuccess_displayFeeCalled() { |
115 | 118 |
|
116 | 119 | } |
117 | 120 |
|
| 121 | + @Test |
| 122 | + public void fetchFee_onSuccess_exceptionThrown_showFetchFeeFailed() throws NullPointerException { |
| 123 | + |
| 124 | + doThrow(NullPointerException.class).when(view).displayFee(any(String.class), any(Payload.class)); |
| 125 | + presenter.fetchFee(generatePayload()); |
| 126 | + |
| 127 | + ArgumentCaptor<Callbacks.OnGetFeeRequestComplete> captor = ArgumentCaptor.forClass(Callbacks.OnGetFeeRequestComplete.class); |
| 128 | + verify(networkRequest).getFee(any(FeeCheckRequestBody.class), captor.capture()); |
| 129 | + captor.getAllValues().get(0).onSuccess(generateFeeCheckResponse()); |
| 130 | + |
| 131 | + verify(view).showFetchFeeFailed(transactionError); |
| 132 | + |
| 133 | + } |
| 134 | + |
118 | 135 |
|
119 | 136 | @Test |
120 | 137 | public void chargeZmMobileMoney_onSuccess_requeryTxCalled() { |
@@ -280,6 +297,22 @@ public void onDataCollected_InvalidDataPassed_showFieldErrorCalled() { |
280 | 297 |
|
281 | 298 | } |
282 | 299 |
|
| 300 | + @Test |
| 301 | + public void onDataCollected_InvalidNetworkError_showToast() { |
| 302 | + //arrange |
| 303 | + HashMap<String, ViewObject> map = generateViewData(); |
| 304 | + int failedValidations = 2; |
| 305 | + generateViewValidation(failedValidations); |
| 306 | + |
| 307 | + when(networkValidator.isNetworkValid(anyString())).thenReturn(false); |
| 308 | + |
| 309 | + //act |
| 310 | + presenter.onDataCollected(map); |
| 311 | + //assert |
| 312 | + verify(view).showToast(validNetworkPrompt); |
| 313 | + |
| 314 | + } |
| 315 | + |
283 | 316 | @Test |
284 | 317 | public void onDataCollected_validDataPassed_onValidationSuccessfulCalled() { |
285 | 318 | //arrange |
|
0 commit comments