From 72357e26b02abcdeb4ac6391d8433ca952b81238 Mon Sep 17 00:00:00 2001 From: Christian Beikov Date: Sun, 5 Nov 2017 14:10:41 +0100 Subject: [PATCH] #414 - Datanucleus, MySQL, Oracle and DB2 test fixes --- .../testsuite/entity/BlobEntity.java | 5 +++-- entity-view/testsuite/pom.xml | 3 +-- .../proxy/ProxyFactoryEmeddableTest.java | 7 ++++++- .../converter/EntityViewUpdateBlobTest.java | 17 +++++++++++++++-- .../src/test/resources/META-INF/persistence.xml | 1 + 5 files changed, 26 insertions(+), 7 deletions(-) diff --git a/core/testsuite/src/main/java/com/blazebit/persistence/testsuite/entity/BlobEntity.java b/core/testsuite/src/main/java/com/blazebit/persistence/testsuite/entity/BlobEntity.java index a7a62a7d67..a1acb75f78 100644 --- a/core/testsuite/src/main/java/com/blazebit/persistence/testsuite/entity/BlobEntity.java +++ b/core/testsuite/src/main/java/com/blazebit/persistence/testsuite/entity/BlobEntity.java @@ -17,6 +17,7 @@ package com.blazebit.persistence.testsuite.entity; import javax.persistence.Basic; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Lob; import javax.persistence.Table; @@ -29,8 +30,7 @@ /** * * @author Christian Beikov - * @author Moritz Becker - * @since 1.0 + * @since 1.2.0 */ @Entity @Table(name = "blob_tbl") @@ -71,6 +71,7 @@ public void setVersion(Long version) { } @Lob + @Column(name = "blob_col") public Blob getBlob() { return blob; } diff --git a/entity-view/testsuite/pom.xml b/entity-view/testsuite/pom.xml index 971815c1e1..4962363dea 100644 --- a/entity-view/testsuite/pom.xml +++ b/entity-view/testsuite/pom.xml @@ -48,7 +48,6 @@ ${project.groupId} blaze-persistence-core-testsuite ${project.version} - test @@ -247,7 +246,7 @@ com.blazebit.persistence.testsuite.base.category.NoDB2,${jpa.excludedGroups} - jdbc:db2://localhost:50000/test + jdbc:db2://localhost:50000/test:progressiveStreaming=2 db2inst1 db2inst1-pwd com.ibm.db2.jcc.DB2Driver diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/proxy/ProxyFactoryEmeddableTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/proxy/ProxyFactoryEmeddableTest.java index 5bd8394ce8..c543391484 100644 --- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/proxy/ProxyFactoryEmeddableTest.java +++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/proxy/ProxyFactoryEmeddableTest.java @@ -16,6 +16,8 @@ package com.blazebit.persistence.view.testsuite.proxy; +import com.blazebit.persistence.testsuite.base.category.NoDatanucleus; +import com.blazebit.persistence.testsuite.base.category.NoEclipselink; import com.blazebit.persistence.testsuite.entity.EmbeddableTestEntity; import com.blazebit.persistence.testsuite.entity.EmbeddableTestEntityEmbeddable; import com.blazebit.persistence.testsuite.entity.EmbeddableTestEntityId; @@ -32,6 +34,7 @@ import com.blazebit.persistence.view.testsuite.proxy.model.UpdatableEmbeddableTestEntityView; import com.blazebit.persistence.view.testsuite.proxy.model.UpdatableNameObjectView; import org.junit.Test; +import org.junit.experimental.categories.Category; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; @@ -39,8 +42,10 @@ /** * * @author Christian Beikov - * @since 1.0 + * @since 1.2.0 */ +// NOTE: No Datanucleus support yet +@Category({ NoDatanucleus.class, NoEclipselink.class}) public class ProxyFactoryEmeddableTest extends AbstractEntityViewTest { @Override diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/converter/EntityViewUpdateBlobTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/converter/EntityViewUpdateBlobTest.java index 5542f24969..c690e046c9 100644 --- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/converter/EntityViewUpdateBlobTest.java +++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/converter/EntityViewUpdateBlobTest.java @@ -20,6 +20,7 @@ import com.blazebit.persistence.testsuite.base.category.NoDatanucleus; import com.blazebit.persistence.testsuite.base.category.NoEclipselink; import com.blazebit.persistence.testsuite.entity.BlobEntity; +import com.blazebit.persistence.testsuite.tx.TxVoidWork; import com.blazebit.persistence.view.EntityViewSetting; import com.blazebit.persistence.view.FlushMode; import com.blazebit.persistence.view.FlushStrategy; @@ -31,6 +32,7 @@ import org.junit.runners.Parameterized; import javax.persistence.EntityManager; +import javax.persistence.LockModeType; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.OutputStream; @@ -203,8 +205,8 @@ public void testSetBlob() throws Exception { builder.update(BlobEntity.class); builder.validate(); - restartTransactionAndReload(); assertEquals(1, docView.getBlob().length()); + restartTransactionAndReload(); assertEquals(1, entity.getBlob().length()); } @@ -222,7 +224,18 @@ public void testUpdateBlob() throws Exception { // When docView.getBlob().setBytes(1, new byte[2]); - update(docView); + transactional(new TxVoidWork() { + + @Override + public void work(EntityManager em) { + // Required for Oracle + em.createQuery("SELECT e FROM BlobEntity e", BlobEntity.class).setLockMode(LockModeType.PESSIMISTIC_WRITE).getSingleResult(); + em.clear(); + clearQueries(); + evm.update(em, docView); + em.flush(); + } + }); // Then AssertStatementBuilder builder = assertQuerySequence(); diff --git a/entity-view/testsuite/src/test/resources/META-INF/persistence.xml b/entity-view/testsuite/src/test/resources/META-INF/persistence.xml index 3c2959dcd4..8ff667e7b6 100644 --- a/entity-view/testsuite/src/test/resources/META-INF/persistence.xml +++ b/entity-view/testsuite/src/test/resources/META-INF/persistence.xml @@ -25,6 +25,7 @@ com.blazebit.persistence.view.testsuite.entity.EmbeddableTestEntity + com.blazebit.persistence.view.testsuite.entity.EmbeddableTestEntityEmbeddable com.blazebit.persistence.view.testsuite.entity.TestEntity com.blazebit.persistence.view.testsuite.entity.LegacyOrder