diff --git a/account/src/main/java/bisq/account/accounts/AchTransferAccountPayload.java b/account/src/main/java/bisq/account/accounts/AchTransferAccountPayload.java index 6248de7966..ddc99a4f77 100644 --- a/account/src/main/java/bisq/account/accounts/AchTransferAccountPayload.java +++ b/account/src/main/java/bisq/account/accounts/AchTransferAccountPayload.java @@ -16,8 +16,8 @@ public final class AchTransferAccountPayload extends BankAccountPayload { private final String holderAddress; - public AchTransferAccountPayload(String paymentMethodName, - String id, + public AchTransferAccountPayload(String id, + String paymentMethodName, String countryCode, String holderName, String bankName, @@ -25,8 +25,9 @@ public AchTransferAccountPayload(String paymentMethodName, String accountNr, String accountType, String holderAddress) { - super(paymentMethodName, + super( id, + paymentMethodName, countryCode, holderName, bankName, @@ -41,17 +42,14 @@ public AchTransferAccountPayload(String paymentMethodName, @Override public AccountPayload toProto() { - var builder = bisq.account.protobuf.AchTransferAccountPayload.newBuilder().setHolderAddress(holderAddress); - var bankAccountPayloadBuilder = getAccountPayloadBuilder() - .getCountryBasedAccountPayloadBuilder() - .getBankAccountPayloadBuilder() - .setAchTransferAccountPayload(builder); - var countryBasedPaymentAccountPayloadBuilder = getAccountPayloadBuilder() - .getCountryBasedAccountPayloadBuilder() - .setBankAccountPayload(bankAccountPayloadBuilder); - return getAccountPayloadBuilder() - .setCountryBasedAccountPayload(countryBasedPaymentAccountPayloadBuilder) - .build(); + return getAccountPayloadBuilder().setCountryBasedAccountPayload( + getCountryBasedAccountPayloadBuilder().setBankAccountPayload( + getBankAccountPayloadBuilder().setAchTransferAccountPayload( + bisq.account.protobuf.AchTransferAccountPayload.newBuilder() + .setHolderAddress(holderAddress) + ) + ) + ).build(); } public static AchTransferAccountPayload fromProto(bisq.account.protobuf.AccountPayload proto) { @@ -59,8 +57,8 @@ public static AchTransferAccountPayload fromProto(bisq.account.protobuf.AccountP var bankAccountPayload = countryBasedPaymentAccountPayload.getBankAccountPayload(); var accountPayload = bankAccountPayload.getAchTransferAccountPayload(); return new AchTransferAccountPayload( - proto.getPaymentMethodName(), proto.getId(), + proto.getPaymentMethodName(), countryBasedPaymentAccountPayload.getCountryCode(), bankAccountPayload.getHolderName(), bankAccountPayload.getBankName().isEmpty() ? null : bankAccountPayload.getBankName(), diff --git a/account/src/main/java/bisq/account/accounts/BankAccountPayload.java b/account/src/main/java/bisq/account/accounts/BankAccountPayload.java index 7fc11cc5d2..32a02e9791 100644 --- a/account/src/main/java/bisq/account/accounts/BankAccountPayload.java +++ b/account/src/main/java/bisq/account/accounts/BankAccountPayload.java @@ -1,6 +1,5 @@ package bisq.account.accounts; -import bisq.account.protobuf.AccountPayload; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; @@ -28,8 +27,8 @@ public abstract class BankAccountPayload extends CountryBasedAccountPayload { @Nullable protected String nationalAccountId; - protected BankAccountPayload(String paymentMethodName, - String id, + protected BankAccountPayload(String id, + String paymentMethodName, String countryCode, String holderName, @Nullable String bankName, @@ -39,7 +38,7 @@ protected BankAccountPayload(String paymentMethodName, @Nullable String holderTaxId, @Nullable String bankId, @Nullable String nationalAccountId) { - super(paymentMethodName, id, countryCode); + super(id, paymentMethodName, countryCode); this.holderName = Optional.ofNullable(holderName).orElse(""); this.bankName = Optional.ofNullable(bankName).orElse(""); this.branchId = Optional.ofNullable(branchId).orElse(""); @@ -50,21 +49,17 @@ protected BankAccountPayload(String paymentMethodName, this.nationalAccountId = nationalAccountId; } - protected AccountPayload.Builder getBankAccountPayloadBuilder() { + protected bisq.account.protobuf.BankAccountPayload.Builder getBankAccountPayloadBuilder() { var builder = bisq.account.protobuf.BankAccountPayload.newBuilder() .setHolderName(holderName) .setBankName(bankName) .setBranchId(branchId) .setAccountNr(accountNr) - .setAccountType(accountNr) + .setAccountType(accountType) .setBranchId(branchId) .setBankId(bankId); Optional.ofNullable(holderTaxId).ifPresent(builder::setHolderTaxId); Optional.ofNullable(nationalAccountId).ifPresent(builder::setNationalAccountId); - var countryBasedPaymentAccountPayloadBuilder = getAccountPayloadBuilder() - .getCountryBasedAccountPayloadBuilder() - .setBankAccountPayload(builder); - return getAccountPayloadBuilder() - .setCountryBasedAccountPayload(countryBasedPaymentAccountPayloadBuilder); + return builder; } } diff --git a/account/src/test/java/bisq/account/accounts/AchTransferAccountPayloadTest.java b/account/src/test/java/bisq/account/accounts/AchTransferAccountPayloadTest.java new file mode 100644 index 0000000000..602187284e --- /dev/null +++ b/account/src/test/java/bisq/account/accounts/AchTransferAccountPayloadTest.java @@ -0,0 +1,62 @@ +package bisq.account.accounts; + +import bisq.account.protobuf.AccountPayload; +import bisq.account.protobuf.AchTransferAccountPayload; +import bisq.account.protobuf.BankAccountPayload; +import bisq.account.protobuf.CountryBasedAccountPayload; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class AchTransferAccountPayloadTest { + + private static final AccountPayload PROTO = bisq.account.protobuf.AccountPayload.newBuilder() + .setId("id") + .setPaymentMethodName("paymentMethodName") + .setCountryBasedAccountPayload(CountryBasedAccountPayload.newBuilder() + .setCountryCode("countryCode") + .setBankAccountPayload(BankAccountPayload.newBuilder() + .setHolderName("holderName") + .setAccountNr("accountNr") + .setAccountType("accountType") + .setBankName("bankName") + .setBranchId("branchId") + .setAchTransferAccountPayload(AchTransferAccountPayload.newBuilder() + .setHolderAddress("holderAddress")) + ) + ).build(); + + private static final AccountPayload PROTO_OPTIONALS_NOT_SET = bisq.account.protobuf.AccountPayload.newBuilder() + .setId("id") + .setPaymentMethodName("paymentMethodName") + .setCountryBasedAccountPayload(CountryBasedAccountPayload.newBuilder() + .setCountryCode("countryCode") + .setBankAccountPayload(BankAccountPayload.newBuilder() + .setHolderName("holderName") + .setAchTransferAccountPayload(AchTransferAccountPayload.newBuilder()))) + .build(); + + private static final bisq.account.accounts.AchTransferAccountPayload PAYLOAD = + new bisq.account.accounts.AchTransferAccountPayload( + "id", "paymentMethodName", "countryCode", "holderName", "bankName", "branchId", "accountNr", "accountType", "holderAddress" + ); + private static final bisq.account.accounts.AchTransferAccountPayload PAYLOAD_OPTIONALS_NOT_SET = + new bisq.account.accounts.AchTransferAccountPayload( + "id", "paymentMethodName", "countryCode", "holderName", null, null, null, null, null + ); + + @Test + void toProto() { + assertEquals(PROTO, PAYLOAD.toProto()); + } + + @Test + void fromProto() { + assertEquals(PAYLOAD, bisq.account.accounts.AchTransferAccountPayload.fromProto(PROTO)); + } + + @Test + void fromProto_optionals() { + assertEquals(PAYLOAD_OPTIONALS_NOT_SET, bisq.account.accounts.AchTransferAccountPayload.fromProto(PROTO_OPTIONALS_NOT_SET)); + } +} \ No newline at end of file diff --git a/account/src/test/java/bisq/account/accounts/F2FAccountPayloadTest.java b/account/src/test/java/bisq/account/accounts/F2FAccountPayloadTest.java new file mode 100644 index 0000000000..fad9e7472c --- /dev/null +++ b/account/src/test/java/bisq/account/accounts/F2FAccountPayloadTest.java @@ -0,0 +1,37 @@ +package bisq.account.accounts; + +import bisq.account.protobuf.AccountPayload; +import bisq.account.protobuf.CountryBasedAccountPayload; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class F2FAccountPayloadTest { + + private static final AccountPayload PROTO = AccountPayload.newBuilder() + .setId("id") + .setPaymentMethodName("paymentMethodName") + .setCountryBasedAccountPayload( + CountryBasedAccountPayload.newBuilder() + .setCountryCode("countryCode") + .setF2FAccountPayload( + bisq.account.protobuf.F2FAccountPayload.newBuilder() + .setCity("city") + .setContact("contact") + .setExtraInfo("extraInfo"))) + .build(); + + private static final F2FAccountPayload PAYLOAD = new F2FAccountPayload( + "id", "paymentMethodName", "countryCode", + "city", "contact", "extraInfo"); + + @Test + void toProto() { + assertEquals(PROTO, PAYLOAD.toProto()); + } + + @Test + void fromProto() { + assertEquals(PAYLOAD, F2FAccountPayload.fromProto(PROTO)); + } +} \ No newline at end of file diff --git a/account/src/test/java/bisq/account/accounts/RevolutAccountPayloadTest.java b/account/src/test/java/bisq/account/accounts/RevolutAccountPayloadTest.java new file mode 100644 index 0000000000..8730c9e6b3 --- /dev/null +++ b/account/src/test/java/bisq/account/accounts/RevolutAccountPayloadTest.java @@ -0,0 +1,30 @@ +package bisq.account.accounts; + +import bisq.account.protobuf.AccountPayload; +import bisq.account.protobuf.RevolutAccountPayload; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class RevolutAccountPayloadTest { + + private static final AccountPayload PROTO = AccountPayload.newBuilder() + .setId("id") + .setPaymentMethodName("paymentMethodName") + .setRevolutAccountPayload(RevolutAccountPayload.newBuilder() + .setEmail("email")) + .build(); + + private static final bisq.account.accounts.RevolutAccountPayload PAYLOAD = new bisq.account.accounts.RevolutAccountPayload( + "id", "paymentMethodName", "email"); + + @Test + void toProto() { + assertEquals(PROTO, PAYLOAD.toProto()); + } + + @Test + void fromProto() { + assertEquals(PAYLOAD, bisq.account.accounts.RevolutAccountPayload.fromProto(PROTO)); + } +} diff --git a/account/src/test/java/bisq/account/accounts/SepaAccountPayloadTest.java b/account/src/test/java/bisq/account/accounts/SepaAccountPayloadTest.java new file mode 100644 index 0000000000..0159698cfe --- /dev/null +++ b/account/src/test/java/bisq/account/accounts/SepaAccountPayloadTest.java @@ -0,0 +1,36 @@ +package bisq.account.accounts; + +import bisq.account.protobuf.AccountPayload; +import bisq.account.protobuf.CountryBasedAccountPayload; +import bisq.account.protobuf.SepaAccountPayload; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class SepaAccountPayloadTest { + + private static final AccountPayload PROTO = AccountPayload.newBuilder() + .setId("id") + .setPaymentMethodName("paymentMethodName") + .setCountryBasedAccountPayload( + CountryBasedAccountPayload.newBuilder() + .setCountryCode("countryCode") + .setSepaAccountPayload(SepaAccountPayload.newBuilder() + .setHolderName("holderName") + .setIban("iban") + .setBic("bic"))) + .build(); + + private static final bisq.account.accounts.SepaAccountPayload PAYLOAD = new bisq.account.accounts.SepaAccountPayload( + "id", "paymentMethodName", "holderName", "iban", "bic", "countryCode"); + + @Test + void toProto() { + assertEquals(PROTO, PAYLOAD.toProto()); + } + + @Test + void fromProto() { + assertEquals(PAYLOAD, bisq.account.accounts.SepaAccountPayload.fromProto(PROTO)); + } +} diff --git a/account/src/test/java/bisq/account/accounts/UserDefinedFiatAccountPayloadTest.java b/account/src/test/java/bisq/account/accounts/UserDefinedFiatAccountPayloadTest.java new file mode 100644 index 0000000000..f6c587a686 --- /dev/null +++ b/account/src/test/java/bisq/account/accounts/UserDefinedFiatAccountPayloadTest.java @@ -0,0 +1,30 @@ +package bisq.account.accounts; + +import bisq.account.protobuf.AccountPayload; +import bisq.account.protobuf.UserDefinedFiatAccountPayload; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class UserDefinedFiatAccountPayloadTest { + + private static final AccountPayload PROTO = AccountPayload.newBuilder() + .setId("id") + .setPaymentMethodName("paymentMethodName") + .setUserDefinedFiatAccountPayload(UserDefinedFiatAccountPayload.newBuilder() + .setAccountData("custom data")) + .build(); + + private static final bisq.account.accounts.UserDefinedFiatAccountPayload PAYLOAD = + new bisq.account.accounts.UserDefinedFiatAccountPayload("id", "paymentMethodName", "custom data"); + + @Test + void toProto() { + assertEquals(PROTO, PAYLOAD.toProto()); + } + + @Test + void fromProto() { + assertEquals(PAYLOAD, bisq.account.accounts.UserDefinedFiatAccountPayload.fromProto(PROTO)); + } +} \ No newline at end of file