AddRelation

6

tests

0

failures

0

ignored

7.753s

duration

100%

successful

Tests

Test Duration Result
globalAdmin_canNotAddRelation_ifAnchorPersonDoesNotExist() 1.272s passed
globalAdmin_canNotAddRelation_ifContactDoesNotExist() 1.228s passed
globalAdmin_canNotAddRelation_ifHolderPersonDoesNotExist() 1.269s passed
globalAdmin_withoutAssumedRole_canAddRelationWithHolderAndContactData() 1.387s passed
globalAdmin_withoutAssumedRole_canAddRelationWithHolderUuidAndContactUuid() 1.333s passed
normalUser_canNotAddRelationWithNewMark() 1.264s passed

Standard output

ContextBasedTestWithCleanup.retrieveInitialTestData
globalAdmin_withoutAssumedRole_canAddRelationWithHolderUuidAndContactUuid(): TOTAL OBJECT COUNT (initial): 210 -> 210
HTTP/1.1 201 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: http://localhost:39795/api/hs/office/relations/2fc0fea6-7ebf-464f-8551-3167bcf5488b
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 10 Aug 2026 15:06:01 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
    "uuid": "2fc0fea6-7ebf-464f-8551-3167bcf5488b",
    "anchor": {
        "uuid": "c5118020-823a-4aa7-9489-e30e02b7e56f",
        "personType": "INCORPORATED_FIRM",
        "tradeName": "Third OHG",
        "salutation": null,
        "title": null,
        "givenName": null,
        "familyName": null
    },
    "holder": {
        "uuid": "487bc8a7-db6a-405e-bb0d-1e8cf3ff032a",
        "personType": "NATURAL_PERSON",
        "tradeName": null,
        "salutation": null,
        "title": null,
        "givenName": "Paul",
        "familyName": "Winkler"
    },
    "type": "SUBSCRIBER",
    "mark": "operations-discuss",
    "contact": {
        "uuid": "1e1c7f4d-48b7-437f-9566-ab73a08f5b81",
        "caption": "second contact",
        "postalAddress": {
            "country": "Germany"
        },
        "emailAddresses": {
            "main": "contact-admin@secondcontact.example.com"
        },
        "phoneNumbers": {
            "phone_office": "+49 123 1234567"
        }
    }
}
toCleanup(HsOfficeRelationRealEntity, 2fc0fea6-7ebf-464f-8551-3167bcf5488b)
ContextBasedTestWithCleanup.cleanupAndCheckCleanup
DELETING temporary HsOfficeRelationRealEntity#2fc0fea6-7ebf-464f-8551-3167bcf5488b deleted 1 rows
globalAdmin_withoutAssumedRole_canAddRelationWithHolderUuidAndContactUuid(): TOTAL OBJECT COUNT (after): 210 -> 210
ContextBasedTestWithCleanup.retrieveInitialTestData
normalUser_canNotAddRelationWithNewMark(): TOTAL OBJECT COUNT (initial): 210 -> 210
2026-08-10T15:06:02.904Z  WARN 373 --- [o-auto-1-exec-7] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 0, SQLState: P0001
2026-08-10T15:06:02.904Z ERROR 373 --- [o-auto-1-exec-7] o.h.engine.jdbc.spi.SqlExceptionHelper   : ERROR: [403] new mark "brand-new-list" for relation-type SUBSCRIBER may only be introduced by a global admin
  Where: PL/pgSQL function hs_office.relation_enforce_new_mark_by_global_admin() line 20 at RAISE
SQL statement "insert
            into hs_office.relation (uuid, version, anchoruuid, holderuuid, contactuuid, type, mark)
            values (new.uuid, new.version, new.anchoruuid, new.holderuuid, new.contactuuid, new.type, new.mark)
            returning *"
PL/pgSQL function hs_office.relation_instead_of_insert_tf() line 5 at SQL statement
HTTP/1.1 403 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 10 Aug 2026 15:06:02 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
    "timestamp": "2026-08-10 03:06:02",
    "path": "",
    "statusCode": 403,
    "statusPhrase": "Forbidden",
    "message": "ERROR: [403] new mark \"brand-new-list\" for relation-type SUBSCRIBER may only be introduced by a global admin"
}
ContextBasedTestWithCleanup.cleanupAndCheckCleanup
normalUser_canNotAddRelationWithNewMark(): TOTAL OBJECT COUNT (after): 210 -> 210
ContextBasedTestWithCleanup.retrieveInitialTestData
globalAdmin_canNotAddRelation_ifHolderPersonDoesNotExist(): TOTAL OBJECT COUNT (initial): 210 -> 210
HTTP/1.1 404 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 10 Aug 2026 15:06:04 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
    "timestamp": "2026-08-10 03:06:04",
    "path": "",
    "statusCode": 404,
    "statusPhrase": "Not Found",
    "message": "ERROR: [404] cannot find Person by holderUuid: 00000000-0000-0000-0000-000000000000"
}
ContextBasedTestWithCleanup.cleanupAndCheckCleanup
globalAdmin_canNotAddRelation_ifHolderPersonDoesNotExist(): TOTAL OBJECT COUNT (after): 210 -> 210
ContextBasedTestWithCleanup.retrieveInitialTestData
globalAdmin_withoutAssumedRole_canAddRelationWithHolderAndContactData(): TOTAL OBJECT COUNT (initial): 210 -> 210
HTTP/1.1 201 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: http://localhost:39795/api/hs/office/relations/84057e14-21cd-40c0-aa57-cfb0c8fc74a7
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 10 Aug 2026 15:06:05 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
    "uuid": "84057e14-21cd-40c0-aa57-cfb0c8fc74a7",
    "anchor": {
        "uuid": "c5118020-823a-4aa7-9489-e30e02b7e56f",
        "personType": "INCORPORATED_FIRM",
        "tradeName": "Third OHG",
        "salutation": null,
        "title": null,
        "givenName": null,
        "familyName": null
    },
    "holder": {
        "uuid": "b885f89d-30b3-4e1b-ab96-3cec903da8e9",
        "personType": "NATURAL_PERSON",
        "tradeName": null,
        "salutation": null,
        "title": null,
        "givenName": "Temp",
        "familyName": "Person"
    },
    "type": "SUBSCRIBER",
    "mark": "operations-discuss",
    "contact": {
        "uuid": "e430b5dc-3ced-41eb-90fa-613a294c594b",
        "caption": "Temp Contact",
        "postalAddress": {
            "zipcode": "12345",
            "firm": "Test Contact GmbH",
            "country": "Germany",
            "city": "Dachstadt",
            "street": "Am Schieferbruch 3",
            "name": "Herr Test Contact"
        },
        "emailAddresses": {
            "main": "test@example.org"
        },
        "phoneNumbers": {
            
        }
    }
}
toCleanup(HsOfficeRelationRealEntity, 84057e14-21cd-40c0-aa57-cfb0c8fc74a7)
ContextBasedTestWithCleanup.cleanupAndCheckCleanup
DELETING temporary HsOfficeRelationRealEntity#84057e14-21cd-40c0-aa57-cfb0c8fc74a7 deleted 1 rows
DELETING leaked hs_office.person#b885f89d-30b3-4e1b-ab96-3cec903da8e9 SUCCEEDED
DELETING leaked hs_office.contact#e430b5dc-3ced-41eb-90fa-613a294c594b SUCCEEDED
globalAdmin_withoutAssumedRole_canAddRelationWithHolderAndContactData(): TOTAL OBJECT COUNT (after): 210 -> 210
ContextBasedTestWithCleanup.retrieveInitialTestData
globalAdmin_canNotAddRelation_ifAnchorPersonDoesNotExist(): TOTAL OBJECT COUNT (initial): 210 -> 210
HTTP/1.1 404 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 10 Aug 2026 15:06:06 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
    "timestamp": "2026-08-10 03:06:06",
    "path": "",
    "statusCode": 404,
    "statusPhrase": "Not Found",
    "message": "ERROR: [404] cannot find Person by anchorUuid: 00000000-0000-0000-0000-000000000000"
}
ContextBasedTestWithCleanup.cleanupAndCheckCleanup
globalAdmin_canNotAddRelation_ifAnchorPersonDoesNotExist(): TOTAL OBJECT COUNT (after): 210 -> 210
ContextBasedTestWithCleanup.retrieveInitialTestData
globalAdmin_canNotAddRelation_ifContactDoesNotExist(): TOTAL OBJECT COUNT (initial): 210 -> 210
HTTP/1.1 404 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 10 Aug 2026 15:06:08 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
    "timestamp": "2026-08-10 03:06:08",
    "path": "",
    "statusCode": 404,
    "statusPhrase": "Not Found",
    "message": "ERROR: [404] cannot find Contact by contactUuid: 00000000-0000-0000-0000-000000000000"
}
ContextBasedTestWithCleanup.cleanupAndCheckCleanup
globalAdmin_canNotAddRelation_ifContactDoesNotExist(): TOTAL OBJECT COUNT (after): 210 -> 210