diff --git a/src/main/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContact.java b/src/main/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContact.java index 62519731..a4267f53 100644 --- a/src/main/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContact.java +++ b/src/main/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContact.java @@ -54,8 +54,14 @@ public class HsOfficeContact implements Stringifyable, BaseEntity postalAddress = new HashMap<>(); + + @Transient + private PatchableMapWrapper postalAddressWrapper; @Builder.Default @Setter(AccessLevel.NONE) @@ -75,6 +81,17 @@ public class HsOfficeContact implements Stringifyable, BaseEntity phoneNumbersWrapper; + public PatchableMapWrapper getPostalAddress() { + return PatchableMapWrapper.of( + postalAddressWrapper, + (newWrapper) -> {postalAddressWrapper = newWrapper;}, + postalAddress); + } + + public void putPostalAddress(Map newPostalAddress) { + getPostalAddress().assign(newPostalAddress); + } + public PatchableMapWrapper getEmailAddresses() { return PatchableMapWrapper.of( emailAddressesWrapper, diff --git a/src/main/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactEntityPatcher.java b/src/main/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactEntityPatcher.java index e08e6bae..356aa950 100644 --- a/src/main/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactEntityPatcher.java +++ b/src/main/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactEntityPatcher.java @@ -18,7 +18,8 @@ class HsOfficeContactEntityPatcher implements EntityPatcher entity.getPostalAddress().patch(KeyValueMap.from(resource.getPostalAddress()))); Optional.ofNullable(resource.getEmailAddresses()) .ifPresent(r -> entity.getEmailAddresses().patch(KeyValueMap.from(resource.getEmailAddresses()))); Optional.ofNullable(resource.getPhoneNumbers()) diff --git a/src/main/java/net/hostsharing/hsadminng/hs/office/relation/HsOfficeRelationRbacRepository.java b/src/main/java/net/hostsharing/hsadminng/hs/office/relation/HsOfficeRelationRbacRepository.java index 96d4b8d5..cce31305 100644 --- a/src/main/java/net/hostsharing/hsadminng/hs/office/relation/HsOfficeRelationRbacRepository.java +++ b/src/main/java/net/hostsharing/hsadminng/hs/office/relation/HsOfficeRelationRbacRepository.java @@ -47,7 +47,7 @@ public interface HsOfficeRelationRbacRepository extends Repository toAddress(final Record rec) { + final var result = new LinkedHashMap(); final var name = toName( rec.getString("salut"), rec.getString("title"), rec.getString("first_name"), rec.getString("last_name")); if (isNotBlank(name)) - result.append(name + "\n"); + result.put("name", name); if (isNotBlank(rec.getString("firma"))) - result.append(rec.getString("firma") + "\n"); - if (isNotBlank(rec.getString("co"))) - result.append("c/o " + rec.getString("co") + "\n"); - if (isNotBlank(rec.getString("street"))) - result.append(rec.getString("street") + "\n"); - final var zipcodeAndCity = toZipcodeAndCity(rec); - if (isNotBlank(zipcodeAndCity)) - result.append(zipcodeAndCity + "\n"); - return result.toString(); - } + result.put("firm", name); - private String toZipcodeAndCity(final Record rec) { - final var result = new StringBuilder(); - if (isNotBlank(rec.getString("country"))) - result.append(rec.getString("country") + " "); - if (isNotBlank(rec.getString("zipcode"))) - result.append(rec.getString("zipcode") + " "); - if (isNotBlank(rec.getString("city"))) - result.append(rec.getString("city")); - return result.toString(); + List.of("co", "street", "zipcode", "city", "country").forEach(key -> { + if (isNotBlank(rec.getString(key))) + result.put(key, rec.getString(key)); + }); + return result; } private String toCaption( diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactControllerAcceptanceTest.java b/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactControllerAcceptanceTest.java index 10dd8c75..19bb80a3 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactControllerAcceptanceTest.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactControllerAcceptanceTest.java @@ -21,10 +21,13 @@ import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import java.util.Map; import java.util.UUID; +import java.util.concurrent.ThreadLocalRandom; +import static java.util.Map.entry; import static net.hostsharing.hsadminng.rbac.test.IsValidUuidMatcher.isUuidValid; import static net.hostsharing.hsadminng.rbac.test.JsonMatcher.lenientlyEquals; import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.Matchers.hasEntry; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.startsWith; @@ -214,7 +217,11 @@ class HsOfficeContactControllerAcceptanceTest extends ContextBasedTestWithCleanu "emailAddresses": { "main": "patched@example.org" }, - "postalAddress": "Patched Address", + "postalAddress": { + "extra": "Extra Property", + "co": "P. Patcher", + "street": "Patchstraße 5" + }, "phoneNumbers": { "phone_office": "+01 100 123456" } @@ -229,7 +236,10 @@ class HsOfficeContactControllerAcceptanceTest extends ContextBasedTestWithCleanu .body("uuid", isUuidValid()) .body("caption", is("Temp patched contact")) .body("emailAddresses", is(Map.of("main", "patched@example.org"))) - .body("postalAddress", is("Patched Address")) + .body("postalAddress", hasEntry("name", givenContact.getPostalAddress().get("name"))) // unchanged + .body("postalAddress", hasEntry("extra", "Extra Property")) // unchanged + .body("postalAddress", hasEntry("co", "P. Patcher")) // patched + .body("postalAddress", hasEntry("street", "Patchstraße 5")) // patched .body("phoneNumbers", is(Map.of("phone_office", "+01 100 123456"))); // @formatter:on @@ -239,7 +249,11 @@ class HsOfficeContactControllerAcceptanceTest extends ContextBasedTestWithCleanu .matches(person -> { assertThat(person.getCaption()).isEqualTo("Temp patched contact"); assertThat(person.getEmailAddresses()).containsExactlyEntriesOf(Map.of("main", "patched@example.org")); - assertThat(person.getPostalAddress()).isEqualTo("Patched Address"); + assertThat(person.getPostalAddress()).containsAllEntriesOf(Map.ofEntries( + entry("name", givenContact.getPostalAddress().get("name")), + entry("co", "P. Patcher"), + entry("street", "Patchstraße 5") + )); assertThat(person.getPhoneNumbers()).containsExactlyEntriesOf(Map.of("phone_office", "+01 100 123456")); return true; }); @@ -264,7 +278,7 @@ class HsOfficeContactControllerAcceptanceTest extends ContextBasedTestWithCleanu "phone_office": "+01 100 123456" } } - """) + """) .port(port) .when() .patch("http://localhost/api/hs/office/contacts/" + givenContact.getUuid()) @@ -274,7 +288,6 @@ class HsOfficeContactControllerAcceptanceTest extends ContextBasedTestWithCleanu .body("uuid", isUuidValid()) .body("caption", is(givenContact.getCaption())) .body("emailAddresses", is(Map.of("main", "patched@example.org"))) - .body("postalAddress", is(givenContact.getPostalAddress())) .body("phoneNumbers", is(Map.of("phone_office", "+01 100 123456"))); // @formatter:on @@ -283,12 +296,11 @@ class HsOfficeContactControllerAcceptanceTest extends ContextBasedTestWithCleanu .matches(person -> { assertThat(person.getCaption()).isEqualTo(givenContact.getCaption()); assertThat(person.getEmailAddresses()).containsExactlyEntriesOf(Map.of("main", "patched@example.org")); - assertThat(person.getPostalAddress()).isEqualTo(givenContact.getPostalAddress()); + assertThat(person.getPostalAddress()).containsExactlyInAnyOrderEntriesOf(givenContact.getPostalAddress()); assertThat(person.getPhoneNumbers()).containsExactlyEntriesOf(Map.of("phone_office", "+01 100 123456")); return true; }); } - } @Nested @@ -361,8 +373,13 @@ class HsOfficeContactControllerAcceptanceTest extends ContextBasedTestWithCleanu final var newContact = HsOfficeContactRbacEntity.builder() .uuid(UUID.randomUUID()) .caption("Temp from " + Context.getCallerMethodNameFromStackFrame(1) ) + .postalAddress(Map.ofEntries( + entry("name", RandomStringUtils.randomAlphabetic(6) + " " + RandomStringUtils.randomAlphabetic(10)), + entry("street", RandomStringUtils.randomAlphabetic(10) + randomInt(1, 99)), + entry("zipcode", "D-" + randomInt(10000, 99999)), + entry("city", RandomStringUtils.randomAlphabetic(10)) + )) .emailAddresses(Map.of("main", RandomStringUtils.randomAlphabetic(10) + "@example.org")) - .postalAddress("Postal Address " + RandomStringUtils.randomAlphabetic(10)) .phoneNumbers(Map.of("phone_office", "+01 200 " + RandomStringUtils.randomNumeric(8))) .build(); @@ -378,4 +395,8 @@ class HsOfficeContactControllerAcceptanceTest extends ContextBasedTestWithCleanu em.createQuery("DELETE FROM HsOfficeContactRbacEntity c WHERE c.caption LIKE 'Temp %'").executeUpdate(); }).assertSuccessful(); } + + private int randomInt(final int min, final int max) { + return ThreadLocalRandom.current().nextInt(min, max); + } } diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactPatcherUnitTest.java b/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactPatcherUnitTest.java index 95b4eb94..e11a6a61 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactPatcherUnitTest.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactPatcherUnitTest.java @@ -19,6 +19,19 @@ class HsOfficeContactPatcherUnitTest extends PatchUnitTestBase< > { private static final UUID INITIAL_CONTACT_UUID = UUID.randomUUID(); + + private static final Map PATCH_POSTAL_ADDRESS = patchMap( + entry("name", "Patty Patch"), + entry("street", "Patchstreet 10"), + entry("zipcode", null), + entry("city", "Hamburg") + ); + private static final Map PATCHED_POSTAL_ADDRESS = patchMap( + entry("name", "Patty Patch"), + entry("street", "Patchstreet 10"), + entry("city", "Hamburg") + ); + private static final Map PATCH_EMAIL_ADDRESSES = patchMap( entry("main", "patched@example.com"), entry("paul", null), @@ -46,6 +59,11 @@ class HsOfficeContactPatcherUnitTest extends PatchUnitTestBase< final var entity = new HsOfficeContactRbacEntity(); entity.setUuid(INITIAL_CONTACT_UUID); entity.setCaption("initial caption"); + entity.putPostalAddress(Map.ofEntries( + entry("name", "Ina Initial"), + entry("street", "Initialstraße 50"), + entry("zipcode", "20000"), + entry("city", "Hamburg"))); entity.putEmailAddresses(Map.ofEntries( entry("main", "initial@example.org"), entry("paul", "paul@example.com"), @@ -54,7 +72,6 @@ class HsOfficeContactPatcherUnitTest extends PatchUnitTestBase< entry("phone_office", "+49 40 12345-00"), entry("phone_mobile", "+49 1555 1234567"), entry("fax", "+49 40 12345-90"))); - entity.setPostalAddress("Initialstraße 50\n20000 Hamburg"); return entity; } @@ -77,24 +94,26 @@ class HsOfficeContactPatcherUnitTest extends PatchUnitTestBase< "patched caption", HsOfficeContactRbacEntity::setCaption), new SimpleProperty<>( - "resources", + "postalAddress", + HsOfficeContactPatchResource::setPostalAddress, + PATCH_POSTAL_ADDRESS, + HsOfficeContactRbacEntity::putPostalAddress, + PATCHED_POSTAL_ADDRESS) + .notNullable(), + new SimpleProperty<>( + "emailAddresses", HsOfficeContactPatchResource::setEmailAddresses, PATCH_EMAIL_ADDRESSES, HsOfficeContactRbacEntity::putEmailAddresses, PATCHED_EMAIL_ADDRESSES) .notNullable(), new SimpleProperty<>( - "resources", + "phoneNumbers", HsOfficeContactPatchResource::setPhoneNumbers, PATCH_PHONE_NUMBERS, HsOfficeContactRbacEntity::putPhoneNumbers, PATCHED_PHONE_NUMBERS) - .notNullable(), - new JsonNullableProperty<>( - "patched given name", - HsOfficeContactPatchResource::setPostalAddress, - "patched given name", - HsOfficeContactRbacEntity::setPostalAddress) + .notNullable() ); } } diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactRbacTestEntity.java b/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactRbacTestEntity.java index ba96f31b..5589cab2 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactRbacTestEntity.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactRbacTestEntity.java @@ -2,6 +2,8 @@ package net.hostsharing.hsadminng.hs.office.contact; import java.util.Map; +import static java.util.Map.entry; + public class HsOfficeContactRbacTestEntity { public static final HsOfficeContactRbacEntity TEST_RBAC_CONTACT = hsOfficeContact("some contact", "some-contact@example.com"); @@ -9,7 +11,12 @@ public class HsOfficeContactRbacTestEntity { static public HsOfficeContactRbacEntity hsOfficeContact(final String caption, final String emailAddr) { return HsOfficeContactRbacEntity.builder() .caption(caption) - .postalAddress("address of " + caption) + .postalAddress(Map.ofEntries( + entry("name", "M. Meyer"), + entry("street", "Teststraße 11"), + entry("zipcode", "D-12345"), + entry("city", "Berlin") + )) .emailAddresses(Map.of("main", emailAddr)) .build(); } diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactRealTestEntity.java b/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactRealTestEntity.java index d8cdfe1b..c10a9a35 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactRealTestEntity.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/contact/HsOfficeContactRealTestEntity.java @@ -2,6 +2,8 @@ package net.hostsharing.hsadminng.hs.office.contact; import java.util.Map; +import static java.util.Map.entry; + public class HsOfficeContactRealTestEntity { public static final HsOfficeContactRealEntity TEST_REAL_CONTACT = hsOfficeContact("some contact", "some-contact@example.com"); @@ -9,7 +11,12 @@ public class HsOfficeContactRealTestEntity { static public HsOfficeContactRealEntity hsOfficeContact(final String caption, final String emailAddr) { return HsOfficeContactRealEntity.builder() .caption(caption) - .postalAddress("address of " + caption) + .postalAddress(Map.ofEntries( + entry("name", "M. Meyer"), + entry("street", "Teststraße 11"), + entry("zipcode", "D-12345"), + entry("city", "Berlin") + )) .emailAddresses(Map.of("main", emailAddr)) .build(); } diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/debitor/HsOfficeDebitorControllerAcceptanceTest.java b/src/test/java/net/hostsharing/hsadminng/hs/office/debitor/HsOfficeDebitorControllerAcceptanceTest.java index 58b715da..a15ffbce 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/debitor/HsOfficeDebitorControllerAcceptanceTest.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/debitor/HsOfficeDebitorControllerAcceptanceTest.java @@ -460,9 +460,12 @@ class HsOfficeDebitorControllerAcceptanceTest extends ContextBasedTestWithCleanu "type": "DEBITOR", "contact": { "caption": "first contact", - "postalAddress": "Vorname Nachname\\nStraße Hnr\\nPLZ Stadt", - "emailAddresses": { "main": "contact-admin@firstcontact.example.com" }, - "phoneNumbers": { "phone_office": "+49 123 1234567" } + "postalAddress": { + "country": "Germany" + }, + "emailAddresses": { "main": "contact-admin@firstcontact.example.com" }, + "phoneNumbers": { "phone_office": "+49 123 1234567" } + } } }, "debitorNumber": 1000111, @@ -476,10 +479,11 @@ class HsOfficeDebitorControllerAcceptanceTest extends ContextBasedTestWithCleanu "mark": null, "contact": { "caption": "first contact", - "postalAddress": "Vorname Nachname\\nStraße Hnr\\nPLZ Stadt", - "emailAddresses": { "main": "contact-admin@firstcontact.example.com" }, - "phoneNumbers": { "phone_office": "+49 123 1234567" } - } + "postalAddress": { + "country": "Germany" + }, + "emailAddresses": { "main": "contact-admin@firstcontact.example.com" }, + "phoneNumbers": { "phone_office": "+49 123 1234567" } }, "details": { "registrationOffice": "Hamburg", diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/relation/HsOfficeRelationControllerAcceptanceTest.java b/src/test/java/net/hostsharing/hsadminng/hs/office/relation/HsOfficeRelationControllerAcceptanceTest.java index e767ff1c..2dac741b 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/relation/HsOfficeRelationControllerAcceptanceTest.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/relation/HsOfficeRelationControllerAcceptanceTest.java @@ -199,7 +199,9 @@ class HsOfficeRelationControllerAcceptanceTest extends ContextBasedTestWithClean "type": "REPRESENTATIVE", "contact": { "caption": "first contact", - "postalAddress": "Vorname Nachname\\nStraße Hnr\\nPLZ Stadt", + "postalAddress": { + "country": "Germany" + }, "emailAddresses": { "main": "contact-admin@firstcontact.example.com" }, diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/HsOfficeScenarioTests.java b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/HsOfficeScenarioTests.java index 07723a1e..0288ab9f 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/HsOfficeScenarioTests.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/HsOfficeScenarioTests.java @@ -55,8 +55,11 @@ class HsOfficeScenarioTests extends ScenarioTest { .given("tradeName", "Test AG") .given("contactCaption", "Test AG - Hamburg") .given("postalAddress", """ - Shanghai-Allee 1 - 20123 Hamburg + "firm": "Test AG", + "street": "Shanghai-Allee 1", + "zipcode": "20123", + "city": "Hamburg", + "country": "Germany" """) .given("officePhoneNumber", "+49 40 654321-0") .given("emailAddress", "hamburg@test-ag.example.org") @@ -75,8 +78,11 @@ class HsOfficeScenarioTests extends ScenarioTest { .given("familyName", "Matthieu") .given("contactCaption", "Michelle Matthieu") .given("postalAddress", """ - An der Wandse 34 - 22123 Hamburg + "name": "Michelle Matthieu", + "street": "An der Wandse 34", + "zipcode": "22123", + "city": "Hamburg", + "country": "Germany" """) .given("officePhoneNumber", "+49 40 123456") .given("emailAddress", "michelle.matthieu@example.org") @@ -94,8 +100,11 @@ class HsOfficeScenarioTests extends ScenarioTest { .given("representativeFamilyName", "Trust") .given("representativeGivenName", "Tracy") .given("representativePostalAddress", """ - An der Alster 100 - 20000 Hamburg + "name": "Michelle Matthieu", + "street": "An der Alster 100", + "zipcode": "20000", + "city": "Hamburg", + "country": "Germany" """) .given("representativePhoneNumber", "+49 40 123456") .given("representativeEMailAddress", "tracy.trust@example.org") @@ -172,12 +181,18 @@ class HsOfficeScenarioTests extends ScenarioTest { void shouldReplaceContactData() { new ReplaceContactData(this) .given("partnerName", "Test AG") - .given("newContactCaption", "Test AG - Norden") + .given("newContactCaption", "Test AG - China") .given("newPostalAddress", """ - Am Hafen 11 - 26506 Norden - """) - .given("newOfficePhoneNumber", "+49 4931 654321-0") + "firm": "Test AG", + "name": "Fi Zhong-Kha", + "building": "Thi Chi Koh Building", + "street": "No.2 Commercial Second Street", + "district": "Niushan Wei Wu", + "city": "Dongguan City", + "province": "Guangdong Province", + "country": "China" + """) + .given("newOfficePhoneNumber", "++15 999 654321" ) .given("newEmailAddress", "norden@test-ag.example.org") .doRun(); } diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/contact/AmendContactData.java b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/contact/AmendContactData.java index 8f45d83a..0c0e3021 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/contact/AmendContactData.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/contact/AmendContactData.java @@ -27,7 +27,9 @@ public class AmendContactData extends UseCase { httpPatch("/api/hs/office/contacts/%{partnerContactUuid}", usingJsonBody(""" { "caption": ${newContactCaption???}, - "postalAddress": ${newPostalAddress???}, + "postalAddress": { + %{newPostalAddress???} + }, "phoneNumbers": { "office": ${newOfficePhoneNumber???} }, diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/contact/ReplaceContactData.java b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/contact/ReplaceContactData.java index b4916dda..f3e88269 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/contact/ReplaceContactData.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/contact/ReplaceContactData.java @@ -27,7 +27,9 @@ public class ReplaceContactData extends UseCase { httpPost("/api/hs/office/contacts", usingJsonBody(""" { "caption": ${newContactCaption}, - "postalAddress": ${newPostalAddress???}, + "postalAddress": { + %{newPostalAddress???} + }, "phoneNumbers": { "phone": ${newOfficePhoneNumber???} }, @@ -37,16 +39,18 @@ public class ReplaceContactData extends UseCase { } """)) .expecting(CREATED).expecting(JSON), - "Please check first if that contact already exists, if so, use it's UUID below." - ); + "Please check first if that contact already exists, if so, use it's UUID below.", + "If any `postalAddress` sub-properties besides those specified in the API " + + "(currently `firm`, `name`, `co`, `street`, `zipcode`, `city`, `country`) " + + "its values might not appear in external systems."); withTitle("Replace the Contact-Reference in the Partner-Relation", () -> - httpPatch("/api/hs/office/relations/%{partnerRelationUuid}", usingJsonBody(""" - { - "contactUuid": ${Contact: %{newContactCaption}} - } - """)) - .expecting(OK) + httpPatch("/api/hs/office/relations/%{partnerRelationUuid}", usingJsonBody(""" + { + "contactUuid": ${Contact: %{newContactCaption}} + } + """)) + .expecting(OK) ); return null; diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/partner/AddRepresentativeToPartner.java b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/partner/AddRepresentativeToPartner.java index 1914cbb3..c5381684 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/partner/AddRepresentativeToPartner.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/scenarios/partner/AddRepresentativeToPartner.java @@ -42,7 +42,9 @@ public class AddRepresentativeToPartner extends UseCase { httpPost("/api/hs/office/contacts", usingJsonBody(""" { "caption": ${contactCaption}, - "postalAddress": ${postalAddress???}, + "postalAddress": { + %{postalAddress???} + }, "phoneNumbers": { "office": ${officePhoneNumber???} },