db-migration #10
@ -1,5 +1,6 @@
|
|||||||
package net.hostsharing.hsadminng.hs.office.debitor;
|
package net.hostsharing.hsadminng.hs.office.debitor;
|
||||||
|
|
||||||
|
import net.hostsharing.hsadminng.hs.office.bankaccount.HsOfficeBankAccountEntity;
|
||||||
import net.hostsharing.hsadminng.hs.office.contact.HsOfficeContactEntity;
|
import net.hostsharing.hsadminng.hs.office.contact.HsOfficeContactEntity;
|
||||||
import net.hostsharing.hsadminng.hs.office.generated.api.v1.model.HsOfficeDebitorPatchResource;
|
import net.hostsharing.hsadminng.hs.office.generated.api.v1.model.HsOfficeDebitorPatchResource;
|
||||||
import net.hostsharing.hsadminng.mapper.EntityPatcher;
|
import net.hostsharing.hsadminng.mapper.EntityPatcher;
|
||||||
@ -35,6 +36,10 @@ class HsOfficeDebitorEntityPatcher implements EntityPatcher<HsOfficeDebitorPatch
|
|||||||
verifyNotNull(newValue, "defaultPrefix");
|
verifyNotNull(newValue, "defaultPrefix");
|
||||||
entity.setDefaultPrefix(newValue);
|
entity.setDefaultPrefix(newValue);
|
||||||
});
|
});
|
||||||
|
OptionalFromJson.of(resource.getRefundBankAccountUuid()).ifPresent(newValue -> {
|
||||||
|
verifyNotNull(newValue, "refundBankAccount");
|
||||||
|
entity.setRefundBankAccount(em.getReference(HsOfficeBankAccountEntity.class, newValue));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void verifyNotNull(final Object newValue, final String propertyName) {
|
private void verifyNotNull(final Object newValue, final String propertyName) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.hostsharing.hsadminng.hs.office.debitor;
|
package net.hostsharing.hsadminng.hs.office.debitor;
|
||||||
|
|
||||||
|
import net.hostsharing.hsadminng.hs.office.bankaccount.HsOfficeBankAccountEntity;
|
||||||
import net.hostsharing.hsadminng.hs.office.contact.HsOfficeContactEntity;
|
import net.hostsharing.hsadminng.hs.office.contact.HsOfficeContactEntity;
|
||||||
import net.hostsharing.hsadminng.hs.office.generated.api.v1.model.HsOfficeDebitorPatchResource;
|
import net.hostsharing.hsadminng.hs.office.generated.api.v1.model.HsOfficeDebitorPatchResource;
|
||||||
import net.hostsharing.hsadminng.hs.office.partner.HsOfficePartnerEntity;
|
import net.hostsharing.hsadminng.hs.office.partner.HsOfficePartnerEntity;
|
||||||
@ -42,6 +43,9 @@ class HsOfficeDebitorEntityPatcherUnitTest extends PatchUnitTestBase<
|
|||||||
private static final boolean INITIAL_VAT_REVERSE_CHARGE = true;
|
private static final boolean INITIAL_VAT_REVERSE_CHARGE = true;
|
||||||
private static final boolean PATCHED_VAT_REVERSE_CHARGE = false;
|
private static final boolean PATCHED_VAT_REVERSE_CHARGE = false;
|
||||||
|
|
||||||
|
private static final UUID INITIAL_REFUND_BANK_ACCOUNT_UUID = UUID.randomUUID();
|
||||||
|
private static final UUID PATCHED_REFUND_BANK_ACCOUNT_UUID = UUID.randomUUID();
|
||||||
|
|
||||||
private final HsOfficePartnerEntity givenInitialPartner = HsOfficePartnerEntity.builder()
|
private final HsOfficePartnerEntity givenInitialPartner = HsOfficePartnerEntity.builder()
|
||||||
.uuid(INITIAL_PARTNER_UUID)
|
.uuid(INITIAL_PARTNER_UUID)
|
||||||
.build();
|
.build();
|
||||||
@ -49,6 +53,10 @@ class HsOfficeDebitorEntityPatcherUnitTest extends PatchUnitTestBase<
|
|||||||
private final HsOfficeContactEntity givenInitialContact = HsOfficeContactEntity.builder()
|
private final HsOfficeContactEntity givenInitialContact = HsOfficeContactEntity.builder()
|
||||||
.uuid(INITIAL_CONTACT_UUID)
|
.uuid(INITIAL_CONTACT_UUID)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
private final HsOfficeBankAccountEntity givenInitialBankAccount = HsOfficeBankAccountEntity.builder()
|
||||||
|
.uuid(INITIAL_REFUND_BANK_ACCOUNT_UUID)
|
||||||
|
.build();
|
||||||
@Mock
|
@Mock
|
||||||
private EntityManager em;
|
private EntityManager em;
|
||||||
|
|
||||||
@ -56,8 +64,8 @@ class HsOfficeDebitorEntityPatcherUnitTest extends PatchUnitTestBase<
|
|||||||
void initMocks() {
|
void initMocks() {
|
||||||
lenient().when(em.getReference(eq(HsOfficeContactEntity.class), any())).thenAnswer(invocation ->
|
lenient().when(em.getReference(eq(HsOfficeContactEntity.class), any())).thenAnswer(invocation ->
|
||||||
HsOfficeContactEntity.builder().uuid(invocation.getArgument(1)).build());
|
HsOfficeContactEntity.builder().uuid(invocation.getArgument(1)).build());
|
||||||
lenient().when(em.getReference(eq(HsOfficeContactEntity.class), any())).thenAnswer(invocation ->
|
lenient().when(em.getReference(eq(HsOfficeBankAccountEntity.class), any())).thenAnswer(invocation ->
|
||||||
HsOfficeContactEntity.builder().uuid(invocation.getArgument(1)).build());
|
HsOfficeBankAccountEntity.builder().uuid(invocation.getArgument(1)).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -72,6 +80,7 @@ class HsOfficeDebitorEntityPatcherUnitTest extends PatchUnitTestBase<
|
|||||||
entity.setVatBusiness(true);
|
entity.setVatBusiness(true);
|
||||||
entity.setVatReverseCharge(INITIAL_VAT_REVERSE_CHARGE);
|
entity.setVatReverseCharge(INITIAL_VAT_REVERSE_CHARGE);
|
||||||
entity.setDefaultPrefix("abc");
|
entity.setDefaultPrefix("abc");
|
||||||
|
entity.setRefundBankAccount(givenInitialBankAccount);
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,7 +129,7 @@ class HsOfficeDebitorEntityPatcherUnitTest extends PatchUnitTestBase<
|
|||||||
new SimpleProperty<>(
|
new SimpleProperty<>(
|
||||||
"personType",
|
"personType",
|
||||||
hsh-michaelhoennig marked this conversation as resolved
Outdated
|
|||||||
HsOfficeDebitorPatchResource::setVatBusiness,
|
HsOfficeDebitorPatchResource::setVatBusiness,
|
||||||
PATCHED_BILLABLE,
|
PATCHED_VAT_BUSINESS,
|
||||||
HsOfficeDebitorEntity::setVatBusiness)
|
HsOfficeDebitorEntity::setVatBusiness)
|
||||||
.notNullable(),
|
.notNullable(),
|
||||||
new SimpleProperty<>(
|
new SimpleProperty<>(
|
||||||
@ -134,6 +143,13 @@ class HsOfficeDebitorEntityPatcherUnitTest extends PatchUnitTestBase<
|
|||||||
HsOfficeDebitorPatchResource::setDefaultPrefix,
|
HsOfficeDebitorPatchResource::setDefaultPrefix,
|
||||||
PATCHED_DEFAULT_PREFIX,
|
PATCHED_DEFAULT_PREFIX,
|
||||||
HsOfficeDebitorEntity::setDefaultPrefix)
|
HsOfficeDebitorEntity::setDefaultPrefix)
|
||||||
|
.notNullable(),
|
||||||
|
new JsonNullableProperty<>(
|
||||||
|
"refundBankAccount",
|
||||||
|
HsOfficeDebitorPatchResource::setRefundBankAccountUuid,
|
||||||
|
PATCHED_REFUND_BANK_ACCOUNT_UUID,
|
||||||
|
HsOfficeDebitorEntity::setRefundBankAccount,
|
||||||
|
newBankAccount(PATCHED_REFUND_BANK_ACCOUNT_UUID))
|
||||||
.notNullable()
|
.notNullable()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -143,4 +159,10 @@ class HsOfficeDebitorEntityPatcherUnitTest extends PatchUnitTestBase<
|
|||||||
newContact.setUuid(uuid);
|
newContact.setUuid(uuid);
|
||||||
return newContact;
|
return newContact;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private HsOfficeBankAccountEntity newBankAccount(final UUID uuid) {
|
||||||
|
final var newBankAccount = new HsOfficeBankAccountEntity();
|
||||||
|
newBankAccount.setUuid(uuid);
|
||||||
|
return newBankAccount;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.hostsharing.test;
|
package net.hostsharing.test;
|
||||||
|
|
||||||
|
import net.hostsharing.hsadminng.hs.office.migration.HasUuid;
|
||||||
import net.hostsharing.hsadminng.mapper.EntityPatcher;
|
import net.hostsharing.hsadminng.mapper.EntityPatcher;
|
||||||
import org.junit.jupiter.api.Named;
|
import org.junit.jupiter.api.Named;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@ -232,7 +233,7 @@ public abstract class PatchUnitTestBase<R, E> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static class JsonNullableProperty<R, RV, E, EV> extends Property<R, RV, E, EV> {
|
protected static class JsonNullableProperty<R, RV, E extends HasUuid, EV> extends Property<R, RV, E, EV> {
|
||||||
|
|
||||||
private final BiConsumer<R, JsonNullable<RV>> resourceSetter;
|
private final BiConsumer<R, JsonNullable<RV>> resourceSetter;
|
||||||
public final RV givenPatchValue;
|
public final RV givenPatchValue;
|
||||||
|
Loading…
Reference in New Issue
Block a user
copy+paste Fehler: vatBusiness