Browse Source

Validation rule added

master
Preyea Regmi 5 years ago
parent
commit
10d16a7f60
  1. BIN
      .idea/caches/build_file_checksums.ser
  2. 7
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/gateway/recipientaddV3/RecipientAddV3Gateway.java
  3. 32
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddV3/ReceiverInfoViewStateDTO.java
  4. 74
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddV3/ValidationRuleModel.java
  5. 43
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientlistingV3/AgentV3Model.java
  6. 35
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientlistingV3/Branch.java
  7. 37
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientlistingV3/PaymentMethodV3Model.java
  8. 43
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientlistingV3/ReceiverInfoV3Model.java
  9. 19
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3InteractorInterface.java
  10. 94
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3Presenter.java
  11. 56
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3PresenterInterface.java
  12. 66
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientaddV3/RecipientAddV3Activity.java
  13. 21
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientlistingV3/RecipientListingV3Activity.java
  14. 53
      app/src/test/java/com/gmeremit/online/gmeremittance_native/AddRecipientV3ValidationExecutorTester.java

BIN
.idea/caches/build_file_checksums.ser

7
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/gateway/recipientaddV3/RecipientAddV3Gateway.java

@ -0,0 +1,7 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.gateway.recipientaddV3;
import com.gmeremit.online.gmeremittance_native.base.PrivilegedGateway;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3InteractorInterface;
public class RecipientAddV3Gateway extends PrivilegedGateway implements RecipientAddV3InteractorInterface.RecipientAddV3GatewayInterface {
}

32
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddV3/ReceiverInfoViewStateDTO.java

@ -1,32 +0,0 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3;
import android.support.annotation.IdRes;
import android.view.View;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3PresenterInterface;
import java.util.List;
/**
* A plain DTO object that map's validation rule to corresponding UI widget
*/
public class ReceiverInfoViewStateDTO {
List<Object> validationRule;
public ReceiverInfoViewStateDTO( List<Object> validationRule) {
this.validationRule = validationRule;
}
public void applyValidationRuleToAllViews(RecipientAddV3PresenterInterface.RecipientAddV2ContractInterface view)
{
for(Object rule:validationRule)
{
}
}
}

74
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientaddV3/ValidationRuleModel.java

@ -0,0 +1,74 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3;
public class ValidationRuleModel {
String fieldName;
String required;
String minLength;
String maxLength;
String assciiAllowed;
public ValidationRuleModel(String fieldName, String required, String minLength, String maxLength, String assciiAllowed) {
this.fieldName = fieldName;
this.required = required;
this.minLength = minLength;
this.maxLength = maxLength;
this.assciiAllowed = assciiAllowed;
}
public String getFieldName() {
return fieldName;
}
public void setFieldName(String fieldName) {
this.fieldName = fieldName;
}
public String getRequired() {
return required;
}
public void setRequired(String required) {
this.required = required;
}
public String getMinLength() {
return minLength;
}
public void setMinLength(String minLength) {
this.minLength = minLength;
}
public int getMaxLength() {
try {
return Integer.parseInt(maxLength);
} catch (NumberFormatException e) {
return 0;
}
}
public void setMaxLength(String maxLength) {
this.maxLength = maxLength;
}
public String getAssciiAllowed() {
return assciiAllowed;
}
public void setAssciiAllowed(String assciiAllowed) {
this.assciiAllowed = assciiAllowed;
}
public boolean shouldShowView() {
return !"H".equalsIgnoreCase(required);
}
public boolean isOnlyAsciiAllowed() {
return "T".equalsIgnoreCase(assciiAllowed);
}
public boolean isValueValid(String value)
{
return false;
}
}

43
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientlistingV3/AgentV3Model.java

@ -1,10 +1,12 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3;
import com.gmeremit.online.gmeremittance_native.gme_branches.model.data.Branch;
import android.os.Parcel;
import android.os.Parcelable;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class AgentV3Model {
public class AgentV3Model implements Parcelable {
@SerializedName("id")
@Expose
@ -62,4 +64,41 @@ public class AgentV3Model {
this.accountNo = accountNo;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.id);
dest.writeString(this.name);
dest.writeString(this.localizedName);
dest.writeParcelable(this.branch, flags);
dest.writeString(this.accountNo);
}
public AgentV3Model() {
}
protected AgentV3Model(Parcel in) {
this.id = in.readString();
this.name = in.readString();
this.localizedName = in.readString();
this.branch = in.readParcelable(Branch.class.getClassLoader());
this.accountNo = in.readString();
}
public static final Parcelable.Creator<AgentV3Model> CREATOR = new Parcelable.Creator<AgentV3Model>() {
@Override
public AgentV3Model createFromParcel(Parcel source) {
return new AgentV3Model(source);
}
@Override
public AgentV3Model[] newArray(int size) {
return new AgentV3Model[size];
}
};
}

35
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientlistingV3/Branch.java

@ -0,0 +1,35 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3;
import android.os.Parcel;
import android.os.Parcelable;
public class Branch implements Parcelable {
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
}
public Branch() {
}
protected Branch(Parcel in) {
}
public static final Parcelable.Creator<Branch> CREATOR = new Parcelable.Creator<Branch>() {
@Override
public Branch createFromParcel(Parcel source) {
return new Branch(source);
}
@Override
public Branch[] newArray(int size) {
return new Branch[size];
}
};
}

37
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientlistingV3/PaymentMethodV3Model.java

@ -1,9 +1,12 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3;
import android.os.Parcel;
import android.os.Parcelable;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class PaymentMethodV3Model {
public class PaymentMethodV3Model implements Parcelable {
@SerializedName("id")
@Expose
@ -39,4 +42,36 @@ public class PaymentMethodV3Model {
this.localizedName = localizedName;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.id);
dest.writeString(this.name);
dest.writeString(this.localizedName);
}
public PaymentMethodV3Model() {
}
protected PaymentMethodV3Model(Parcel in) {
this.id = in.readString();
this.name = in.readString();
this.localizedName = in.readString();
}
public static final Parcelable.Creator<PaymentMethodV3Model> CREATOR = new Parcelable.Creator<PaymentMethodV3Model>() {
@Override
public PaymentMethodV3Model createFromParcel(Parcel source) {
return new PaymentMethodV3Model(source);
}
@Override
public PaymentMethodV3Model[] newArray(int size) {
return new PaymentMethodV3Model[size];
}
};
}

43
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/model/recipientlistingV3/ReceiverInfoV3Model.java

@ -1,9 +1,12 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3;
import android.os.Parcel;
import android.os.Parcelable;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class ReceiverInfoV3Model {
public class ReceiverInfoV3Model implements Parcelable {
@SerializedName("id")
@Expose
@ -60,4 +63,42 @@ public class ReceiverInfoV3Model {
public void setAgent(AgentV3Model agent) {
this.agent = agent;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.id);
dest.writeString(this.name);
dest.writeString(this.localizedName);
dest.writeParcelable(this.paymentMethod, flags);
dest.writeParcelable(this.agent, flags);
}
public ReceiverInfoV3Model() {
}
protected ReceiverInfoV3Model(Parcel in) {
this.id = in.readString();
this.name = in.readString();
this.localizedName = in.readString();
this.paymentMethod = in.readParcelable(PaymentMethodV3Model.class.getClassLoader());
this.agent = in.readParcelable(AgentV3Model.class.getClassLoader());
}
public static final Parcelable.Creator<ReceiverInfoV3Model> CREATOR = new Parcelable.Creator<ReceiverInfoV3Model>() {
@Override
public ReceiverInfoV3Model createFromParcel(Parcel source) {
return new ReceiverInfoV3Model(source);
}
@Override
public ReceiverInfoV3Model[] newArray(int size) {
return new ReceiverInfoV3Model[size];
}
};
}

19
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3InteractorInterface.java

@ -0,0 +1,19 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3;
import com.gmeremit.online.gmeremittance_native.autodebitV2.model.autodebitaccountlisting.AutoDebitAccount;
import com.gmeremit.online.gmeremittance_native.base.BaseInteractorInterface;
import com.gmeremit.online.gmeremittance_native.base.PrivilegedGatewayInterface;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
public interface RecipientAddV3InteractorInterface extends BaseInteractorInterface {
interface RecipientAddV3GatewayInterface extends PrivilegedGatewayInterface
{
}
}

94
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3Presenter.java

@ -1,17 +1,38 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3;
import com.gmeremit.online.gmeremittance_native.base.BasePresenter;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3.ReceiverInfoViewStateDTO;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3.ValidationRuleModel;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3.ReceiverInfoV3Model;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import io.reactivex.Observable;
public class RecipientAddV3Presenter extends BasePresenter implements RecipientAddV3PresenterInterface {
private final RecipientAddV2ContractInterface view;
private RecipientV3Validator validator;
private final RecipientAddV3ContractInterface view;
private final RecipientAddV3InteractorInterface.RecipientAddV3GatewayInterface gateway;
private AddRecipientV3ValidationExecutor validator;
public RecipientAddV3Presenter(RecipientAddV3ContractInterface view, ReceiverInfoV3Model recipientToBeEdited, RecipientAddV3InteractorInterface.RecipientAddV3GatewayInterface recipientAddV3Gateway) {
this.view = view;
this.gateway = recipientAddV3Gateway;
this.validator = new AddRecipientV3ValidationExecutor(view, recipientToBeEdited);
init();
}
public RecipientAddV3Presenter(RecipientAddV2ContractInterface view) {
public RecipientAddV3Presenter(RecipientAddV3ContractInterface view, RecipientAddV3InteractorInterface.RecipientAddV3GatewayInterface recipientAddV3Gateway) {
this.view = view;
this.gateway = recipientAddV3Gateway;
this.validator = new AddRecipientV3ValidationExecutor(view, new ReceiverInfoV3Model());
init();
}
private void init() {
}
@Override
@ -19,20 +40,75 @@ public class RecipientAddV3Presenter extends BasePresenter implements RecipientA
}
private Observable<List<ValidationRuleModel>> getValidationRuleModel() {
List<ValidationRuleModel> validationRuleModelList = new ArrayList<>();
return io.reactivex.Observable.just(validationRuleModelList);
}
@Override
public RecipientV3Validator getValidator() {
public AddRecipientV3ValidationExecutor getValidator() {
return this.validator;
}
class RecipientV3Validator {
private final ReceiverInfoViewStateDTO mappedValidaitonRule;
public static class AddRecipientV3ValidationExecutor {
public RecipientV3Validator(ReceiverInfoViewStateDTO mappedValidationRule) {
this.mappedValidaitonRule=mappedValidationRule;
private final RecipientAddV3ContractInterface view;
private final ReceiverInfoV3Model recipientInfo;
private final Map<String,ValidationRuleModel> validationRuleModelMap;
public AddRecipientV3ValidationExecutor(RecipientAddV3ContractInterface view, ReceiverInfoV3Model receiverInfoV3Model) {
if (view == null || receiverInfoV3Model == null) {
throw new IllegalArgumentException("Cannot pass null value to constructor");
}
this.view = view;
this.recipientInfo = receiverInfoV3Model;
validationRuleModelMap=new HashMap<>();
}
/**
* Should apply only once after getting Data
* @param rule
*/
public void applyDynamicValidationRuleToView(ValidationRuleModel rule) {
if (rule == null)
throw new IllegalArgumentException("Validation rule cannot be null");
switch (rule.getFieldName().toLowerCase()) {
case "fullname":
view.updateValueToWidgetFullName(recipientInfo.getName());
view.updateValidationRuleToWidgetFullName(rule.shouldShowView(), rule.isOnlyAsciiAllowed(), rule.getMaxLength());
validationRuleModelMap.put("fullname",rule);
break;
}
}
public void validateFullName(String fullName)
{
ValidationRuleModel validationRuleModel=validationRuleModelMap.get("fullname");
if(validationRuleModel!=null&&validationRuleModel.isValueValid(fullName)) {
recipientInfo.setName(fullName);
view.setErrorOnWidgetFullName(null);
validateAll();
}
else {
//Current implmentation will override existing information data
recipientInfo.setName("");
view.setErrorOnWidgetFullName("Field is required");
}
}
private void validateAll() {
/**
* Iterate through all validation rule hasmap and isValueValid with correspongind receiver info field
*
*/
}
}
}

56
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddV3/RecipientAddV3PresenterInterface.java

@ -2,14 +2,6 @@ package com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipient
import com.gmeremit.online.gmeremittance_native.base.BaseContractInterface;
import com.gmeremit.online.gmeremittance_native.base.BasePresenterInterface;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.CountryDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.DistrictDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.ProvinceDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.ReceiverIdType;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RecipientRelatedModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.RelationDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientadd.TransferDetailModel;
import com.gmeremit.online.gmeremittance_native.recipientV2.model.recipientlisting.RecipientInfoModel;
public interface RecipientAddV3PresenterInterface extends BasePresenterInterface {
@ -19,52 +11,14 @@ public interface RecipientAddV3PresenterInterface extends BasePresenterInterface
RecipientAddV3Presenter.RecipientV3Validator getValidator();
RecipientAddV3Presenter.AddRecipientV3ValidationExecutor getValidator();
interface RecipientAddV2ContractInterface extends BaseContractInterface
interface RecipientAddV3ContractInterface extends BaseContractInterface
{
void showRelatedData(RecipientRelatedModel data);
void showDataForEditing(String firstName, String middleName, String lastName,
CountryDetailModel selectedCountry,
ProvinceDetailModel selectedProvince,
DistrictDetailModel selectedDistrict,
String address,
RelationDetailModel selectedRelation,
String mobileNo,
String email,
TransferDetailModel selectedTransfer,
String city,
String idNumber,
ReceiverIdType idType);
void returnToCallingActivityForSucess();
void setErrorOnFirstName(String message);
void setErrorOnCity(String message);
void setErrorOnCountry(String message);
void setErrorOnProvince(String message);
void setErrorOnTransferReason(String message);
void setErrorOnRelation(String message);
void setErrorOnMobileNumber(String message);
void setErrorOnAddress(String message);
void setErrorOnDistrict(String message);
void setErrorOnLastName(String message);
void setErrorOnIdType(String message);
void setErrorOnIdNumber(String stringfromStringId);
void enableSubmitButton(boolean action);
void updateValidationRuleToWidgetFullName(boolean visiblity,boolean onlyAsciiAllowed,int maxLength);
void updateValueToWidgetFullName(String name);
void setErrorOnWidgetFullName(String error);
}
}

66
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientaddV3/RecipientAddV3Activity.java

@ -1,17 +1,23 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.view.recipientaddV3;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import com.gmeremit.online.gmeremittance_native.R;
import com.gmeremit.online.gmeremittance_native.base.BaseActivity;
import com.gmeremit.online.gmeremittance_native.customwidgets.GMEFormInputField;
import com.gmeremit.online.gmeremittance_native.customwidgets.TextWatcherAdapter;
import com.gmeremit.online.gmeremittance_native.recipientV3.gateway.recipientaddV3.RecipientAddV3Gateway;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3.ReceiverInfoV3Model;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3Presenter;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3PresenterInterface;
import butterknife.BindView;
import butterknife.ButterKnife;
public class RecipientAddV3Activity extends BaseActivity {
import static android.view.View.GONE;
public class RecipientAddV3Activity extends BaseActivity implements RecipientAddV3PresenterInterface.RecipientAddV3ContractInterface {
@BindView(R.id.recieverNameFormInputField)
GMEFormInputField recieverNameFormInputField;
@ -21,6 +27,11 @@ public class RecipientAddV3Activity extends BaseActivity {
RecieverNameTextWatcher recieverNameTextWatcher;
public static String RECIPIENT_INFO_BUNDLE_KEY = "recipientInfoKey";
private RecipientAddV3PresenterInterface presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -34,24 +45,24 @@ public class RecipientAddV3Activity extends BaseActivity {
}
private void init()
{
private void init() {
ReceiverInfoV3Model recipientToBeEdited = getIntent().getExtras().getParcelable(RECIPIENT_INFO_BUNDLE_KEY);
if (recipientToBeEdited != null) {
presenter = new RecipientAddV3Presenter(this, recipientToBeEdited, new RecipientAddV3Gateway());
} else
presenter = new RecipientAddV3Presenter(this, new RecipientAddV3Gateway());
initTextWatchers();
}
private void initTextWatchers() {
recieverNameTextWatcher=new RecieverNameTextWatcher();
recieverNameTextWatcher = new RecieverNameTextWatcher();
}
private void registerTextWatchers(boolean action)
{
if(action)
{
private void registerTextWatchers(boolean action) {
if (action) {
recieverNameFormInputField.addTextWatchers(recieverNameTextWatcher);
}
else
{
} else {
recieverNameFormInputField.removeTextWatchers(recieverNameTextWatcher);
}
}
@ -69,21 +80,40 @@ public class RecipientAddV3Activity extends BaseActivity {
}
public class RecieverNameTextWatcher extends TextWatcherAdapter
{
@Override
public void updateValidationRuleToWidgetFullName(boolean showWidget, boolean onlyAsciiAllowed, int maxLength) {
if (showWidget)
recieverNameFormInputField.setVisibility(View.VISIBLE);
else
recieverNameFormInputField.setVisibility(GONE);
}
@Override
public void updateValueToWidgetFullName(String name) {
recieverAddressFormInputField.removeTextWatchers(recieverNameTextWatcher);
recieverNameFormInputField.getEditTextView().setText(name);
recieverAddressFormInputField.addTextWatchers(recieverNameTextWatcher);
}
@Override
public void setErrorOnWidgetFullName(String error) {
}
public class RecieverNameTextWatcher extends TextWatcherAdapter {
@Override
public void onTextUpdated(String text) {
if(text.length()<4)
if (text.length() < 4)
recieverNameFormInputField.updateErrorSafely("Name cannot be less than four characters");
else
recieverNameFormInputField.updateErrorSafely(null);
}
}
public class RecieverAddressTextWatcher extends TextWatcherAdapter
{
public class RecieverAddressTextWatcher extends TextWatcherAdapter {
@Override
public void onTextUpdated(String text) {
if(text.length()<4)
if (text.length() < 4)
recieverAddressFormInputField.updateErrorSafely("Name cannot be less than four characters");
else
recieverAddressFormInputField.updateErrorSafely(null);

21
app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientlistingV3/RecipientListingV3Activity.java

@ -1,5 +1,7 @@
package com.gmeremit.online.gmeremittance_native.recipientV3.view.recipientlistingV3;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.CollapsingToolbarLayout;
@ -17,6 +19,8 @@ import com.gmeremit.online.gmeremittance_native.autodebitV2.view.autodebitaccoun
import com.gmeremit.online.gmeremittance_native.base.BaseActivity;
import com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView;
import com.gmeremit.online.gmeremittance_native.customwidgets.TextWatcherAdapter;
import com.gmeremit.online.gmeremittance_native.recipientV2.view.recipientadd.RecipientAddV2Activity;
import com.gmeremit.online.gmeremittance_native.recipientV2.view.recipientlisting.RecipientListingV2Activity;
import com.gmeremit.online.gmeremittance_native.recipientV3.adapter.RecipientListingV3RvAdapter;
import com.gmeremit.online.gmeremittance_native.recipientV3.gateway.recipientlistingV3.RecipientListingV3Gateway;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3.ReceiverInfoV3Model;
@ -226,7 +230,22 @@ public class RecipientListingV3Activity extends BaseActivity implements Recipien
@Override
public void onRecipientLongPressed(ReceiverInfoV3Model recipientInfoModel) {
CharSequence[] charSequences = new CharSequence[]{getString(R.string.delete_text), getString(R.string.edit_text)};
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setItems(charSequences, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
if (i == 0) {
presenter.deleteRecipient(recipientInfoModel.getId());
} else {
Intent intent = new Intent(getApplicationContext(), RecipientAddV3Activity.class);
intent.putExtra(RecipientAddV3Activity.RECIPIENT_INFO_BUNDLE_KEY, recipientInfoModel);
startActivityForResult(intent, RecipientListingV2Activity.RECIPIENT_INFO_ACTION_EDIT);
}
}
});
alert.create();
alert.show();
}
@Override

53
app/src/test/java/com/gmeremit/online/gmeremittance_native/AddRecipientV3ValidationExecutorTester.java

@ -0,0 +1,53 @@
package com.gmeremit.online.gmeremittance_native;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddV3.ValidationRuleModel;
import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3.ReceiverInfoV3Model;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3Presenter;
import com.gmeremit.online.gmeremittance_native.recipientV3.presenter.recipientaddV3.RecipientAddV3PresenterInterface;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.Mockito;
public class AddRecipientV3ValidationExecutorTester {
public static final ValidationRuleModel FULL_NAME_VALIDATION_RULE_REQUIRED_ONLY_ASCII=new ValidationRuleModel("fullname","S","0","","T");
@Test(expected = IllegalArgumentException.class)
public void constructor_Should_Throw_IAE_For_Null_Parameter()
{
new RecipientAddV3Presenter.AddRecipientV3ValidationExecutor(null,null);
}
@Test(expected = IllegalArgumentException.class)
public void apply_Dynamic_Validation_Rule_To_View_Should_Throw_IAE_For_Null_Validation_Rule()
{
RecipientAddV3PresenterInterface.RecipientAddV3ContractInterface view=Mockito.mock(RecipientAddV3PresenterInterface.RecipientAddV3ContractInterface.class);
ReceiverInfoV3Model receiverInfoV3Model= Mockito.mock(ReceiverInfoV3Model.class);
RecipientAddV3Presenter.AddRecipientV3ValidationExecutor validationExecutor= new RecipientAddV3Presenter.AddRecipientV3ValidationExecutor(view,receiverInfoV3Model);
validationExecutor.applyDynamicValidationRuleToView(null);
}
@Test
public void fullname_validation_rule_required_only_ascii_should_apply_to_corresponding_view()
{
RecipientAddV3PresenterInterface.RecipientAddV3ContractInterface view=Mockito.mock(RecipientAddV3PresenterInterface.RecipientAddV3ContractInterface.class);
ReceiverInfoV3Model receiverInfoV3Model= Mockito.mock(ReceiverInfoV3Model.class);
Mockito.when(receiverInfoV3Model.getName()).thenReturn("Ram");
RecipientAddV3Presenter.AddRecipientV3ValidationExecutor validationExecutor= new RecipientAddV3Presenter.AddRecipientV3ValidationExecutor(view,receiverInfoV3Model);
validationExecutor.applyDynamicValidationRuleToView(FULL_NAME_VALIDATION_RULE_REQUIRED_ONLY_ASCII);
Mockito.verify(view).updateValidationRuleToWidgetFullName(true,true,0);
Mockito.verify(view).updateValueToWidgetFullName("Ram");
}
}
Loading…
Cancel
Save