Skip to content

Commit c881788

Browse files
committed
[AchPresenter] create onAmountValidated
refactor `payloadToJson` to `PayloadToJsonConverter` and `getEncryptedData` to `PayloadEncryptor` Run Tests, passed
1 parent 6e26d49 commit c881788

File tree

8 files changed

+47
-50
lines changed

8 files changed

+47
-50
lines changed

raveandroid/src/main/java/com/flutterwave/raveandroid/GetEncryptedData.java renamed to raveandroid/src/main/java/com/flutterwave/raveandroid/PayloadEncryptor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
import static com.scottyab.aescrypt.AESCrypt.encrypt;
77

88
@Singleton
9-
public class GetEncryptedData {
9+
public class PayloadEncryptor {
1010

1111
@Inject
12-
public GetEncryptedData() {
12+
public PayloadEncryptor() {
1313
}
1414

1515
public String getEncryptedData(String unEncryptedString, String encryptionKey) {

raveandroid/src/main/java/com/flutterwave/raveandroid/PayloadToJson.java renamed to raveandroid/src/main/java/com/flutterwave/raveandroid/PayloadToJsonConverter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
import javax.inject.Singleton;
1010

1111
@Singleton
12-
public class PayloadToJson {
12+
public class PayloadToJsonConverter {
1313

1414
public Gson gson;
1515

1616
@Inject
17-
public PayloadToJson(Gson gson) {
17+
public PayloadToJsonConverter(Gson gson) {
1818
this.gson = gson;
1919
}
2020

raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchContract.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public interface AchContract {
99
interface View {
1010
void showProgressIndicator(boolean active);
1111

12-
void showAmountField(boolean active);
12+
void onAmountValidated(String amountToSet, int visibility);
1313

1414
void showRedirectMessage(boolean b);
1515

raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchFragment.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,12 @@ public void onClick(DialogInterface dialog, int which) {
125125

126126
}
127127

128+
@Override
129+
public void onAmountValidated(String amountToSet, int visibility) {
130+
amountTil.setVisibility(visibility);
131+
amountEt.setText(amountToSet);
132+
}
133+
128134
@Override
129135
public void onValidationSuccessful(String amount) {
130136
presenter.processTransaction(amount, ravePayInitializer);
@@ -141,17 +147,6 @@ public void showRedirectMessage(boolean active) {
141147
}
142148
}
143149

144-
@Override
145-
public void showAmountField(boolean active) {
146-
147-
if (active) {
148-
amountTil.setVisibility(View.VISIBLE);
149-
}
150-
else {
151-
amountTil.setVisibility(View.GONE);
152-
}
153-
}
154-
155150
@Override
156151
public void showWebView(String authUrl, String flwRef) {
157152

raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchPresenter.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package com.flutterwave.raveandroid.ach;
22

33
import android.content.Context;
4+
import android.view.View;
45

56
import com.flutterwave.raveandroid.DeviceIdGetter;
6-
import com.flutterwave.raveandroid.GetEncryptedData;
77
import com.flutterwave.raveandroid.Payload;
88
import com.flutterwave.raveandroid.PayloadBuilder;
9-
import com.flutterwave.raveandroid.PayloadToJson;
9+
import com.flutterwave.raveandroid.PayloadEncryptor;
10+
import com.flutterwave.raveandroid.PayloadToJsonConverter;
1011
import com.flutterwave.raveandroid.RaveConstants;
1112
import com.flutterwave.raveandroid.RavePayInitializer;
1213
import com.flutterwave.raveandroid.TransactionStatusChecker;
@@ -29,7 +30,6 @@ public class AchPresenter implements AchContract.UserActionsListener {
2930

3031
@Inject
3132
SharedPrefsRequestImpl sharedMgr;
32-
3333
@Inject
3434
AmountValidator amountValidator;
3535
@Inject
@@ -39,9 +39,9 @@ public class AchPresenter implements AchContract.UserActionsListener {
3939
@Inject
4040
DeviceIdGetter deviceIdGetter;
4141
@Inject
42-
PayloadToJson payloadToJson;
42+
PayloadToJsonConverter payloadToJsonConverter;
4343
@Inject
44-
GetEncryptedData getEncryptedData;
44+
PayloadEncryptor payloadEncryptor;
4545

4646
@Inject
4747
public AchPresenter(Context context, AchContract.View mView) {
@@ -56,10 +56,10 @@ public void init(RavePayInitializer ravePayInitializer) {
5656

5757
boolean isAmountValid = amountValidator.isAmountValid(ravePayInitializer.getAmount());
5858
if (isAmountValid) {
59-
mView.showAmountField(false);
59+
mView.onAmountValidated(String.valueOf(ravePayInitializer.getAmount()), View.GONE);
6060
mView.showRedirectMessage(true);
6161
} else {
62-
mView.showAmountField(true);
62+
mView.onAmountValidated(String.valueOf(ravePayInitializer.getAmount()), View.VISIBLE);
6363
mView.showRedirectMessage(false);
6464
}
6565
}
@@ -112,8 +112,8 @@ public void processTransaction(String amount, RavePayInitializer ravePayInitiali
112112
@Override
113113
public void chargeAccount(Payload payload, String encryptionKey, final boolean isDisplayFee) {
114114

115-
String requestBodyAsString = payloadToJson.convertChargeRequestPayloadToJson(payload);
116-
String accountRequestBody = getEncryptedData.getEncryptedData(requestBodyAsString, encryptionKey);
115+
String requestBodyAsString = payloadToJsonConverter.convertChargeRequestPayloadToJson(payload);
116+
String accountRequestBody = payloadEncryptor.getEncryptedData(requestBodyAsString, encryptionKey);
117117

118118
final ChargeRequestBody body = new ChargeRequestBody();
119119
body.setAlg("3DES-24");

raveandroid/src/main/java/com/flutterwave/raveandroid/ach/NullAchView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public void showProgressIndicator(boolean active) {
99
}
1010

1111
@Override
12-
public void showAmountField(boolean active) {
12+
public void onAmountValidated(String amountToSet, int visibility) {
1313

1414
}
1515

raveandroid/src/test/java/com/flutterwave/raveandroid/ach/AchPresenterTest.java

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package com.flutterwave.raveandroid.ach;
22

33
import android.content.Context;
4+
import android.view.View;
45

56
import com.flutterwave.raveandroid.DeviceIdGetter;
6-
import com.flutterwave.raveandroid.GetEncryptedData;
77
import com.flutterwave.raveandroid.Meta;
88
import com.flutterwave.raveandroid.Payload;
99
import com.flutterwave.raveandroid.PayloadBuilder;
10-
import com.flutterwave.raveandroid.PayloadToJson;
10+
import com.flutterwave.raveandroid.PayloadEncryptor;
11+
import com.flutterwave.raveandroid.PayloadToJsonConverter;
1112
import com.flutterwave.raveandroid.RaveConstants;
1213
import com.flutterwave.raveandroid.RavePayInitializer;
1314
import com.flutterwave.raveandroid.TransactionStatusChecker;
@@ -60,9 +61,9 @@ public class AchPresenterTest {
6061
@Inject
6162
DeviceIdGetter deviceIdGetter;
6263
@Inject
63-
PayloadToJson payloadToJson;
64+
PayloadToJsonConverter payloadToJsonConverter;
6465
@Inject
65-
GetEncryptedData getEncryptedData;
66+
PayloadEncryptor payloadEncryptor;
6667
@Inject
6768
NetworkRequestImpl networkRequest;
6869
@Inject
@@ -90,28 +91,29 @@ public void setUp() {
9091
}
9192

9293
@Test
93-
public void init_validAmount_showRedirectMessageTrue() {
94+
public void init_validAmount_onAmountValidatedCalledWithCorrectParams_showRedirectMessageTrue() {
9495

9596
Double amount = generateRandomDouble();
9697
when(amountValidator.isAmountValid(amount)).thenReturn(true);
9798
when(ravePayInitializer.getAmount()).thenReturn(amount);
9899

99100
achPresenter.init(ravePayInitializer);
100101

101-
verify(view).showAmountField(false);
102+
verify(view).onAmountValidated(String.valueOf(amount), View.GONE);
102103
verify(view).showRedirectMessage(true);
103104

104105
}
105106

106107
@Test
107-
public void init_inValidAmount_showRedirectMessageFalse() {
108+
public void init_inValidAmount_onAmountValidatedCalledWithCorrectParams_showRedirectMessageFalse() {
108109

109110
Double amount = generateRandomDouble();
110111
when(amountValidator.isAmountValid(amount)).thenReturn(false);
112+
when(ravePayInitializer.getAmount()).thenReturn(amount);
111113

112114
achPresenter.init(ravePayInitializer);
113115

114-
verify(view).showAmountField(true);
116+
verify(view).onAmountValidated(String.valueOf(amount), View.VISIBLE);
115117
verify(view).showRedirectMessage(false);
116118

117119
}
@@ -206,8 +208,8 @@ public void chargeAccount_noDisplayFee_onSuccess_validResponseReturned_showWebVi
206208

207209
payload.setPBFPubKey(generateRandomString());
208210

209-
when(payloadToJson.convertChargeRequestPayloadToJson(any(Payload.class))).thenReturn(generateRandomString());
210-
when(getEncryptedData.getEncryptedData(any(String.class), any(String.class))).thenReturn(generateRandomString());
211+
when(payloadToJsonConverter.convertChargeRequestPayloadToJson(any(Payload.class))).thenReturn(generateRandomString());
212+
when(payloadEncryptor.getEncryptedData(any(String.class), any(String.class))).thenReturn(generateRandomString());
211213

212214
achPresenter.chargeAccount(payload, generateRandomString(), false);
213215
verify(view).showProgressIndicator(true);
@@ -230,8 +232,8 @@ public void chargeAccount_displayFee_chargeCard_onSuccess_validResponseReturned_
230232
Payload payload = generatePayload();
231233
payload.setPBFPubKey(generateRandomString());
232234

233-
when(payloadToJson.convertChargeRequestPayloadToJson(any(Payload.class))).thenReturn(generateRandomString());
234-
when(getEncryptedData.getEncryptedData(any(String.class), any(String.class))).thenReturn(generateRandomString());
235+
when(payloadToJsonConverter.convertChargeRequestPayloadToJson(any(Payload.class))).thenReturn(generateRandomString());
236+
when(payloadEncryptor.getEncryptedData(any(String.class), any(String.class))).thenReturn(generateRandomString());
235237

236238
achPresenter.chargeAccount(payload, generateRandomString(), true);
237239

@@ -257,8 +259,8 @@ public void chargeAccount_onSuccess_nullChargeResponseReturned_onPaymentErrorCal
257259
Payload payload = generatePayload();
258260
payload.setPBFPubKey(generateRandomString());
259261

260-
when(payloadToJson.convertChargeRequestPayloadToJson(any(Payload.class))).thenReturn(generateRandomString());
261-
when(getEncryptedData.getEncryptedData(any(String.class), any(String.class))).thenReturn(generateRandomString());
262+
when(payloadToJsonConverter.convertChargeRequestPayloadToJson(any(Payload.class))).thenReturn(generateRandomString());
263+
when(payloadEncryptor.getEncryptedData(any(String.class), any(String.class))).thenReturn(generateRandomString());
262264

263265
achPresenter.chargeAccount(payload, generateRandomString(), true);
264266

@@ -280,8 +282,8 @@ public void chargeAccount_onSuccess_inValidResponseReturned_onPaymentErrorCalled
280282
Payload payload = generatePayload();
281283
payload.setPBFPubKey(generateRandomString());
282284

283-
when(payloadToJson.convertChargeRequestPayloadToJson(any(Payload.class))).thenReturn(generateRandomString());
284-
when(getEncryptedData.getEncryptedData(any(String.class), any(String.class))).thenReturn(generateRandomString());
285+
when(payloadToJsonConverter.convertChargeRequestPayloadToJson(any(Payload.class))).thenReturn(generateRandomString());
286+
when(payloadEncryptor.getEncryptedData(any(String.class), any(String.class))).thenReturn(generateRandomString());
285287

286288
achPresenter.chargeAccount(payload, generateRandomString(), true);
287289

@@ -306,8 +308,8 @@ public void chargeAccount_onError_onPaymentErrorCalled_messageReturned() {
306308

307309
String message = generateRandomString();
308310

309-
when(payloadToJson.convertChargeRequestPayloadToJson(any(Payload.class))).thenReturn(generateRandomString());
310-
when(getEncryptedData.getEncryptedData(any(String.class), any(String.class))).thenReturn(generateRandomString());
311+
when(payloadToJsonConverter.convertChargeRequestPayloadToJson(any(Payload.class))).thenReturn(generateRandomString());
312+
when(payloadEncryptor.getEncryptedData(any(String.class), any(String.class))).thenReturn(generateRandomString());
311313

312314
achPresenter.chargeAccount(payload, generateRandomString(), true);
313315
verify(view).showProgressIndicator(true);

raveandroid/src/test/java/com/flutterwave/raveandroid/di/TestAndroidModule.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import android.test.mock.MockContext;
55

66
import com.flutterwave.raveandroid.DeviceIdGetter;
7-
import com.flutterwave.raveandroid.GetEncryptedData;
8-
import com.flutterwave.raveandroid.PayloadToJson;
7+
import com.flutterwave.raveandroid.PayloadEncryptor;
8+
import com.flutterwave.raveandroid.PayloadToJsonConverter;
99
import com.flutterwave.raveandroid.RavePayInitializer;
1010
import com.flutterwave.raveandroid.TransactionStatusChecker;
1111
import com.flutterwave.raveandroid.data.SharedPrefsRequestImpl;
@@ -141,14 +141,14 @@ public DeviceIdGetter providesDeviceIdGetter() {
141141

142142
@Provides
143143
@Singleton
144-
public PayloadToJson providesPayloadToJson() {
145-
return Mockito.mock(PayloadToJson.class);
144+
public PayloadToJsonConverter providesPayloadToJson() {
145+
return Mockito.mock(PayloadToJsonConverter.class);
146146
}
147147

148148
@Provides
149149
@Singleton
150-
public GetEncryptedData providesGetEncryptedData() {
151-
return Mockito.mock(GetEncryptedData.class);
150+
public PayloadEncryptor providesGetEncryptedData() {
151+
return Mockito.mock(PayloadEncryptor.class);
152152
}
153153

154154

0 commit comments

Comments
 (0)