Compare commits

..

No commits in common. "47ba0cadb650540c39a807d5c816444899843980" and "bc099ada40000096bcfd96db6e1517cdad290187" have entirely different histories.

10 changed files with 107 additions and 107 deletions

View File

@ -95,7 +95,7 @@ public abstract class UseCase<T extends UseCase<?>> {
return new JsonTemplate(jsonTemplate); return new JsonTemplate(jsonTemplate);
} }
public final void obtain( public final void keep(
final String alias, final String alias,
final Supplier<HttpResponse> http, final Supplier<HttpResponse> http,
final Function<HttpResponse, String> extractor, final Function<HttpResponse, String> extractor,
@ -106,7 +106,7 @@ public abstract class UseCase<T extends UseCase<?>> {
}); });
} }
public final void obtain(final String alias, final Supplier<HttpResponse> http, final String... extraInfo) { public final void keep(final String alias, final Supplier<HttpResponse> http, final String... extraInfo) {
withTitle(ScenarioTest.resolve(alias), () -> { withTitle(ScenarioTest.resolve(alias), () -> {
http.get().keep(); http.get().keep();
Arrays.stream(extraInfo).forEach(testReport::printPara); Arrays.stream(extraInfo).forEach(testReport::printPara);

View File

@ -20,27 +20,27 @@ public class CreateExternalDebitorForPartner extends UseCase<CreateExternalDebit
@Override @Override
protected HttpResponse run() { protected HttpResponse run() {
obtain("BankAccount: Billing GmbH - refund bank account", () -> keep("BankAccount: Billing GmbH - refund bank account", () ->
httpPost("/api/hs/office/bankaccounts", usingJsonBody(""" httpPost("/api/hs/office/bankaccounts", usingJsonBody("""
{ {
"holder": "Billing GmbH - refund bank account", "holder": "Billing GmbH - refund bank account",
"iban": "DE02120300000000202051", "iban": "DE02120300000000202051",
"bic": "BYLADEM1001" "bic": "BYLADEM1001"
} }
""")) """))
.expecting(CREATED).expecting(JSON) .expecting(CREATED).expecting(JSON)
); );
obtain("Contact: Billing GmbH - Test AG billing", () -> keep("Contact: Billing GmbH - Test AG billing", () ->
httpPost("/api/hs/office/contacts", usingJsonBody(""" httpPost("/api/hs/office/contacts", usingJsonBody("""
{ {
"caption": "Billing GmbH, billing for Test AG", "caption": "Billing GmbH, billing for Test AG",
"emailAddresses": { "emailAddresses": {
"main": "test-ag@billing-GmbH.example.com" "main": "test-ag@billing-GmbH.example.com"
}
} }
} """))
""")) .expecting(CREATED).expecting(JSON)
.expecting(CREATED).expecting(JSON)
); );
return httpPost("/api/hs/office/debitors", usingJsonBody(""" return httpPost("/api/hs/office/debitors", usingJsonBody("""

View File

@ -15,7 +15,7 @@ public class CreateSelfDebitorForPartner extends UseCase<CreateSelfDebitorForPar
@Override @Override
protected HttpResponse run() { protected HttpResponse run() {
obtain("partnerPersonUuid", () -> keep("partnerPersonUuid", () ->
httpGet("/api/hs/office/relations?relationType=PARTNER&personData=" + uriEncoded("%{partnerPersonTradeName}")) httpGet("/api/hs/office/relations?relationType=PARTNER&personData=" + uriEncoded("%{partnerPersonTradeName}"))
.expecting(OK).expecting(JSON), .expecting(OK).expecting(JSON),
response -> response.expectArrayElements(1).getFromBody("[0].holder.uuid"), response -> response.expectArrayElements(1).getFromBody("[0].holder.uuid"),
@ -23,27 +23,27 @@ public class CreateSelfDebitorForPartner extends UseCase<CreateSelfDebitorForPar
"**HINT**: With production data, you might get multiple results and have to decide which is the right one." "**HINT**: With production data, you might get multiple results and have to decide which is the right one."
); );
obtain("BankAccount: Test AG - refund bank account", () -> keep("BankAccount: Test AG - refund bank account", () ->
httpPost("/api/hs/office/bankaccounts", usingJsonBody(""" httpPost("/api/hs/office/bankaccounts", usingJsonBody("""
{ {
"holder": "Test AG - refund bank account", "holder": "Test AG - refund bank account",
"iban": "DE88100900001234567892", "iban": "DE88100900001234567892",
"bic": "BEVODEBB" "bic": "BEVODEBB"
} }
""")) """))
.expecting(CREATED).expecting(JSON) .expecting(CREATED).expecting(JSON)
); );
obtain("Contact: Test AG - billing department", () -> keep("Contact: Test AG - billing department", () ->
httpPost("/api/hs/office/contacts", usingJsonBody(""" httpPost("/api/hs/office/contacts", usingJsonBody("""
{ {
"caption": ${billingContactCaption}, "caption": ${billingContactCaption},
"emailAddresses": { "emailAddresses": {
"main": ${billingContactEmailAddress} "main": ${billingContactEmailAddress}
}
} }
} """))
""")) .expecting(CREATED).expecting(JSON)
.expecting(CREATED).expecting(JSON)
); );
return httpPost("/api/hs/office/debitors", usingJsonBody(""" return httpPost("/api/hs/office/debitors", usingJsonBody("""

View File

@ -14,15 +14,15 @@ public class CreateSepaMandataForDebitor extends UseCase<CreateSepaMandataForDeb
@Override @Override
protected HttpResponse run() { protected HttpResponse run() {
obtain("BankAccount: Test AG - debit bank account", () -> keep("BankAccount: Test AG - debit bank account", () ->
httpPost("/api/hs/office/bankaccounts", usingJsonBody(""" httpPost("/api/hs/office/bankaccounts", usingJsonBody("""
{ {
"holder": "Test AG - debit bank account", "holder": "Test AG - debit bank account",
"iban": "DE02701500000000594937", "iban": "DE02701500000000594937",
"bic": "SSKMDEMM" "bic": "SSKMDEMM"
} }
""")) """))
.expecting(CREATED).expecting(JSON) .expecting(CREATED).expecting(JSON)
); );
return httpPost("/api/hs/office/sepamandates", usingJsonBody(""" return httpPost("/api/hs/office/sepamandates", usingJsonBody("""

View File

@ -13,7 +13,7 @@ public class CreateMembership extends UseCase<CreateMembership> {
@Override @Override
protected HttpResponse run() { protected HttpResponse run() {
obtain("Membership: %{partnerName} 00", () -> keep("Membership: %{partnerName} 00", () ->
httpPost("/api/hs/office/memberships", usingJsonBody(""" httpPost("/api/hs/office/memberships", usingJsonBody("""
{ {
"partnerUuid": ${Partner: Test AG}, "partnerUuid": ${Partner: Test AG},

View File

@ -18,14 +18,14 @@ public class AddOperationsContactToPartner extends UseCase<AddOperationsContactT
@Override @Override
protected HttpResponse run() { protected HttpResponse run() {
obtain("Person: %{partnerPersonTradeName}", () -> keep("Person: %{partnerPersonTradeName}", () ->
httpGet("/api/hs/office/persons?name=" + uriEncoded("%{partnerPersonTradeName}")) httpGet("/api/hs/office/persons?name=" + uriEncoded("%{partnerPersonTradeName}"))
.expecting(OK).expecting(JSON), .expecting(OK).expecting(JSON),
response -> response.expectArrayElements(1).getFromBody("[0].uuid"), response -> response.expectArrayElements(1).getFromBody("[0].uuid"),
"In production data this query could result in multiple outputs. In that case, you have to find out which is the right one." "In production data this query could result in multiple outputs. In that case, you have to find out which is the right one."
); );
obtain("Person: %{operationsContactGivenName} %{operationsContactFamilyName}", keep("Person: %{operationsContactGivenName} %{operationsContactFamilyName}",
() -> () ->
httpPost("/api/hs/office/persons", usingJsonBody(""" httpPost("/api/hs/office/persons", usingJsonBody("""
{ {
@ -39,19 +39,19 @@ public class AddOperationsContactToPartner extends UseCase<AddOperationsContactT
"**HINT**: operations contacts are always connected to a partner-person, thus a person which is a holder of a partner-relation." "**HINT**: operations contacts are always connected to a partner-person, thus a person which is a holder of a partner-relation."
); );
obtain("Contact: %{operationsContactGivenName} %{operationsContactFamilyName}", () -> keep("Contact: %{operationsContactGivenName} %{operationsContactFamilyName}", () ->
httpPost("/api/hs/office/contacts", usingJsonBody(""" httpPost("/api/hs/office/contacts", usingJsonBody("""
{ {
"caption": "%{operationsContactGivenName} %{operationsContactFamilyName}", "caption": "%{operationsContactGivenName} %{operationsContactFamilyName}",
"phoneNumbers": { "phoneNumbers": {
"main": ${operationsContactPhoneNumber} "main": ${operationsContactPhoneNumber}
}, },
"emailAddresses": { "emailAddresses": {
"main": ${operationsContactEMailAddress} "main": ${operationsContactEMailAddress}
} }
} }
""")) """))
.expecting(CREATED).expecting(JSON), .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."
); );

View File

@ -1,8 +1,8 @@
package net.hostsharing.hsadminng.hs.office.scenarios.partner; package net.hostsharing.hsadminng.hs.office.scenarios.partner;
import io.restassured.http.ContentType; import io.restassured.http.ContentType;
import net.hostsharing.hsadminng.hs.office.scenarios.ScenarioTest;
import net.hostsharing.hsadminng.hs.office.scenarios.UseCase; import net.hostsharing.hsadminng.hs.office.scenarios.UseCase;
import net.hostsharing.hsadminng.hs.office.scenarios.ScenarioTest;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import static io.restassured.http.ContentType.JSON; import static io.restassured.http.ContentType.JSON;
@ -18,40 +18,40 @@ public class AddRepresentativeToPartner extends UseCase<AddRepresentativeToPartn
@Override @Override
protected HttpResponse run() { protected HttpResponse run() {
obtain("Person: %{partnerPersonTradeName}", () -> keep("Person: %{partnerPersonTradeName}", () ->
httpGet("/api/hs/office/persons?name=" + uriEncoded("%{partnerPersonTradeName}")) httpGet("/api/hs/office/persons?name=" + uriEncoded("%{partnerPersonTradeName}"))
.expecting(OK).expecting(JSON), .expecting(OK).expecting(JSON),
response -> response.expectArrayElements(1).getFromBody("[0].uuid"), response -> response.expectArrayElements(1).getFromBody("[0].uuid"),
"In production data this query could result in multiple outputs. In that case, you have to find out which is the right one." "In production data this query could result in multiple outputs. In that case, you have to find out which is the right one."
); );
obtain("Person: %{representativeGivenName} %{representativeFamilyName}", () -> keep("Person: %{representativeGivenName} %{representativeFamilyName}", () ->
httpPost("/api/hs/office/persons", usingJsonBody(""" httpPost("/api/hs/office/persons", usingJsonBody("""
{ {
"personType": "NATURAL_PERSON", "personType": "NATURAL_PERSON",
"familyName": ${representativeFamilyName}, "familyName": ${representativeFamilyName},
"givenName": ${representativeGivenName} "givenName": ${representativeGivenName}
} }
""")) """))
.expecting(HttpStatus.CREATED).expecting(ContentType.JSON), .expecting(HttpStatus.CREATED).expecting(ContentType.JSON),
"Please check first if that person already exists, if so, use it's UUID below.", "Please check first if that person already exists, if so, use it's UUID below.",
"**HINT**: A representative is always a natural person and represents a non-natural-person." "**HINT**: A representative is always a natural person and represents a non-natural-person."
); );
obtain("Contact: %{representativeGivenName} %{representativeFamilyName}", () -> keep("Contact: %{representativeGivenName} %{representativeFamilyName}", () ->
httpPost("/api/hs/office/contacts", usingJsonBody(""" httpPost("/api/hs/office/contacts", usingJsonBody("""
{ {
"caption": "%{representativeGivenName} %{representativeFamilyName}", "caption": "%{representativeGivenName} %{representativeFamilyName}",
"postalAddress": ${representativePostalAddress}, "postalAddress": ${representativePostalAddress},
"phoneNumbers": { "phoneNumbers": {
"main": ${representativePhoneNumber} "main": ${representativePhoneNumber}
}, },
"emailAddresses": { "emailAddresses": {
"main": ${representativeEMailAddress} "main": ${representativeEMailAddress}
}
} }
} """))
""")) .expecting(CREATED).expecting(JSON),
.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."
); );

View File

@ -21,14 +21,14 @@ public class CreatePartner extends UseCase<CreatePartner> {
@Override @Override
protected HttpResponse run() { protected HttpResponse run() {
obtain("Person: Hostsharing eG", () -> keep("Person: Hostsharing eG", () ->
httpGet("/api/hs/office/persons?name=Hostsharing+eG") httpGet("/api/hs/office/persons?name=Hostsharing+eG")
.expecting(OK).expecting(JSON), .expecting(OK).expecting(JSON),
response -> response.expectArrayElements(1).getFromBody("[0].uuid"), response -> response.expectArrayElements(1).getFromBody("[0].uuid"),
"Even in production data we expect this query to return just a single result." // TODO.impl: add constraint? "Even in production data we expect this query to return just a single result." // TODO.impl: add constraint?
); );
obtain("Person: %{tradeName}", () -> keep("Person: %{tradeName}", () ->
httpPost("/api/hs/office/persons", usingJsonBody(""" httpPost("/api/hs/office/persons", usingJsonBody("""
{ {
"personType": ${personType}, "personType": ${personType},
@ -38,7 +38,7 @@ public class CreatePartner extends UseCase<CreatePartner> {
.expecting(HttpStatus.CREATED).expecting(ContentType.JSON) .expecting(HttpStatus.CREATED).expecting(ContentType.JSON)
); );
obtain("Contact: %{tradeName} - Board of Directors", () -> keep("Contact: %{tradeName} - Board of Directors", () ->
httpPost("/api/hs/office/contacts", usingJsonBody(""" httpPost("/api/hs/office/contacts", usingJsonBody("""
{ {
"caption": ${contactCaption}, "caption": ${contactCaption},

View File

@ -16,7 +16,7 @@ public class RemoveOperationsContactFromPartner extends UseCase<RemoveOperations
@Override @Override
protected HttpResponse run() { protected HttpResponse run() {
obtain("Operations-Contact: %{operationsContactPerson}", () -> keep("Operations-Contact: %{operationsContactPerson}", () ->
httpGet("/api/hs/office/relations?relationType=OPERATIONS&name=" + uriEncoded("%{operationsContactPerson}")) httpGet("/api/hs/office/relations?relationType=OPERATIONS&name=" + uriEncoded("%{operationsContactPerson}"))
.expecting(OK).expecting(JSON), .expecting(OK).expecting(JSON),
response -> response.expectArrayElements(1).getFromBody("[0].uuid"), response -> response.expectArrayElements(1).getFromBody("[0].uuid"),

View File

@ -16,8 +16,8 @@ public class SubscribeToMailinglist extends UseCase<SubscribeToMailinglist> {
@Override @Override
protected HttpResponse run() { protected HttpResponse run() {
obtain("Person: %{subscriberGivenName} %{subscriberFamilyName}", () -> keep("Person: %{subscriberGivenName} %{subscriberFamilyName}", () ->
httpPost("/api/hs/office/persons", usingJsonBody(""" httpPost("/api/hs/office/persons", usingJsonBody("""
{ {
"personType": "NATURAL_PERSON", "personType": "NATURAL_PERSON",
"familyName": ${subscriberFamilyName}, "familyName": ${subscriberFamilyName},
@ -27,16 +27,16 @@ public class SubscribeToMailinglist extends UseCase<SubscribeToMailinglist> {
.expecting(HttpStatus.CREATED).expecting(ContentType.JSON) .expecting(HttpStatus.CREATED).expecting(ContentType.JSON)
); );
obtain("Contact: %{subscriberGivenName} %{subscriberFamilyName}", () -> keep("Contact: %{subscriberGivenName} %{subscriberFamilyName}", () ->
httpPost("/api/hs/office/contacts", usingJsonBody(""" httpPost("/api/hs/office/contacts", usingJsonBody("""
{ {
"caption": "%{subscriberGivenName} %{subscriberFamilyName}", "caption": "%{subscriberGivenName} %{subscriberFamilyName}",
"emailAddresses": { "emailAddresses": {
"main": ${subscriberEMailAddress} "main": ${subscriberEMailAddress}
}
} }
} """))
""")) .expecting(CREATED).expecting(JSON)
.expecting(CREATED).expecting(JSON)
); );
return httpPost("/api/hs/office/relations", usingJsonBody(""" return httpPost("/api/hs/office/relations", usingJsonBody("""