Skip to content

Commit 6136d47

Browse files
committed
Merge branch 'mikelis135-TryCatchTestForFetchFeeForAllPaymentMethod'
2 parents 91b8f61 + 68ff769 commit 6136d47

File tree

8 files changed

+116
-2
lines changed

8 files changed

+116
-2
lines changed

raveandroid/src/main/java/com/flutterwave/raveandroid/ussd/UssdPresenter.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626

2727
import javax.inject.Inject;
2828

29+
import static com.flutterwave.raveandroid.RaveConstants.transactionError;
30+
2931
public class UssdPresenter implements UssdContract.UserActionsListener {
3032
private Context context;
3133
public UssdContract.View mView;
@@ -101,15 +103,15 @@ public void onSuccess(FeeCheckResponse response) {
101103
try {
102104
mView.displayFee(response.getData().getCharge_amount(), payload);
103105
} catch (Exception e) {
104-
mView.showFetchFeeFailed("An error occurred while retrieving transaction fee");
106+
mView.showFetchFeeFailed(transactionError);
105107
}
106108
}
107109

108110
@Override
109111
public void onError(String message) {
110112
mView.showProgressIndicator(false);
111113
Log.e(RaveConstants.RAVEPAY, message);
112-
mView.showFetchFeeFailed("An error occurred while retrieving transaction fee");
114+
mView.showFetchFeeFailed(transactionError);
113115
}
114116
});
115117
}

raveandroid/src/test/java/com/flutterwave/raveandroid/account/AccountPresenterTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
import static org.mockito.ArgumentMatchers.anyString;
7474
import static org.mockito.Mockito.doCallRealMethod;
7575
import static org.mockito.Mockito.doThrow;
76+
import static org.mockito.Mockito.times;
7677
import static org.mockito.Mockito.verify;
7778
import static org.mockito.Mockito.when;
7879

@@ -325,6 +326,21 @@ public void fetchFee_onSuccess_displayFeeCalledWithCorrectParams() {
325326

326327
}
327328

329+
@Test
330+
public void fetchFee_onSuccess_exceptionThrown_showFetchFeeFailedCalledWithCorrectParams() {
331+
332+
accountPresenter.fetchFee(generatePayload(), false);
333+
334+
doThrow(new NullPointerException()).when(view).displayFee(any(String.class), any(Payload.class), any(Boolean.class));
335+
336+
ArgumentCaptor<Callbacks.OnGetFeeRequestComplete> captor = ArgumentCaptor.forClass(Callbacks.OnGetFeeRequestComplete.class);
337+
verify(networkRequest).getFee(any(FeeCheckRequestBody.class), captor.capture());
338+
captor.getAllValues().get(0).onSuccess(generateFeeCheckResponse());
339+
340+
verify(view, times(1)).showFetchFeeFailed(transactionError);
341+
342+
}
343+
328344
@Test
329345
public void getBanks_onSuccess_showBanksCalledWithCorrectParams() {
330346

raveandroid/src/test/java/com/flutterwave/raveandroid/card/CardPresenterTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,15 @@
4949
import static com.flutterwave.raveandroid.RaveConstants.fieldEmail;
5050
import static com.flutterwave.raveandroid.RaveConstants.fieldcardNoStripped;
5151
import static com.flutterwave.raveandroid.RaveConstants.invalidChargeCode;
52+
import static com.flutterwave.raveandroid.RaveConstants.transactionError;
5253
import static com.flutterwave.raveandroid.RaveConstants.unknownAuthmsg;
5354
import static com.flutterwave.raveandroid.RaveConstants.unknownResCodemsg;
5455
import static org.junit.Assert.assertEquals;
5556
import static org.mockito.ArgumentMatchers.any;
5657
import static org.mockito.ArgumentMatchers.anyInt;
5758
import static org.mockito.ArgumentMatchers.anyObject;
5859
import static org.mockito.ArgumentMatchers.anyString;
60+
import static org.mockito.Mockito.doThrow;
5961
import static org.mockito.Mockito.times;
6062
import static org.mockito.Mockito.verify;
6163
import static org.mockito.Mockito.when;
@@ -238,6 +240,21 @@ public void fetchFee_onSuccess_displayFeeCalled() {
238240

239241
}
240242

243+
@Test
244+
public void fetchFee_onSuccess_exceptionThrown_showFetchFeeFailedCalledWithCorrectParams() {
245+
246+
cardPresenter.fetchFee(generatePayload(), 1);
247+
248+
doThrow(new NullPointerException()).when(view).displayFee(any(String.class), any(Payload.class), any(Integer.class));
249+
250+
ArgumentCaptor<Callbacks.OnGetFeeRequestComplete> captor = ArgumentCaptor.forClass(Callbacks.OnGetFeeRequestComplete.class);
251+
verify(networkRequest).getFee(any(FeeCheckRequestBody.class), captor.capture());
252+
captor.getAllValues().get(0).onSuccess(generateFeeCheckResponse());
253+
254+
verify(view, times(1)).showFetchFeeFailed(transactionError);
255+
256+
}
257+
241258
@Test
242259
public void chargeCard_onSuccessWithPIN_onPinAuthModelSuggestedCalled() {
243260

raveandroid/src/test/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyPresenterTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,13 @@
4646
import static com.flutterwave.raveandroid.RaveConstants.networkPosition;
4747
import static com.flutterwave.raveandroid.RaveConstants.noResponse;
4848
import static com.flutterwave.raveandroid.RaveConstants.success;
49+
import static com.flutterwave.raveandroid.RaveConstants.transactionError;
4950
import static org.junit.Assert.assertEquals;
5051
import static org.mockito.ArgumentMatchers.any;
5152
import static org.mockito.ArgumentMatchers.anyInt;
5253
import static org.mockito.ArgumentMatchers.anyObject;
5354
import static org.mockito.ArgumentMatchers.anyString;
55+
import static org.mockito.Mockito.doThrow;
5456
import static org.mockito.Mockito.times;
5557
import static org.mockito.Mockito.verify;
5658
import static org.mockito.Mockito.when;
@@ -117,6 +119,21 @@ public void fetchFee_onSuccess_displayFeeCalled() {
117119

118120
}
119121

122+
@Test
123+
public void fetchFee_onSuccess_exceptionThrown_showFetchFeeFailedCalledWithCorrectParams() {
124+
125+
ghMobileMoneyPresenter.fetchFee(generatePayload());
126+
127+
doThrow(new NullPointerException()).when(view).displayFee(any(String.class), any(Payload.class));
128+
129+
ArgumentCaptor<Callbacks.OnGetFeeRequestComplete> captor = ArgumentCaptor.forClass(Callbacks.OnGetFeeRequestComplete.class);
130+
verify(networkRequest).getFee(any(FeeCheckRequestBody.class), captor.capture());
131+
captor.getAllValues().get(0).onSuccess(generateFeeCheckResponse());
132+
133+
verify(view, times(1)).showFetchFeeFailed(transactionError);
134+
135+
}
136+
120137

121138
@Test
122139
public void chargeGhMobileMoney_onSuccess_requeryTxCalled() {

raveandroid/src/test/java/com/flutterwave/raveandroid/mpesa/MpesaPresenterTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,13 @@
4242
import static com.flutterwave.raveandroid.RaveConstants.fieldPhone;
4343
import static com.flutterwave.raveandroid.RaveConstants.noResponse;
4444
import static com.flutterwave.raveandroid.RaveConstants.success;
45+
import static com.flutterwave.raveandroid.RaveConstants.transactionError;
4546
import static org.junit.Assert.assertEquals;
4647
import static org.mockito.ArgumentMatchers.any;
4748
import static org.mockito.ArgumentMatchers.anyInt;
4849
import static org.mockito.ArgumentMatchers.anyObject;
4950
import static org.mockito.ArgumentMatchers.anyString;
51+
import static org.mockito.Mockito.doThrow;
5052
import static org.mockito.Mockito.times;
5153
import static org.mockito.Mockito.verify;
5254
import static org.mockito.Mockito.when;
@@ -110,6 +112,20 @@ public void fetchFee_onSuccess_displayFeeCalled() {
110112

111113
}
112114

115+
@Test
116+
public void fetchFee_onSuccess_exceptionThrown_showFetchFeeFailedCalledWithCorrectParams() {
117+
118+
mpesaPresenter.fetchFee(generatePayload());
119+
120+
doThrow(new NullPointerException()).when(view).displayFee(any(String.class), any(Payload.class));
121+
122+
ArgumentCaptor<Callbacks.OnGetFeeRequestComplete> captor = ArgumentCaptor.forClass(Callbacks.OnGetFeeRequestComplete.class);
123+
verify(networkRequest).getFee(any(FeeCheckRequestBody.class), captor.capture());
124+
captor.getAllValues().get(0).onSuccess(generateFeeCheckResponse());
125+
126+
verify(view, times(1)).showFetchFeeFailed(transactionError);
127+
128+
}
113129

114130
@Test
115131
public void chargeMpesa_onSuccess_requeryTxCalled() {

raveandroid/src/test/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyPresenterTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,21 @@ public void fetchFee_onSuccess_displayFeeCalled() {
112112

113113
}
114114

115+
@Test
116+
public void fetchFee_onSuccess_exceptionThrown_showFetchFeeFailedCalledWithCorrectParams() {
117+
118+
presenter.fetchFee(generatePayload());
119+
120+
doThrow(new NullPointerException()).when(view).displayFee(any(String.class), any(Payload.class));
121+
122+
ArgumentCaptor<Callbacks.OnGetFeeRequestComplete> captor = ArgumentCaptor.forClass(Callbacks.OnGetFeeRequestComplete.class);
123+
verify(networkRequest).getFee(any(FeeCheckRequestBody.class), captor.capture());
124+
captor.getAllValues().get(0).onSuccess(generateFeeCheckResponse());
125+
126+
verify(view, times(1)).showFetchFeeFailed(transactionError);
127+
128+
}
129+
115130
@Test
116131
public void fetchFee_onSuccess_exceptionThrown_showFetchFeeFailed() throws NullPointerException {
117132

raveandroid/src/test/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyPresenterTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,13 @@
4242
import static com.flutterwave.raveandroid.RaveConstants.fieldPhone;
4343
import static com.flutterwave.raveandroid.RaveConstants.noResponse;
4444
import static com.flutterwave.raveandroid.RaveConstants.success;
45+
import static com.flutterwave.raveandroid.RaveConstants.transactionError;
4546
import static org.junit.Assert.assertEquals;
4647
import static org.mockito.ArgumentMatchers.any;
4748
import static org.mockito.ArgumentMatchers.anyInt;
4849
import static org.mockito.ArgumentMatchers.anyObject;
4950
import static org.mockito.ArgumentMatchers.anyString;
51+
import static org.mockito.Mockito.doThrow;
5052
import static org.mockito.Mockito.times;
5153
import static org.mockito.Mockito.verify;
5254
import static org.mockito.Mockito.when;
@@ -110,6 +112,20 @@ public void fetchFee_onSuccess_displayFeeCalled() {
110112

111113
}
112114

115+
@Test
116+
public void fetchFee_onSuccess_exceptionThrown_showFetchFeeFailedCalledWithCorrectParams() {
117+
118+
presenter.fetchFee(generatePayload());
119+
120+
doThrow(new NullPointerException()).when(view).displayFee(any(String.class), any(Payload.class));
121+
122+
ArgumentCaptor<Callbacks.OnGetFeeRequestComplete> captor = ArgumentCaptor.forClass(Callbacks.OnGetFeeRequestComplete.class);
123+
verify(networkRequest).getFee(any(FeeCheckRequestBody.class), captor.capture());
124+
captor.getAllValues().get(0).onSuccess(generateFeeCheckResponse());
125+
126+
verify(view, times(1)).showFetchFeeFailed(transactionError);
127+
128+
}
113129

114130
@Test
115131
public void chargeUgMobileMoney_onSuccess_requeryTxCalled() {

raveandroid/src/test/java/com/flutterwave/raveandroid/uk/UkPresenterTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,21 @@ public void fetchFee_onSuccess_displayFeeCalledWithCorrectParams() {
123123

124124
}
125125

126+
@Test
127+
public void fetchFee_onSuccess_exceptionThrown_showFetchFeeFailedCalledWithCorrectParams() {
128+
129+
ukPresenter.fetchFee(generatePayload());
130+
131+
doThrow(new NullPointerException()).when(view).displayFee(any(String.class), any(Payload.class));
132+
133+
ArgumentCaptor<Callbacks.OnGetFeeRequestComplete> captor = ArgumentCaptor.forClass(Callbacks.OnGetFeeRequestComplete.class);
134+
verify(networkRequest).getFee(any(FeeCheckRequestBody.class), captor.capture());
135+
captor.getAllValues().get(0).onSuccess(generateFeeCheckResponse());
136+
137+
verify(view, times(1)).showFetchFeeFailed(transactionError);
138+
139+
}
140+
126141
@Test(expected = Exception.class)
127142
public void fetchFee_onSuccess_displayFeeException_showFetchFeeFailedCalledWithCorrectParams() {
128143

0 commit comments

Comments
 (0)