implement coop-asset-TRANSFER-transaction reversal #125
@ -10,6 +10,7 @@ import net.hostsharing.hsadminng.persistence.EntityManagerWrapper;
|
|||||||
import net.hostsharing.hsadminng.rbac.test.JsonBuilder;
|
import net.hostsharing.hsadminng.rbac.test.JsonBuilder;
|
||||||
import net.hostsharing.hsadminng.test.TestUuidGenerator;
|
import net.hostsharing.hsadminng.test.TestUuidGenerator;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.params.ParameterizedTest;
|
import org.junit.jupiter.params.ParameterizedTest;
|
||||||
import org.junit.jupiter.params.provider.EnumSource;
|
import org.junit.jupiter.params.provider.EnumSource;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@ -24,10 +25,15 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import static net.hostsharing.hsadminng.hs.office.coopassets.HsOfficeCoopAssetsTransactionType.ADOPTION;
|
||||||
|
import static net.hostsharing.hsadminng.hs.office.coopassets.HsOfficeCoopAssetsTransactionType.DISBURSAL;
|
||||||
|
import static net.hostsharing.hsadminng.hs.office.coopassets.HsOfficeCoopAssetsTransactionType.REVERSAL;
|
||||||
|
import static net.hostsharing.hsadminng.hs.office.coopassets.HsOfficeCoopAssetsTransactionType.TRANSFER;
|
||||||
import static net.hostsharing.hsadminng.rbac.test.JsonBuilder.jsonObject;
|
import static net.hostsharing.hsadminng.rbac.test.JsonBuilder.jsonObject;
|
||||||
import static net.hostsharing.hsadminng.rbac.test.JsonMatcher.lenientlyEquals;
|
import static net.hostsharing.hsadminng.rbac.test.JsonMatcher.lenientlyEquals;
|
||||||
import static org.assertj.core.api.Assumptions.assumeThat;
|
import static org.assertj.core.api.Assumptions.assumeThat;
|
||||||
@ -47,6 +53,8 @@ class HsOfficeCoopAssetsTransactionControllerRestTest {
|
|||||||
// set SINGLE_TEST_CASE_EXECUTION to true and make sure you do NOT EVER commit it to git!
|
// set SINGLE_TEST_CASE_EXECUTION to true and make sure you do NOT EVER commit it to git!
|
||||||
private static final boolean SINGLE_TEST_CASE_EXECUTION = false;
|
private static final boolean SINGLE_TEST_CASE_EXECUTION = false;
|
||||||
|
|
||||||
|
private static int DYNAMIC_UUID_START_INDEX = 13;
|
||||||
|
|
||||||
private static final UUID UNAVAILABLE_MEMBERSHIP_UUID = TestUuidGenerator.use(0);
|
private static final UUID UNAVAILABLE_MEMBERSHIP_UUID = TestUuidGenerator.use(0);
|
||||||
private static final String UNAVAILABLE_MEMBER_NUMBER = "M-1234699";
|
private static final String UNAVAILABLE_MEMBER_NUMBER = "M-1234699";
|
||||||
|
|
||||||
@ -73,8 +81,8 @@ class HsOfficeCoopAssetsTransactionControllerRestTest {
|
|||||||
// The following refs depend on the implementation of the respective implementation and might change if it changes.
|
// The following refs depend on the implementation of the respective implementation and might change if it changes.
|
||||||
// The same TestUuidGenerator.ref(#) does NOT mean the UUIDs refer to the same entity,
|
// The same TestUuidGenerator.ref(#) does NOT mean the UUIDs refer to the same entity,
|
||||||
// its rather coincidence because different test-cases have different execution paths in the production code.
|
// its rather coincidence because different test-cases have different execution paths in the production code.
|
||||||
private static final UUID NEW_EXPLICITLY_CREATED_REVERSAL_ASSET_TX_UUID = TestUuidGenerator.ref(6);
|
private static final UUID NEW_EXPLICITLY_CREATED_REVERSAL_ASSET_TX_UUID = TestUuidGenerator.ref(DYNAMIC_UUID_START_INDEX);
|
||||||
private static final UUID NEW_EXPLICITLY_CREATED_TRANSFER_ASSET_TX_UUID = TestUuidGenerator.ref(6);
|
private static final UUID NEW_EXPLICITLY_CREATED_TRANSFER_ASSET_TX_UUID = TestUuidGenerator.ref(DYNAMIC_UUID_START_INDEX);
|
||||||
|
|
||||||
private static final UUID SOME_EXISTING_LOSS_ASSET_TX_UUID = TestUuidGenerator.use(3);
|
private static final UUID SOME_EXISTING_LOSS_ASSET_TX_UUID = TestUuidGenerator.use(3);
|
||||||
public final HsOfficeCoopAssetsTransactionEntity SOME_EXISTING_LOSS_ASSET_TX_ENTITY = HsOfficeCoopAssetsTransactionEntity.builder()
|
public final HsOfficeCoopAssetsTransactionEntity SOME_EXISTING_LOSS_ASSET_TX_ENTITY = HsOfficeCoopAssetsTransactionEntity.builder()
|
||||||
@ -109,11 +117,352 @@ class HsOfficeCoopAssetsTransactionControllerRestTest {
|
|||||||
.valueDate(LocalDate.parse("2024-10-15"))
|
.valueDate(LocalDate.parse("2024-10-15"))
|
||||||
.transferAssetTx(SOME_EXISTING_TRANSFER_ASSET_TX_ENTITY)
|
.transferAssetTx(SOME_EXISTING_TRANSFER_ASSET_TX_ENTITY)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
{
|
{
|
||||||
SOME_EXISTING_TRANSFER_ASSET_TX_ENTITY.setAdoptionAssetTx(SOME_EXISTING_ADOPTION_ASSET_TX_ENTITY);
|
SOME_EXISTING_TRANSFER_ASSET_TX_ENTITY.setAdoptionAssetTx(SOME_EXISTING_ADOPTION_ASSET_TX_ENTITY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private final static UUID SOME_REVERTED_DISBURSAL_ASSET_TX_UUID = TestUuidGenerator.use(7);
|
||||||
|
private final static UUID SOME_DISBURSAL_REVERSAL_ASSET_TX_UUID = TestUuidGenerator.use(8);
|
||||||
|
private final HsOfficeCoopAssetsTransactionEntity SOME_REVERTED_DISBURSAL_ASSET_TX_ENTITY = HsOfficeCoopAssetsTransactionEntity.builder()
|
||||||
|
.uuid(SOME_REVERTED_DISBURSAL_ASSET_TX_UUID)
|
||||||
|
.membership(ORIGIN_TARGET_MEMBER_ENTITY)
|
||||||
|
.transactionType(DISBURSAL)
|
||||||
|
.assetValue(BigDecimal.valueOf(-128.00))
|
||||||
|
.valueDate(LocalDate.parse("2024-10-15"))
|
||||||
|
.reference("some disbursal")
|
||||||
|
.comment("some disbursal to get reverted")
|
||||||
|
.reversalAssetTx(
|
||||||
|
HsOfficeCoopAssetsTransactionEntity.builder()
|
||||||
|
.uuid(SOME_DISBURSAL_REVERSAL_ASSET_TX_UUID)
|
||||||
|
.membership(ORIGIN_TARGET_MEMBER_ENTITY)
|
||||||
|
.transactionType(REVERSAL)
|
||||||
|
.assetValue(BigDecimal.valueOf(128.00))
|
||||||
|
.valueDate(LocalDate.parse("2024-10-20"))
|
||||||
|
.reference("some reversal")
|
||||||
|
.comment("some reversal of a disbursal asset tx")
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build();
|
||||||
|
{
|
||||||
|
SOME_REVERTED_DISBURSAL_ASSET_TX_ENTITY.getReversalAssetTx().setRevertedAssetTx(SOME_REVERTED_DISBURSAL_ASSET_TX_ENTITY);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final static UUID SOME_REVERTED_TRANSFER_ASSET_TX_UUID = TestUuidGenerator.use(9);
|
||||||
|
private final static UUID SOME_TRANSFER_REVERSAL_ASSET_TX_UUID = TestUuidGenerator.use(10);
|
||||||
|
private final static UUID SOME_REVERTED_ADOPTION_ASSET_TX_UUID = TestUuidGenerator.use(11);
|
||||||
|
private final static UUID SOME_ADOPTION_REVERSAL_ASSET_TX_UUID = TestUuidGenerator.use(12);
|
||||||
|
final HsOfficeCoopAssetsTransactionEntity SOME_REVERTED_TRANSFER_ASSET_TX_ENTITY = HsOfficeCoopAssetsTransactionEntity.builder()
|
||||||
|
.uuid(SOME_REVERTED_TRANSFER_ASSET_TX_UUID)
|
||||||
|
.membership(ORIGIN_TARGET_MEMBER_ENTITY)
|
||||||
|
.transactionType(TRANSFER)
|
||||||
|
.assetValue(BigDecimal.valueOf(-1024))
|
||||||
|
.valueDate(LocalDate.parse("2024-11-10"))
|
||||||
|
.reference("some transfer")
|
||||||
|
.comment("some transfer to get reverted")
|
||||||
|
.adoptionAssetTx(
|
||||||
|
HsOfficeCoopAssetsTransactionEntity.builder()
|
||||||
|
.uuid(SOME_REVERTED_ADOPTION_ASSET_TX_UUID)
|
||||||
|
.membership(AVAILABLE_MEMBER_ENTITY)
|
||||||
|
.transactionType(ADOPTION)
|
||||||
|
.assetValue(BigDecimal.valueOf(1024))
|
||||||
|
.valueDate(LocalDate.parse("2024-11-10"))
|
||||||
|
.reference("related adoption")
|
||||||
|
.comment("some reversal of a transfer asset tx")
|
||||||
|
.reversalAssetTx(
|
||||||
|
HsOfficeCoopAssetsTransactionEntity.builder()
|
||||||
|
.uuid(SOME_ADOPTION_REVERSAL_ASSET_TX_UUID)
|
||||||
|
.membership(AVAILABLE_MEMBER_ENTITY)
|
||||||
|
.transactionType(REVERSAL)
|
||||||
|
.assetValue(BigDecimal.valueOf(1024))
|
||||||
|
.valueDate(LocalDate.parse("2024-11-11"))
|
||||||
|
.reference("some reversal")
|
||||||
|
.comment("some adoption asset tx reversal")
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.reversalAssetTx(
|
||||||
|
HsOfficeCoopAssetsTransactionEntity.builder()
|
||||||
|
.uuid(SOME_TRANSFER_REVERSAL_ASSET_TX_UUID)
|
||||||
|
.membership(ORIGIN_TARGET_MEMBER_ENTITY)
|
||||||
|
.transactionType(REVERSAL)
|
||||||
|
.assetValue(BigDecimal.valueOf(1024))
|
||||||
|
.valueDate(LocalDate.parse("2024-11-11"))
|
||||||
|
.reference("some transfer")
|
||||||
|
.comment("some transfer asset tx reversal")
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build();
|
||||||
|
{
|
||||||
|
SOME_REVERTED_TRANSFER_ASSET_TX_ENTITY.getAdoptionAssetTx()
|
||||||
|
.setTransferAssetTx(SOME_REVERTED_DISBURSAL_ASSET_TX_ENTITY);
|
||||||
|
SOME_REVERTED_TRANSFER_ASSET_TX_ENTITY.getReversalAssetTx()
|
||||||
|
.setRevertedAssetTx(SOME_REVERTED_DISBURSAL_ASSET_TX_ENTITY);
|
||||||
|
SOME_REVERTED_TRANSFER_ASSET_TX_ENTITY.getAdoptionAssetTx().getReversalAssetTx()
|
||||||
|
.setRevertedAssetTx(SOME_REVERTED_TRANSFER_ASSET_TX_ENTITY.getAdoptionAssetTx());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final String EXPECTED_RESULT_FROM_GET_LIST = """
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"uuid": "33333333-3333-3333-3333-333333333333",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "LOSS",
|
||||||
|
"assetValue": -64,
|
||||||
|
"valueDate": "2024-10-15",
|
||||||
|
"reference": "some loss asset tx ref",
|
||||||
|
"comment": "some loss asset tx comment",
|
||||||
|
"adoptionAssetTx": null,
|
||||||
|
"transferAssetTx": null,
|
||||||
|
"revertedAssetTx": null,
|
||||||
|
"reversalAssetTx": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uuid": "44444444-4444-4444-4444-444444444444",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "TRANSFER",
|
||||||
|
"assetValue": -256,
|
||||||
|
"valueDate": "2024-10-15",
|
||||||
|
"reference": "some transfer asset tx ref",
|
||||||
|
"comment": "some transfer asset tx comment",
|
||||||
|
"adoptionAssetTx": {
|
||||||
|
"uuid": "55555555-5555-5555-5555-555555555555",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "TRANSFER",
|
||||||
|
"assetValue": 256,
|
||||||
|
"valueDate": "2024-10-15",
|
||||||
|
"reference": "some adoption asset tx ref",
|
||||||
|
"comment": "some adoption asset tx comment",
|
||||||
|
"adoptionAssetTx.uuid": null,
|
||||||
|
"transferAssetTx.uuid": "44444444-4444-4444-4444-444444444444",
|
||||||
|
"revertedAssetTx.uuid": null,
|
||||||
|
"reversalAssetTx.uuid": null
|
||||||
|
},
|
||||||
|
"transferAssetTx": null,
|
||||||
|
"revertedAssetTx": null,
|
||||||
|
"reversalAssetTx": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uuid": "55555555-5555-5555-5555-555555555555",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "TRANSFER",
|
||||||
|
"assetValue": 256,
|
||||||
|
"valueDate": "2024-10-15",
|
||||||
|
"reference": "some adoption asset tx ref",
|
||||||
|
"comment": "some adoption asset tx comment",
|
||||||
|
"adoptionAssetTx": null,
|
||||||
|
"transferAssetTx": {
|
||||||
|
"uuid": "44444444-4444-4444-4444-444444444444",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "TRANSFER",
|
||||||
|
"assetValue": -256,
|
||||||
|
"valueDate": "2024-10-15",
|
||||||
|
"reference": "some transfer asset tx ref",
|
||||||
|
"comment": "some transfer asset tx comment",
|
||||||
|
"adoptionAssetTx.uuid": "55555555-5555-5555-5555-555555555555",
|
||||||
|
"transferAssetTx.uuid": null,
|
||||||
|
"revertedAssetTx.uuid": null,
|
||||||
|
"reversalAssetTx.uuid": null
|
||||||
|
},
|
||||||
|
"revertedAssetTx": null,
|
||||||
|
"reversalAssetTx": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uuid": "77777777-7777-7777-7777-777777777777",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "DISBURSAL",
|
||||||
|
"assetValue": -128.0,
|
||||||
|
"valueDate": "2024-10-15",
|
||||||
|
"reference": "some disbursal",
|
||||||
|
"comment": "some disbursal to get reverted",
|
||||||
|
"adoptionAssetTx": null,
|
||||||
|
"transferAssetTx": null,
|
||||||
|
"revertedAssetTx": null,
|
||||||
|
"reversalAssetTx": {
|
||||||
|
"uuid": "88888888-8888-8888-8888-888888888888",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "REVERSAL",
|
||||||
|
"assetValue": 128.0,
|
||||||
|
"valueDate": "2024-10-20",
|
||||||
|
"reference": "some reversal",
|
||||||
|
"comment": "some reversal of a disbursal asset tx",
|
||||||
|
"adoptionAssetTx.uuid": null,
|
||||||
|
"transferAssetTx.uuid": null,
|
||||||
|
"revertedAssetTx.uuid": "77777777-7777-7777-7777-777777777777",
|
||||||
|
"reversalAssetTx.uuid": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uuid": "88888888-8888-8888-8888-888888888888",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "REVERSAL",
|
||||||
|
"assetValue": 128.0,
|
||||||
|
"valueDate": "2024-10-20",
|
||||||
|
"reference": "some reversal",
|
||||||
|
"comment": "some reversal of a disbursal asset tx",
|
||||||
|
"adoptionAssetTx": null,
|
||||||
|
"transferAssetTx": null,
|
||||||
|
"revertedAssetTx": {
|
||||||
|
"uuid": "77777777-7777-7777-7777-777777777777",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "DISBURSAL",
|
||||||
|
"assetValue": -128.0,
|
||||||
|
"valueDate": "2024-10-15",
|
||||||
|
"reference": "some disbursal",
|
||||||
|
"comment": "some disbursal to get reverted",
|
||||||
|
"adoptionAssetTx.uuid": null,
|
||||||
|
"transferAssetTx.uuid": null,
|
||||||
|
"revertedAssetTx.uuid": null,
|
||||||
|
"reversalAssetTx.uuid": "88888888-8888-8888-8888-888888888888"
|
||||||
|
},
|
||||||
|
"reversalAssetTx": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uuid": "99999999-9999-9999-9999-999999999999",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "TRANSFER",
|
||||||
|
"assetValue": -1024,
|
||||||
|
"valueDate": "2024-11-10",
|
||||||
|
"reference": "some transfer",
|
||||||
|
"comment": "some transfer to get reverted",
|
||||||
|
"adoptionAssetTx": {
|
||||||
|
"uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
|
||||||
|
"membership.uuid": "22222222-2222-2222-2222-222222222222",
|
||||||
|
"membership.memberNumber": "M-1234500",
|
||||||
|
"transactionType": "ADOPTION",
|
||||||
|
"assetValue": 1024,
|
||||||
|
"valueDate": "2024-11-10",
|
||||||
|
"reference": "related adoption",
|
||||||
|
"comment": "some reversal of a transfer asset tx",
|
||||||
|
"adoptionAssetTx.uuid": null,
|
||||||
|
"transferAssetTx.uuid": "99999999-9999-9999-9999-999999999999",
|
||||||
|
"revertedAssetTx.uuid": null,
|
||||||
|
"reversalAssetTx.uuid": "cccccccc-cccc-cccc-cccc-cccccccccccc"
|
||||||
|
},
|
||||||
|
"transferAssetTx": null,
|
||||||
|
"revertedAssetTx": null,
|
||||||
|
"reversalAssetTx": {
|
||||||
|
"uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "REVERSAL",
|
||||||
|
"assetValue": 1024,
|
||||||
|
"valueDate": "2024-11-11",
|
||||||
|
"reference": "some transfer",
|
||||||
|
"comment": "some transfer asset tx reversal",
|
||||||
|
"adoptionAssetTx.uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
|
||||||
|
"transferAssetTx.uuid": null,
|
||||||
|
"revertedAssetTx.uuid": "99999999-9999-9999-9999-999999999999",
|
||||||
|
"reversalAssetTx.uuid": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
|
||||||
|
"membership.uuid": "22222222-2222-2222-2222-222222222222",
|
||||||
|
"membership.memberNumber": "M-1234500",
|
||||||
|
"transactionType": "ADOPTION",
|
||||||
|
"assetValue": 1024,
|
||||||
|
"valueDate": "2024-11-10",
|
||||||
|
"reference": "related adoption",
|
||||||
|
"comment": "some reversal of a transfer asset tx",
|
||||||
|
"adoptionAssetTx": null,
|
||||||
|
"transferAssetTx": {
|
||||||
|
"uuid": "77777777-7777-7777-7777-777777777777",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "DISBURSAL",
|
||||||
|
"assetValue": -128.0,
|
||||||
|
"valueDate": "2024-10-15",
|
||||||
|
"reference": "some disbursal",
|
||||||
|
"comment": "some disbursal to get reverted",
|
||||||
|
"adoptionAssetTx.uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
|
||||||
|
"transferAssetTx.uuid": null,
|
||||||
|
"revertedAssetTx.uuid": null,
|
||||||
|
"reversalAssetTx.uuid": "88888888-8888-8888-8888-888888888888"
|
||||||
|
},
|
||||||
|
"revertedAssetTx": null,
|
||||||
|
"reversalAssetTx": {
|
||||||
|
"uuid": "cccccccc-cccc-cccc-cccc-cccccccccccc",
|
||||||
|
"membership.uuid": "22222222-2222-2222-2222-222222222222",
|
||||||
|
"membership.memberNumber": "M-1234500",
|
||||||
|
"transactionType": "REVERSAL",
|
||||||
|
"assetValue": 1024,
|
||||||
|
"valueDate": "2024-11-11",
|
||||||
|
"reference": "some reversal",
|
||||||
|
"comment": "some adoption asset tx reversal",
|
||||||
|
"adoptionAssetTx.uuid": null,
|
||||||
|
"transferAssetTx.uuid": "77777777-7777-7777-7777-777777777777",
|
||||||
|
"revertedAssetTx.uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
|
||||||
|
"reversalAssetTx.uuid": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "REVERSAL",
|
||||||
|
"assetValue": 1024,
|
||||||
|
"valueDate": "2024-11-11",
|
||||||
|
"reference": "some transfer",
|
||||||
|
"comment": "some transfer asset tx reversal",
|
||||||
|
"adoptionAssetTx": null,
|
||||||
|
"transferAssetTx": null,
|
||||||
|
"revertedAssetTx": {
|
||||||
|
"uuid": "77777777-7777-7777-7777-777777777777",
|
||||||
|
"membership.uuid": "11111111-1111-1111-1111-111111111111",
|
||||||
|
"membership.memberNumber": "M-1111100",
|
||||||
|
"transactionType": "DISBURSAL",
|
||||||
|
"assetValue": -128.0,
|
||||||
|
"valueDate": "2024-10-15",
|
||||||
|
"reference": "some disbursal",
|
||||||
|
"comment": "some disbursal to get reverted",
|
||||||
|
"adoptionAssetTx.uuid": null,
|
||||||
|
"transferAssetTx.uuid": null,
|
||||||
|
"revertedAssetTx.uuid": null,
|
||||||
|
"reversalAssetTx.uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
|
||||||
|
},
|
||||||
|
"reversalAssetTx": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uuid": "cccccccc-cccc-cccc-cccc-cccccccccccc",
|
||||||
|
"membership.uuid": "22222222-2222-2222-2222-222222222222",
|
||||||
|
"membership.memberNumber": "M-1234500",
|
||||||
|
"transactionType": "REVERSAL",
|
||||||
|
"assetValue": 1024,
|
||||||
|
"valueDate": "2024-11-11",
|
||||||
|
"reference": "some reversal",
|
||||||
|
"comment": "some adoption asset tx reversal",
|
||||||
|
"adoptionAssetTx": null,
|
||||||
|
"transferAssetTx": null,
|
||||||
|
"revertedAssetTx": {
|
||||||
|
"uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
|
||||||
|
"membership.uuid": "22222222-2222-2222-2222-222222222222",
|
||||||
|
"membership.memberNumber": "M-1234500",
|
||||||
|
"transactionType": "ADOPTION",
|
||||||
|
"assetValue": 1024,
|
||||||
|
"valueDate": "2024-11-10",
|
||||||
|
"reference": "related adoption",
|
||||||
|
"comment": "some reversal of a transfer asset tx",
|
||||||
|
"adoptionAssetTx.uuid": null,
|
||||||
|
"transferAssetTx.uuid": "77777777-7777-7777-7777-777777777777",
|
||||||
|
"revertedAssetTx.uuid": null,
|
||||||
|
"reversalAssetTx.uuid": "cccccccc-cccc-cccc-cccc-cccccccccccc"
|
||||||
|
},
|
||||||
|
"reversalAssetTx": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
""";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
MockMvc mockMvc;
|
MockMvc mockMvc;
|
||||||
|
|
||||||
@ -308,6 +657,7 @@ class HsOfficeCoopAssetsTransactionControllerRestTest {
|
|||||||
"reference": "reversal of loss ref",
|
"reference": "reversal of loss ref",
|
||||||
"comment": "reversal of loss asset tx comment",
|
"comment": "reversal of loss asset tx comment",
|
||||||
"adoptionAssetTx": null,
|
"adoptionAssetTx": null,
|
||||||
|
"reversalAssetTx": null,
|
||||||
"transferAssetTx": null,
|
"transferAssetTx": null,
|
||||||
"revertedAssetTx": {
|
"revertedAssetTx": {
|
||||||
"uuid": "%{SOME_EXISTING_LOSS_ASSET_TX_UUID}",
|
"uuid": "%{SOME_EXISTING_LOSS_ASSET_TX_UUID}",
|
||||||
@ -416,9 +766,36 @@ class HsOfficeCoopAssetsTransactionControllerRestTest {
|
|||||||
.andExpect(jsonPath("$", lenientlyEquals(testCase.expectedResponseBody)));
|
.andExpect(jsonPath("$", lenientlyEquals(testCase.expectedResponseBody)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void getListGeneratesProperJson() throws Exception {
|
||||||
|
// given
|
||||||
|
when(coopAssetsTransactionRepo.findCoopAssetsTransactionByOptionalMembershipUuidAndDateRange(null, null, null))
|
||||||
|
.thenReturn(List.of(
|
||||||
|
SOME_EXISTING_LOSS_ASSET_TX_ENTITY,
|
||||||
|
SOME_EXISTING_TRANSFER_ASSET_TX_ENTITY,
|
||||||
|
SOME_EXISTING_ADOPTION_ASSET_TX_ENTITY,
|
||||||
|
SOME_REVERTED_DISBURSAL_ASSET_TX_ENTITY,
|
||||||
|
SOME_REVERTED_DISBURSAL_ASSET_TX_ENTITY.getReversalAssetTx(),
|
||||||
|
SOME_REVERTED_TRANSFER_ASSET_TX_ENTITY,
|
||||||
|
SOME_REVERTED_TRANSFER_ASSET_TX_ENTITY.getAdoptionAssetTx(),
|
||||||
|
SOME_REVERTED_TRANSFER_ASSET_TX_ENTITY.getReversalAssetTx(),
|
||||||
|
SOME_REVERTED_TRANSFER_ASSET_TX_ENTITY.getAdoptionAssetTx().getReversalAssetTx()
|
||||||
|
));
|
||||||
|
|
||||||
|
// when
|
||||||
|
mockMvc.perform(MockMvcRequestBuilders
|
||||||
|
.get("/api/hs/office/coopassetstransactions")
|
||||||
|
.header("current-subject", "superuser-alex@hostsharing.net")
|
||||||
|
.contentType(MediaType.APPLICATION_JSON))
|
||||||
|
|
||||||
|
// then
|
||||||
|
.andExpect(status().is2xxSuccessful())
|
||||||
|
.andExpect(jsonPath("$", lenientlyEquals(EXPECTED_RESULT_FROM_GET_LIST)));
|
||||||
|
}
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void initMocks() {
|
void initMocks() {
|
||||||
TestUuidGenerator.start(6);
|
TestUuidGenerator.start(DYNAMIC_UUID_START_INDEX);
|
||||||
|
|
||||||
when(emw.find(eq(HsOfficeMembershipEntity.class), eq(ORIGIN_MEMBERSHIP_UUID))).thenReturn(ORIGIN_TARGET_MEMBER_ENTITY);
|
when(emw.find(eq(HsOfficeMembershipEntity.class), eq(ORIGIN_MEMBERSHIP_UUID))).thenReturn(ORIGIN_TARGET_MEMBER_ENTITY);
|
||||||
when(emw.find(eq(HsOfficeMembershipEntity.class), eq(AVAILABLE_TARGET_MEMBERSHIP_UUID))).thenReturn(
|
when(emw.find(eq(HsOfficeMembershipEntity.class), eq(AVAILABLE_TARGET_MEMBERSHIP_UUID))).thenReturn(
|
||||||
|
Loading…
Reference in New Issue
Block a user