From d9b4402f951ca352d892ff095f51f403dbf325d0 Mon Sep 17 00:00:00 2001 From: Michael Hunger Date: Fri, 15 Nov 2013 22:33:20 +0100 Subject: [PATCH] DATAGRAPH-408 - Fixing more tests for different test behavior in Spring Framework 3.2.5. --- .../neo4j/aspects/support/FinderTests.java | 5 ++ .../partial/RecommendationConfigTests.java | 72 ++++++++++++++++++- .../neo4j/partial/RecommendationTests.java | 1 + ...GraphRecommendationTest-context-config.xml | 2 +- ...leanContextCacheTestExecutionListener.java | 10 +-- 5 files changed, 83 insertions(+), 7 deletions(-) diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/FinderTests.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/FinderTests.java index 44b51e138..fd6ce131f 100644 --- a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/FinderTests.java +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/FinderTests.java @@ -26,8 +26,12 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.neo4j.aspects.Friendship; import org.springframework.data.neo4j.aspects.Group; import org.springframework.data.neo4j.aspects.Person; +import org.springframework.test.context.CleanContextCacheTestExecutionListener; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestExecutionListeners; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; +import org.springframework.test.context.transaction.TransactionalTestExecutionListener; import org.springframework.transaction.annotation.Transactional; import java.util.*; @@ -41,6 +45,7 @@ import static org.springframework.data.neo4j.aspects.Person.persistedPerson; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:org/springframework/data/neo4j/aspects/support/Neo4jGraphPersistenceTests-context.xml"}) +@TestExecutionListeners({CleanContextCacheTestExecutionListener.class, DependencyInjectionTestExecutionListener.class, TransactionalTestExecutionListener.class}) public class FinderTests extends EntityTestBase { @Test diff --git a/spring-data-neo4j-cross-store/src/test/java/org/springframework/data/neo4j/partial/RecommendationConfigTests.java b/spring-data-neo4j-cross-store/src/test/java/org/springframework/data/neo4j/partial/RecommendationConfigTests.java index 17ff3fe51..6b25d20ae 100644 --- a/spring-data-neo4j-cross-store/src/test/java/org/springframework/data/neo4j/partial/RecommendationConfigTests.java +++ b/spring-data-neo4j-cross-store/src/test/java/org/springframework/data/neo4j/partial/RecommendationConfigTests.java @@ -15,16 +15,86 @@ */ package org.springframework.data.neo4j.partial; +import org.junit.Assert; +import org.junit.Test; import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.neo4j.support.Neo4jTemplate; +import org.springframework.data.neo4j.support.node.Neo4jHelper; import org.springframework.test.context.CleanContextCacheTestExecutionListener; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; +import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.test.context.transaction.TransactionalTestExecutionListener; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.Transactional; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.sql.DataSource; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:org/springframework/data/neo4j/partial/Neo4jGraphRecommendationTest-context-config.xml"}) @TestExecutionListeners({CleanContextCacheTestExecutionListener.class, DependencyInjectionTestExecutionListener.class, TransactionalTestExecutionListener.class}) -public class RecommendationConfigTests extends RecommendationTests { +public class RecommendationConfigTests { + protected final Logger log = LoggerFactory.getLogger(getClass()); + + @Autowired + PlatformTransactionManager transactionManager; + + @Autowired + private Neo4jTemplate template; + + @PersistenceContext + EntityManager em; + + @Autowired + DataSource dataSource; + + @BeforeTransaction + public void cleanDb() { + Neo4jHelper.cleanDb(template); + } + + @Test + @Transactional + public void jpaUserHasNodeAndId() { + User user = user("John"); + Assert.assertNotNull("jpa-id", user.getId()); + Assert.assertNotNull("node",user.getPersistentState()); + } + @Test + @Transactional + public void jpaUserCanHaveGraphProperties() { + User user = user("John"); + Assert.assertNotNull("jpa-id",user.getId()); + Assert.assertNotNull("node",user.getPersistentState()); + Assert.assertNotNull("nickname in entity",user.getNickname()); + Assert.assertEquals("nickname in graph","John",user.getPersistentState().getProperty("nickname")); + } + + private User user(final String name) { + User user = new User(); + user.setAge(35); + user.setNickname(name); + em.persist(user); + em.flush(); + return user.persist(); + } + + @Test + @Transactional + public void jpaUserCanHaveGraphRelationships() { + User user = user("John"); + Assert.assertNotNull("jpa-id",user.getId()); + Assert.assertNotNull("node",user.getPersistentState()); + User user2 = user("Jane"); + user.getFriends().add(user2); + //user.knows(user2); + Assert.assertEquals(user2, user.getFriends().iterator().next()); + } } diff --git a/spring-data-neo4j-cross-store/src/test/java/org/springframework/data/neo4j/partial/RecommendationTests.java b/spring-data-neo4j-cross-store/src/test/java/org/springframework/data/neo4j/partial/RecommendationTests.java index e9c1e1203..0df6c1c72 100644 --- a/spring-data-neo4j-cross-store/src/test/java/org/springframework/data/neo4j/partial/RecommendationTests.java +++ b/spring-data-neo4j-cross-store/src/test/java/org/springframework/data/neo4j/partial/RecommendationTests.java @@ -25,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.neo4j.support.Neo4jTemplate; import org.springframework.data.neo4j.support.node.Neo4jHelper; +import org.springframework.test.annotation.Rollback; import org.springframework.test.context.CleanContextCacheTestExecutionListener; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; diff --git a/spring-data-neo4j-cross-store/src/test/resources/org/springframework/data/neo4j/partial/Neo4jGraphRecommendationTest-context-config.xml b/spring-data-neo4j-cross-store/src/test/resources/org/springframework/data/neo4j/partial/Neo4jGraphRecommendationTest-context-config.xml index 9d7a59997..b3a0316de 100644 --- a/spring-data-neo4j-cross-store/src/test/resources/org/springframework/data/neo4j/partial/Neo4jGraphRecommendationTest-context-config.xml +++ b/spring-data-neo4j-cross-store/src/test/resources/org/springframework/data/neo4j/partial/Neo4jGraphRecommendationTest-context-config.xml @@ -27,7 +27,7 @@ - + diff --git a/spring-data-neo4j/src/test/java/org/springframework/test/context/CleanContextCacheTestExecutionListener.java b/spring-data-neo4j/src/test/java/org/springframework/test/context/CleanContextCacheTestExecutionListener.java index f14a19a41..ca1bb525e 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/test/context/CleanContextCacheTestExecutionListener.java +++ b/spring-data-neo4j/src/test/java/org/springframework/test/context/CleanContextCacheTestExecutionListener.java @@ -27,11 +27,11 @@ public class CleanContextCacheTestExecutionListener extends AbstractTestExecutio testContext.markApplicationContextDirty(DirtiesContext.HierarchyMode.EXHAUSTIVE); } -// @Override -// public void afterTestMethod(TestContext testContext) throws Exception { -// testContext.markApplicationContextDirty(DirtiesContext.HierarchyMode.EXHAUSTIVE); -// super.afterTestMethod(testContext); -// } + @Override + public void afterTestMethod(TestContext testContext) throws Exception { + testContext.markApplicationContextDirty(DirtiesContext.HierarchyMode.EXHAUSTIVE); + super.afterTestMethod(testContext); + } @Override public void afterTestClass(TestContext testContext) throws Exception {