Compare commits
4 Commits
2eb1359fdd
...
139863ea83
Author | SHA1 | Date | |
---|---|---|---|
|
139863ea83 | ||
|
82f1ec057f | ||
|
f2733b804a | ||
|
f23b619ff3 |
6
Jenkinsfile
vendored
6
Jenkinsfile
vendored
@ -45,7 +45,11 @@ pipeline {
|
|||||||
sourcePattern: 'src/main/java'
|
sourcePattern: 'src/main/java'
|
||||||
)
|
)
|
||||||
|
|
||||||
// archive scenario-test reports
|
// archive scenario-test reports in HTML format
|
||||||
|
sh '''
|
||||||
|
cd doc/scenarios
|
||||||
|
./to-html
|
||||||
|
'''
|
||||||
archiveArtifacts artifacts: 'doc/scenarios/*.html', allowEmptyArchive: true
|
archiveArtifacts artifacts: 'doc/scenarios/*.html', allowEmptyArchive: true
|
||||||
|
|
||||||
// cleanup workspace
|
// cleanup workspace
|
||||||
|
@ -7,7 +7,7 @@ get:
|
|||||||
parameters:
|
parameters:
|
||||||
- $ref: 'auth.yaml#/components/parameters/currentSubject'
|
- $ref: 'auth.yaml#/components/parameters/currentSubject'
|
||||||
- $ref: 'auth.yaml#/components/parameters/assumedRoles'
|
- $ref: 'auth.yaml#/components/parameters/assumedRoles'
|
||||||
- name: name
|
- name: iban
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
schema:
|
schema:
|
||||||
|
@ -194,7 +194,6 @@ class HsOfficeScenarioTests extends ScenarioTest {
|
|||||||
@Requires("SEPA-Mandate: Test AG")
|
@Requires("SEPA-Mandate: Test AG")
|
||||||
void shouldInvalidateSepaMandateForDebitor() {
|
void shouldInvalidateSepaMandateForDebitor() {
|
||||||
new InvalidateSepaMandateForDebitor(this)
|
new InvalidateSepaMandateForDebitor(this)
|
||||||
.given("debitorNumberNumber", "31010")
|
|
||||||
.given("bankAccountIBAN", "DE02701500000000594937")
|
.given("bankAccountIBAN", "DE02701500000000594937")
|
||||||
.given("mandateValidUntil", "2025-09-30")
|
.given("mandateValidUntil", "2025-09-30")
|
||||||
.doRun();
|
.doRun();
|
||||||
|
@ -24,7 +24,7 @@ public class DeleteDebitor extends UseCase<DeleteDebitor> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected HttpResponse run() {
|
protected HttpResponse run() {
|
||||||
httpDelete("/api/hs/office/debitors/" + uuid("Debitor: Test AG - delete debitor"))
|
httpDelete("/api/hs/office/debitors/&{Debitor: Test AG - delete debitor}")
|
||||||
.expecting(HttpStatus.NO_CONTENT);
|
.expecting(HttpStatus.NO_CONTENT);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ public class DeleteSepaMandateForDebitor extends UseCase<DeleteSepaMandateForDeb
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected HttpResponse run() {
|
protected HttpResponse run() {
|
||||||
httpDelete("/api/hs/office/sepamandates/" + uuid("SEPA-Mandate: Test AG"))
|
httpDelete("/api/hs/office/sepamandates/&{SEPA-Mandate: Test AG}")
|
||||||
.expecting(HttpStatus.NO_CONTENT);
|
.expecting(HttpStatus.NO_CONTENT);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ public class DontDeleteDefaultDebitor extends UseCase<DontDeleteDefaultDebitor>
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected HttpResponse run() {
|
protected HttpResponse run() {
|
||||||
httpDelete("/api/hs/office/debitors/" + uuid("Debitor: Test AG - main debitor"))
|
httpDelete("/api/hs/office/debitors/&{Debitor: Test AG - main debitor}")
|
||||||
// TODO.spec: should be CONFLICT or CLIENT_ERROR for Debitor "00" - but how to delete Partners?
|
// TODO.spec: should be CONFLICT or CLIENT_ERROR for Debitor "00" - but how to delete Partners?
|
||||||
.expecting(HttpStatus.NO_CONTENT);
|
.expecting(HttpStatus.NO_CONTENT);
|
||||||
return null;
|
return null;
|
||||||
|
@ -15,9 +15,16 @@ public class InvalidateSepaMandateForDebitor extends UseCase<InvalidateSepaManda
|
|||||||
@Override
|
@Override
|
||||||
protected HttpResponse run() {
|
protected HttpResponse run() {
|
||||||
|
|
||||||
return httpPatch("/api/hs/office/sepamandates/" + uuid("SEPA-Mandate: Test AG"), usingJsonBody("""
|
obtain("SEPA-Mandate: %{bankAccountIBAN}", () ->
|
||||||
|
httpGet("/api/hs/office/sepamandates?iban=&{bankAccountIBAN}")
|
||||||
|
.expecting(OK).expecting(JSON),
|
||||||
|
response -> response.expectArrayElements(1).getFromBody("[0].uuid"),
|
||||||
|
"With production data, the bank-account could be used in multiple SEPA-mandates, make sure to use the right one!"
|
||||||
|
);
|
||||||
|
|
||||||
|
return httpPatch("/api/hs/office/sepamandates/&{SEPA-Mandate: %{bankAccountIBAN}}", usingJsonBody("""
|
||||||
{
|
{
|
||||||
"validUntil": ${validUntil}
|
"validUntil": ${mandateValidUntil}
|
||||||
}
|
}
|
||||||
"""))
|
"""))
|
||||||
.expecting(OK).expecting(JSON);
|
.expecting(OK).expecting(JSON);
|
||||||
|
@ -18,7 +18,7 @@ public class DeletePartner extends UseCase<DeletePartner> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected HttpResponse run() {
|
protected HttpResponse run() {
|
||||||
httpDelete("/api/hs/office/partners/" + uuid("Partner: Delete AG"))
|
httpDelete("/api/hs/office/partners/&{Partner: Delete AG}")
|
||||||
.expecting(HttpStatus.NO_CONTENT);
|
.expecting(HttpStatus.NO_CONTENT);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ public class RemoveOperationsContactFromPartner extends UseCase<RemoveOperations
|
|||||||
"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."
|
||||||
);
|
);
|
||||||
|
|
||||||
return httpDelete("/api/hs/office/relations/" + uuid("Operations-Contact: %{operationsContactPerson}"))
|
return httpDelete("/api/hs/office/relations/&{Operations-Contact: %{operationsContactPerson}}")
|
||||||
.expecting(NO_CONTENT);
|
.expecting(NO_CONTENT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ public class UnsubscribeFromMailinglist extends UseCase<UnsubscribeFromMailingli
|
|||||||
"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."
|
||||||
);
|
);
|
||||||
|
|
||||||
return httpDelete("/api/hs/office/relations/" + uuid("Subscription: %{subscriberEMailAddress}"))
|
return httpDelete("/api/hs/office/relations/&{Subscription: %{subscriberEMailAddress}}")
|
||||||
.expecting(NO_CONTENT);
|
.expecting(NO_CONTENT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@ import net.hostsharing.hsadminng.hs.office.bankaccount.HsOfficeBankAccountReposi
|
|||||||
import net.hostsharing.hsadminng.hs.office.debitor.HsOfficeDebitorRepository;
|
import net.hostsharing.hsadminng.hs.office.debitor.HsOfficeDebitorRepository;
|
||||||
import net.hostsharing.hsadminng.rbac.test.ContextBasedTestWithCleanup;
|
import net.hostsharing.hsadminng.rbac.test.ContextBasedTestWithCleanup;
|
||||||
import net.hostsharing.hsadminng.rbac.test.JpaAttempt;
|
import net.hostsharing.hsadminng.rbac.test.JpaAttempt;
|
||||||
import org.json.JSONException;
|
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Nested;
|
import org.junit.jupiter.api.Nested;
|
||||||
@ -58,7 +57,7 @@ class HsOfficeSepaMandateControllerAcceptanceTest extends ContextBasedTestWithCl
|
|||||||
class ListSepaMandates {
|
class ListSepaMandates {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void globalAdmin_canViewAllSepaMandates_ifNoCriteriaGiven() throws JSONException {
|
void globalAdmin_canViewAllSepaMandates_ifNoCriteriaGiven() {
|
||||||
|
|
||||||
RestAssured // @formatter:off
|
RestAssured // @formatter:off
|
||||||
.given()
|
.given()
|
||||||
@ -97,6 +96,36 @@ class HsOfficeSepaMandateControllerAcceptanceTest extends ContextBasedTestWithCl
|
|||||||
"""));
|
"""));
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void globalAdmin_canFindSepaMandateByName() {
|
||||||
|
|
||||||
|
RestAssured // @formatter:off
|
||||||
|
.given()
|
||||||
|
.header("current-subject", "superuser-alex@hostsharing.net")
|
||||||
|
.port(port)
|
||||||
|
.when()
|
||||||
|
.get("http://localhost/api/hs/office/sepamandates?iban=DE02120300000000202051")
|
||||||
|
.then().log().all().assertThat()
|
||||||
|
.statusCode(200)
|
||||||
|
.contentType("application/json")
|
||||||
|
.log().all()
|
||||||
|
.body("", lenientlyEquals("""
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"debitor": { "debitorNumber": 1000111 },
|
||||||
|
"bankAccount": {
|
||||||
|
"iban": "DE02120300000000202051",
|
||||||
|
"holder": "First GmbH"
|
||||||
|
},
|
||||||
|
"reference": "ref-10001-11",
|
||||||
|
"validFrom": "2022-10-01",
|
||||||
|
"validTo": "2026-12-31"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
"""));
|
||||||
|
// @formatter:on
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nested
|
@Nested
|
||||||
|
Loading…
Reference in New Issue
Block a user