add scenario shouldCreateSelfDebitorForPartnerWithIdenticalContactData
This commit is contained in:
parent
6d3f191d1a
commit
9f1bb284e7
src
main/java/net/hostsharing/hsadminng/hs/office/partner
test/java/net/hostsharing/hsadminng/hs/office/scenarios
@ -185,18 +185,19 @@ public class HsOfficePartnerController implements HsOfficePartnersApi {
|
||||
private void optionallyUpdateRelatedRelations(final HsOfficePartnerRbacEntity saved, final HsOfficePersonRealEntity previousPartnerPerson) {
|
||||
final var partnerPersonHasChanged = !saved.getPartnerRel().getHolder().getUuid().equals(previousPartnerPerson.getUuid());
|
||||
if (partnerPersonHasChanged) {
|
||||
em.createNativeQuery("""
|
||||
final var count = em.createNativeQuery("""
|
||||
UPDATE hs_office.relation
|
||||
SET anchorUuid = :newPartnerPersonUuid
|
||||
WHERE anchorUuid = :oldPartnerPersonUuid
|
||||
SET holderUuid = :newPartnerPersonUuid
|
||||
WHERE type = 'DEBITOR' AND holderUuid = :oldPartnerPersonUuid AND anchorUuid = :oldPartnerPersonUuid
|
||||
""")
|
||||
.setParameter("oldPartnerPersonUuid", previousPartnerPerson.getUuid())
|
||||
.setParameter("newPartnerPersonUuid", saved.getPartnerRel().getHolder().getUuid())
|
||||
.executeUpdate();
|
||||
System.out.println(count); // FIXME: remove
|
||||
em.createNativeQuery("""
|
||||
UPDATE hs_office.relation
|
||||
SET holderUuid = :newPartnerPersonUuid
|
||||
WHERE holderUuid = :oldPartnerPersonUuid AND type = 'DEBITOR'
|
||||
SET anchorUuid = :newPartnerPersonUuid
|
||||
WHERE anchorUuid = :oldPartnerPersonUuid
|
||||
""")
|
||||
.setParameter("oldPartnerPersonUuid", previousPartnerPerson.getUuid())
|
||||
.setParameter("newPartnerPersonUuid", saved.getPartnerRel().getHolder().getUuid())
|
||||
|
@ -7,6 +7,7 @@ import net.hostsharing.hsadminng.hs.office.scenarios.contact.RemovePhoneNumberFr
|
||||
import net.hostsharing.hsadminng.hs.office.scenarios.contact.ReplaceContactData;
|
||||
import net.hostsharing.hsadminng.hs.office.scenarios.debitor.CreateExternalDebitorForPartner;
|
||||
import net.hostsharing.hsadminng.hs.office.scenarios.debitor.CreateSelfDebitorForPartner;
|
||||
import net.hostsharing.hsadminng.hs.office.scenarios.debitor.CreateSelfDebitorForPartnerWithIdenticalContactData;
|
||||
import net.hostsharing.hsadminng.hs.office.scenarios.debitor.CreateSepaMandateForDebitor;
|
||||
import net.hostsharing.hsadminng.hs.office.scenarios.debitor.DeleteDebitor;
|
||||
import net.hostsharing.hsadminng.hs.office.scenarios.debitor.DontDeleteDefaultDebitor;
|
||||
@ -265,11 +266,27 @@ class HsOfficeScenarioTests extends ScenarioTest {
|
||||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
|
||||
class DebitorScenarios {
|
||||
|
||||
@Test
|
||||
@Order(2000)
|
||||
@Requires("Partner: P-31011 - Michelle Matthieu")
|
||||
@Produces("Debitor: D-3101100 - Michelle Matthieu")
|
||||
void shouldCreateSelfDebitorForPartnerWithIdenticalContactData() {
|
||||
new CreateSelfDebitorForPartnerWithIdenticalContactData(scenarioTest)
|
||||
.given("partnerNumber", "P-31011")
|
||||
.given("debitorNumberSuffix", "00") // TODO.impl: could be assigned automatically, but is not yet
|
||||
.given("billable", true)
|
||||
.given("vatBusiness", false)
|
||||
.given("vatReverseCharge", false)
|
||||
.given("defaultPrefix", "mim")
|
||||
.doRun()
|
||||
.keep();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(2010)
|
||||
@Requires("Partner: P-31010 - Test AG")
|
||||
@Produces("Debitor: D-3101000 - Test AG - main debitor")
|
||||
void shouldCreateSelfDebitorForPartner() {
|
||||
void shouldCreateSelfDebitorForPartnerWithDistinctContactData() {
|
||||
new CreateSelfDebitorForPartner(scenarioTest)
|
||||
.given("partnerPersonTradeName", "Test AG")
|
||||
.given("billingContactCaption", "Test AG - billing department")
|
||||
@ -654,7 +671,7 @@ class HsOfficeScenarioTests extends ScenarioTest {
|
||||
|
||||
@Test
|
||||
@Order(6010)
|
||||
@Requires("Partner: P-31011 - Michelle Matthieu")
|
||||
@Requires("Debitor: D-3101100 - Michelle Matthieu") // which should also get updated
|
||||
void shouldReplaceDeceasedPartnerByCommunityOfHeirs() {
|
||||
new ReplaceDeceasedPartnerWithCommunityOfHeirs(scenarioTest)
|
||||
.given("partnerNumber", "P-31011")
|
||||
|
45
src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/debitor/CreateSelfDebitorForPartnerWithIdenticalContactData.java
Normal file
45
src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/debitor/CreateSelfDebitorForPartnerWithIdenticalContactData.java
Normal file
@ -0,0 +1,45 @@
|
||||
package net.hostsharing.hsadminng.hs.office.scenarios.debitor;
|
||||
|
||||
import net.hostsharing.hsadminng.hs.scenarios.ScenarioTest;
|
||||
import net.hostsharing.hsadminng.hs.scenarios.UseCase;
|
||||
import org.springframework.http.HttpStatus;
|
||||
|
||||
import static io.restassured.http.ContentType.JSON;
|
||||
import static org.springframework.http.HttpStatus.CREATED;
|
||||
|
||||
public class CreateSelfDebitorForPartnerWithIdenticalContactData
|
||||
extends UseCase<CreateSelfDebitorForPartnerWithIdenticalContactData> {
|
||||
|
||||
public CreateSelfDebitorForPartnerWithIdenticalContactData(final ScenarioTest testSuite) {
|
||||
super(testSuite);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected HttpResponse run() {
|
||||
withTitle("Determine Partner-Person UUID", () ->
|
||||
httpGet("/api/hs/office/partners/" + uriEncoded("%{partnerNumber}"))
|
||||
.reportWithResponse().expecting(HttpStatus.OK).expecting(JSON)
|
||||
.extractUuidAlias("partnerRel.holder.uuid", "partnerPersonUuid")
|
||||
.extractUuidAlias("partnerRel.contact.uuid", "partnerContactUuid")
|
||||
);
|
||||
|
||||
return httpPost("/api/hs/office/debitors", usingJsonBody("""
|
||||
{
|
||||
"debitorRel": {
|
||||
"anchor.uuid": ${partnerPersonUuid},
|
||||
"holder.uuid": ${partnerPersonUuid},
|
||||
"contact.uuid": ${partnerContactUuid}
|
||||
},
|
||||
"debitorNumberSuffix": ${debitorNumberSuffix},
|
||||
"billable": ${billable},
|
||||
"vatId": ${vatId???},
|
||||
"vatCountryCode": ${vatCountryCode???},
|
||||
"vatBusiness": ${vatBusiness},
|
||||
"vatReverseCharge": ${vatReverseCharge},
|
||||
"defaultPrefix": ${defaultPrefix}
|
||||
}
|
||||
"""))
|
||||
.expecting(CREATED).expecting(JSON);
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user