diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/coopassets/HsOfficeCoopAssetsTransactionControllerAcceptanceTest.java b/src/test/java/net/hostsharing/hsadminng/hs/office/coopassets/HsOfficeCoopAssetsTransactionControllerAcceptanceTest.java index 1d9bebbe..b3b0517d 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/coopassets/HsOfficeCoopAssetsTransactionControllerAcceptanceTest.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/coopassets/HsOfficeCoopAssetsTransactionControllerAcceptanceTest.java @@ -218,7 +218,7 @@ class HsOfficeCoopAssetsTransactionControllerAcceptanceTest extends ContextBased .reference("test ref") .build()); }).assertSuccessful().assertNotNull().returnedValue(); - toCleanup(HsOfficeCoopAssetsTransactionRawEntity.class, givenTransaction.getUuid()); + toCleanup(HsOfficeCoopAssetsTransactionEntity.class, givenTransaction.getUuid()); final var location = RestAssured // @formatter:off .given() @@ -267,7 +267,7 @@ class HsOfficeCoopAssetsTransactionControllerAcceptanceTest extends ContextBased final var newAssetTxUuid = UUID.fromString( location.substring(location.lastIndexOf('/') + 1)); assertThat(newAssetTxUuid).isNotNull(); - toCleanup(HsOfficeCoopAssetsTransactionRawEntity.class, newAssetTxUuid); + toCleanup(HsOfficeCoopAssetsTransactionEntity.class, newAssetTxUuid); } @Test diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/coopassets/HsOfficeCoopAssetsTransactionRawEntity.java b/src/test/java/net/hostsharing/hsadminng/hs/office/coopassets/HsOfficeCoopAssetsTransactionRawEntity.java deleted file mode 100644 index dc7852e8..00000000 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/coopassets/HsOfficeCoopAssetsTransactionRawEntity.java +++ /dev/null @@ -1,18 +0,0 @@ - -package net.hostsharing.hsadminng.hs.office.coopassets; - -import lombok.NoArgsConstructor; - -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.Table; -import java.util.UUID; - -@Entity -@Table(name = "hs_office_coopassetstransaction") -@NoArgsConstructor -public class HsOfficeCoopAssetsTransactionRawEntity { - - @Id - private UUID uuid; -} diff --git a/src/test/java/net/hostsharing/hsadminng/hs/office/test/ContextBasedTestWithCleanup.java b/src/test/java/net/hostsharing/hsadminng/hs/office/test/ContextBasedTestWithCleanup.java index 3fe3bd91..0af79642 100644 --- a/src/test/java/net/hostsharing/hsadminng/hs/office/test/ContextBasedTestWithCleanup.java +++ b/src/test/java/net/hostsharing/hsadminng/hs/office/test/ContextBasedTestWithCleanup.java @@ -64,9 +64,8 @@ public abstract class ContextBasedTestWithCleanup extends ContextBasedTest { return merged; } - // TODO.test: back to `Class entityClass` but delete on raw table // remove HsOfficeCoopAssetsTransactionRawEntity, which is not needed anymore after this change - public UUID toCleanup(final Class entityClass, final UUID uuidToCleanup) { + public UUID toCleanup(final Class entityClass, final UUID uuidToCleanup) { out.println("toCleanup(" + entityClass.getSimpleName() + ", " + uuidToCleanup + ")"); entitiesToCleanup.put(uuidToCleanup, entityClass); return uuidToCleanup; @@ -178,16 +177,19 @@ public abstract class ContextBasedTestWithCleanup extends ContextBasedTest { } private void cleanupTemporaryTestData() { - entitiesToCleanup.forEach((uuid, entityClass) -> { - final var caughtException = jpaAttempt.transacted(() -> { - context.define("superuser-alex@hostsharing.net", null); - em.remove(em.getReference(entityClass, uuid)); - out.println("DELETING temporary " + entityClass.getSimpleName() + "#" + uuid + " generated"); - }).caughtException(); - if (caughtException != null) { - out.println("DELETING temporary " + entityClass.getSimpleName() + "#" + uuid + " failed: " + caughtException); - } - }); + jpaAttempt.transacted(() -> { + context.define("superuser-alex@hostsharing.net", null); + entitiesToCleanup.reversed().forEach((uuid, entityClass) -> { + final var rvTableName = entityClass.getAnnotation(Table.class).name(); + if ( !rvTableName.endsWith("_rv") ) { + throw new IllegalStateException(); + } + final var rawTableName = rvTableName.substring(0, rvTableName.length() - "_rv".length()); + final var deletedRows = em.createNativeQuery("DELETE FROM " + rawTableName + " WHERE uuid=:uuid") + .setParameter("uuid", uuid).executeUpdate(); + out.println("DELETING temporary " + entityClass.getSimpleName() + "#" + uuid + " deleted " + deletedRows + " rows"); + }); + }).assertSuccessful(); } private long assertNoNewRbacObjectsRolesAndGrantsLeaked() {