From fbd1e4e156bc71a7f100bf6cabded86b4c830d13 Mon Sep 17 00:00:00 2001 From: Michael Hunger Date: Sat, 26 Feb 2011 07:36:41 +0100 Subject: [PATCH] db cleanup in tests is now run before the transactions --- spring-data-graph-parent/pom.xml | 2 +- .../neo4j/jpa/Neo4jEntityManagerTest.java | 8 +++- .../jpa/Neo4jEntityManagerTest-context.xml | 2 +- .../neo4j/support/GraphDatabaseContext.java | 4 +- .../graph/neo4j/support/node/Neo4jHelper.java | 47 +++++++++++++------ .../neo4j/partial/RecommendationTest.java | 3 +- .../support/EntityPropertyValidationTest.java | 14 +----- .../data/graph/neo4j/support/FinderTest.java | 10 ++-- .../data/graph/neo4j/support/IndexTest.java | 24 +--------- .../ModificationOutsideOfTransactionTest.java | 7 ++- .../support/NodeEntityRelationshipTest.java | 8 ++-- .../graph/neo4j/support/NodeEntityTest.java | 16 ++----- .../graph/neo4j/support/ProjectionTest.java | 17 ++----- .../graph/neo4j/support/PropertyTest.java | 15 ++---- .../neo4j/support/RelationshipEntityTest.java | 10 ++-- .../SubReferenceNodeTypeStrategyTest.java | 8 +++- .../graph/neo4j/support/TraversalTest.java | 12 ++--- .../transaction/JOTMIntegrationTest.java | 28 +---------- .../Neo4jGraphRecommendationTest-context.xml | 2 +- .../Neo4jGraphPersistenceTest-context.xml | 2 +- 20 files changed, 95 insertions(+), 144 deletions(-) diff --git a/spring-data-graph-parent/pom.xml b/spring-data-graph-parent/pom.xml index 0f1309f5b..e816cc89f 100644 --- a/spring-data-graph-parent/pom.xml +++ b/spring-data-graph-parent/pom.xml @@ -16,7 +16,7 @@ 1.5.10 3.0.5.RELEASE 1.0.0.M3 - 1.3.M02 + 1.3.M03 1.6.11.M2 diff --git a/spring-data-neo4j-roo/src/test/java/org/springframework/data/graph/neo4j/jpa/Neo4jEntityManagerTest.java b/spring-data-neo4j-roo/src/test/java/org/springframework/data/graph/neo4j/jpa/Neo4jEntityManagerTest.java index ebf3fe073..f6d416b49 100644 --- a/spring-data-neo4j-roo/src/test/java/org/springframework/data/graph/neo4j/jpa/Neo4jEntityManagerTest.java +++ b/spring-data-neo4j-roo/src/test/java/org/springframework/data/graph/neo4j/jpa/Neo4jEntityManagerTest.java @@ -21,6 +21,7 @@ import org.springframework.data.graph.neo4j.support.GraphDatabaseContext; import org.springframework.data.graph.neo4j.support.node.Neo4jHelper; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.annotation.Transactional; import java.util.Collection; @@ -43,9 +44,14 @@ public class Neo4jEntityManagerTest { Person person; private Node node; - @Before + + @BeforeTransaction public void cleanDb() { Neo4jHelper.cleanDb(graphDatabaseContext); + } + + @Before + public void setUp() { person = new Person("Michael",35); node = person.getUnderlyingState(); } diff --git a/spring-data-neo4j-roo/src/test/resources/org/springframework/data/graph/neo4j/jpa/Neo4jEntityManagerTest-context.xml b/spring-data-neo4j-roo/src/test/resources/org/springframework/data/graph/neo4j/jpa/Neo4jEntityManagerTest-context.xml index e81dcca03..247113f49 100644 --- a/spring-data-neo4j-roo/src/test/resources/org/springframework/data/graph/neo4j/jpa/Neo4jEntityManagerTest-context.xml +++ b/spring-data-neo4j-roo/src/test/resources/org/springframework/data/graph/neo4j/jpa/Neo4jEntityManagerTest-context.xml @@ -83,7 +83,7 @@ --> - diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/support/GraphDatabaseContext.java b/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/support/GraphDatabaseContext.java index cae6ba1c2..af791a917 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/support/GraphDatabaseContext.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/support/GraphDatabaseContext.java @@ -21,7 +21,7 @@ import org.apache.commons.logging.LogFactory; import org.neo4j.graphdb.*; import org.neo4j.graphdb.index.Index; import org.neo4j.graphdb.index.IndexManager; -import org.neo4j.kernel.EmbeddedGraphDatabase; +import org.neo4j.kernel.AbstractGraphDatabase; import org.springframework.core.convert.ConversionService; import org.springframework.data.graph.core.GraphBacked; import org.springframework.data.graph.core.NodeBacked; @@ -296,7 +296,7 @@ public class GraphDatabaseContext { */ public TransactionManager getTxManager() { - return ((EmbeddedGraphDatabase) graphDatabaseService).getConfig().getTxModule().getTxManager(); + return ((AbstractGraphDatabase) graphDatabaseService).getConfig().getTxModule().getTxManager(); } /** diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/support/node/Neo4jHelper.java b/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/support/node/Neo4jHelper.java index f79e40144..3d525c04f 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/support/node/Neo4jHelper.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/graph/neo4j/support/node/Neo4jHelper.java @@ -16,31 +16,50 @@ package org.springframework.data.graph.neo4j.support.node; +import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.Node; import org.neo4j.graphdb.Relationship; import org.neo4j.graphdb.Transaction; +import org.neo4j.graphdb.index.IndexManager; import org.springframework.data.graph.neo4j.support.GraphDatabaseContext; public abstract class Neo4jHelper { - public static void cleanDb(GraphDatabaseContext graphDatabaseContext, String... indexFieldsToRemove) { - Transaction tx = graphDatabaseContext.beginTx(); + public static void cleanDb(GraphDatabaseContext graphDatabaseContext) { + cleanDb(graphDatabaseContext.getGraphDatabaseService()); + } + + public static void cleanDb(GraphDatabaseService graphDatabaseService) { + + Transaction tx = graphDatabaseService.beginTx(); try { - Node refNode = graphDatabaseContext.getReferenceNode(); - for (Node node : graphDatabaseContext.getAllNodes()) { - for (Relationship rel : node.getRelationships()) { - rel.delete(); - } - if (!refNode.equals(node)) { - node.delete(); - } - } - for (String indexField : indexFieldsToRemove) { - graphDatabaseContext.getNodeIndex("node").remove(null, indexField, null); - } + removeNodes(graphDatabaseService); + clearIndex(graphDatabaseService); tx.success(); } finally { tx.finish(); } } + + private static void removeNodes(GraphDatabaseService graphDatabaseService) { + Node refNode = graphDatabaseService.getReferenceNode(); + for (Node node : graphDatabaseService.getAllNodes()) { + for (Relationship rel : node.getRelationships()) { + rel.delete(); + } + if (!refNode.equals(node)) { + node.delete(); + } + } + } + + private static void clearIndex(GraphDatabaseService gds) { + IndexManager indexManager = gds.index(); + for (String ix : indexManager.nodeIndexNames()) { + indexManager.forNodes(ix).delete(); + } + for (String ix : indexManager.relationshipIndexNames()) { + indexManager.forRelationships(ix).delete(); + } + } } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/partial/RecommendationTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/partial/RecommendationTest.java index e159321b3..42e664b3d 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/partial/RecommendationTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/partial/RecommendationTest.java @@ -14,6 +14,7 @@ import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.Transactional; @@ -41,7 +42,7 @@ public class RecommendationTest { @Autowired DataSource dataSource; - @Before + @BeforeTransaction public void cleanDb() { Neo4jHelper.cleanDb(graphDatabaseContext); } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/EntityPropertyValidationTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/EntityPropertyValidationTest.java index 0cc85e4d7..8ce85f5a3 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/EntityPropertyValidationTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/EntityPropertyValidationTest.java @@ -2,29 +2,19 @@ package org.springframework.data.graph.neo4j.support; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.neo4j.graphdb.Direction; -import org.neo4j.graphdb.DynamicRelationshipType; -import org.neo4j.graphdb.Node; -import org.neo4j.graphdb.Relationship; -import org.neo4j.helpers.collection.IteratorUtil; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.dao.InvalidDataAccessApiUsageException; -import org.springframework.data.graph.neo4j.Friendship; -import org.springframework.data.graph.neo4j.Group; import org.springframework.data.graph.neo4j.Person; -import org.springframework.data.graph.neo4j.finder.FinderFactory; import org.springframework.data.graph.neo4j.support.node.Neo4jHelper; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.annotation.Transactional; import javax.validation.ValidationException; -import java.util.*; import static org.junit.Assert.assertEquals; @@ -38,7 +28,7 @@ public class EntityPropertyValidationTest { @Autowired private GraphDatabaseContext graphDatabaseContext; - @Before + @BeforeTransaction public void cleanDb() { Neo4jHelper.cleanDb(graphDatabaseContext); } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/FinderTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/FinderTest.java index 96ecfa741..e14bc3ace 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/FinderTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/FinderTest.java @@ -6,8 +6,6 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.neo4j.graphdb.NotFoundException; -import org.neo4j.graphdb.Transaction; import org.neo4j.helpers.collection.IteratorUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.graph.neo4j.Group; @@ -18,6 +16,7 @@ import org.springframework.data.graph.neo4j.support.node.Neo4jHelper; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; @@ -39,10 +38,11 @@ public class FinderTest { @Autowired private FinderFactory finderFactory; - @Before - public void cleanDb() { - Neo4jHelper.cleanDb(graphDatabaseContext); + @BeforeTransaction + public void cleanDb() { + Neo4jHelper.cleanDb(graphDatabaseContext); } + @Test @Transactional public void testFinderFindAll() { diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/IndexTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/IndexTest.java index 932b6bf7a..2953bbc03 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/IndexTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/IndexTest.java @@ -2,7 +2,6 @@ package org.springframework.data.graph.neo4j.support; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Ignore; @@ -23,6 +22,7 @@ import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.AfterTransaction; +import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; @@ -50,31 +50,11 @@ public class IndexTest { @Autowired private FinderFactory finderFactory; - @Before + @BeforeTransaction public void cleanDb() { Neo4jHelper.cleanDb(graphDatabaseContext); } - @AfterTransaction - public void tearDown() throws Exception { - GraphDatabaseService gds = graphDatabaseContext.getGraphDatabaseService(); - if (gds != null) { - clearIndex(gds); - } - } - - private void clearIndex(GraphDatabaseService gds) { - org.neo4j.graphdb.Transaction tx = gds.beginTx(); - try { - for (String ix : gds.index().nodeIndexNames()) { - gds.index().forNodes(ix).delete(); - } - tx.success(); - } finally { - tx.finish(); - } - } - @Test @Transactional public void testCanIndexIntFieldsOnRelationshipEntities() { diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/ModificationOutsideOfTransactionTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/ModificationOutsideOfTransactionTest.java index 8b7980516..74c97bb13 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/ModificationOutsideOfTransactionTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/ModificationOutsideOfTransactionTest.java @@ -15,7 +15,7 @@ import org.springframework.data.graph.neo4j.support.node.Neo4jHelper; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.transaction.annotation.Transactional; +import org.springframework.test.context.transaction.BeforeTransaction; import static org.junit.Assert.*; import static org.springframework.data.graph.neo4j.support.HasRelationshipMatcher.hasRelationship; @@ -35,9 +35,8 @@ public class ModificationOutsideOfTransactionTest private FinderFactory finderFactory; @Before - public void cleanDb() - { - Neo4jHelper.cleanDb( graphDatabaseContext ); + public void cleanDb() { + Neo4jHelper.cleanDb(graphDatabaseContext); } @Test diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/NodeEntityRelationshipTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/NodeEntityRelationshipTest.java index 9cf0805c3..caa0b0405 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/NodeEntityRelationshipTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/NodeEntityRelationshipTest.java @@ -14,11 +14,11 @@ import org.springframework.data.graph.neo4j.Friendship; import org.springframework.data.graph.neo4j.Group; import org.springframework.data.graph.neo4j.Person; import org.springframework.data.graph.neo4j.finder.FinderFactory; -import org.springframework.data.graph.neo4j.finder.NodeFinder; import org.springframework.data.graph.neo4j.support.node.Neo4jHelper; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.annotation.Transactional; import java.util.*; @@ -38,9 +38,9 @@ public class NodeEntityRelationshipTest { @Autowired private FinderFactory finderFactory; - @Before - public void cleanDb() { - Neo4jHelper.cleanDb(graphDatabaseContext); + @BeforeTransaction + public void cleanDb() { + Neo4jHelper.cleanDb(graphDatabaseContext); } @Test diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/NodeEntityTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/NodeEntityTest.java index f8bbc434d..612959012 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/NodeEntityTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/NodeEntityTest.java @@ -4,29 +4,21 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.neo4j.graphdb.*; -import org.neo4j.graphdb.traversal.TraversalDescription; -import org.neo4j.helpers.collection.IteratorUtil; -import org.neo4j.kernel.Traversal; -import org.neo4j.kernel.impl.traversal.TraversalDescriptionImpl; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.data.graph.neo4j.*; import org.springframework.data.graph.neo4j.finder.FinderFactory; import org.springframework.data.graph.neo4j.finder.NodeFinder; -import org.springframework.data.graph.neo4j.finder.RelationshipFinder; import org.springframework.data.graph.neo4j.support.node.Neo4jHelper; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.annotation.Transactional; -import java.util.*; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; @@ -43,9 +35,9 @@ import static org.junit.Assert.assertNull; @Autowired private FinderFactory finderFactory; - @Before - public void cleanDb() { - Neo4jHelper.cleanDb(graphDatabaseContext); + @BeforeTransaction + public void cleanDb() { + Neo4jHelper.cleanDb(graphDatabaseContext); } @Test diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/ProjectionTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/ProjectionTest.java index fc20e0a77..447baa32b 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/ProjectionTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/ProjectionTest.java @@ -5,26 +5,18 @@ import org.apache.commons.logging.LogFactory; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.neo4j.graphdb.DynamicRelationshipType; -import org.neo4j.graphdb.traversal.TraversalDescription; -import org.neo4j.kernel.Traversal; -import org.neo4j.kernel.impl.traversal.TraversalDescriptionImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.graph.neo4j.Group; import org.springframework.data.graph.neo4j.Named; -import org.springframework.data.graph.neo4j.Person; import org.springframework.data.graph.neo4j.finder.FinderFactory; -import org.springframework.data.graph.neo4j.finder.NodeFinder; import org.springframework.data.graph.neo4j.support.node.Neo4jHelper; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.annotation.Transactional; -import java.util.Collections; -import java.util.HashSet; - import static org.junit.Assert.assertEquals; @RunWith(SpringJUnit4ClassRunner.class) @@ -40,10 +32,11 @@ public class ProjectionTest { @Autowired private FinderFactory finderFactory; - @Before - public void cleanDb() { - Neo4jHelper.cleanDb(graphDatabaseContext); + @BeforeTransaction + public void cleanDb() { + Neo4jHelper.cleanDb(graphDatabaseContext); } + @Test @Transactional public void testProjectGroupToNamed() { diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/PropertyTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/PropertyTest.java index afd241cac..59b9549de 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/PropertyTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/PropertyTest.java @@ -6,28 +6,21 @@ import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; -import org.neo4j.graphdb.DynamicRelationshipType; import org.neo4j.graphdb.NotFoundException; -import org.neo4j.graphdb.traversal.TraversalDescription; -import org.neo4j.kernel.Traversal; -import org.neo4j.kernel.impl.traversal.TraversalDescriptionImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.graph.neo4j.Friendship; -import org.springframework.data.graph.neo4j.Group; import org.springframework.data.graph.neo4j.Person; import org.springframework.data.graph.neo4j.Personality; import org.springframework.data.graph.neo4j.finder.FinderFactory; -import org.springframework.data.graph.neo4j.finder.NodeFinder; import org.springframework.data.graph.neo4j.support.node.Neo4jHelper; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.annotation.Transactional; -import java.util.Collections; import java.util.Date; -import java.util.HashSet; import static org.junit.Assert.assertEquals; @@ -44,9 +37,9 @@ public class PropertyTest { @Autowired private FinderFactory finderFactory; - @Before - public void cleanDb() { - Neo4jHelper.cleanDb(graphDatabaseContext); + @BeforeTransaction + public void cleanDb() { + Neo4jHelper.cleanDb(graphDatabaseContext); } @Test @Transactional diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/RelationshipEntityTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/RelationshipEntityTest.java index 9ea94ec87..df73a5760 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/RelationshipEntityTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/RelationshipEntityTest.java @@ -2,21 +2,19 @@ package org.springframework.data.graph.neo4j.support; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.neo4j.graphdb.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.graph.neo4j.Friendship; -import org.springframework.data.graph.neo4j.Group; import org.springframework.data.graph.neo4j.Person; import org.springframework.data.graph.neo4j.finder.FinderFactory; -import org.springframework.data.graph.neo4j.finder.NodeFinder; import org.springframework.data.graph.neo4j.support.node.Neo4jHelper; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.annotation.Transactional; import static org.junit.Assert.assertEquals; @@ -34,9 +32,9 @@ public class RelationshipEntityTest { @Autowired private FinderFactory finderFactory; - @Before - public void cleanDb() { - Neo4jHelper.cleanDb(graphDatabaseContext); + @BeforeTransaction + public void cleanDb() { + Neo4jHelper.cleanDb(graphDatabaseContext); } @Test diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/SubReferenceNodeTypeStrategyTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/SubReferenceNodeTypeStrategyTest.java index e6d2c927e..4ec3502fd 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/SubReferenceNodeTypeStrategyTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/SubReferenceNodeTypeStrategyTest.java @@ -25,6 +25,7 @@ import org.springframework.data.graph.neo4j.support.node.Neo4jHelper; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.annotation.Transactional; import java.util.Collection; @@ -51,9 +52,14 @@ public class SubReferenceNodeTypeStrategyTest { private Node thingNode; private Thing thing; - @Before + + @BeforeTransaction public void cleanDb() { Neo4jHelper.cleanDb(graphDatabaseContext); + } + + @Before + public void setUp() { nodeTypeStrategy = graphDatabaseContext.getNodeTypeStrategy(); thingNode = createThing(); } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/TraversalTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/TraversalTest.java index 613f01bcd..6f99f7e70 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/TraversalTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/support/TraversalTest.java @@ -2,13 +2,11 @@ package org.springframework.data.graph.neo4j.support; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.neo4j.graphdb.DynamicRelationshipType; import org.neo4j.graphdb.traversal.TraversalDescription; -import org.neo4j.helpers.collection.IteratorUtil; import org.neo4j.kernel.Traversal; import org.neo4j.kernel.impl.traversal.TraversalDescriptionImpl; import org.springframework.beans.factory.annotation.Autowired; @@ -21,10 +19,9 @@ import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.HashSet; @@ -43,10 +40,11 @@ public class TraversalTest { @Autowired private FinderFactory finderFactory; - @Before - public void cleanDb() { - Neo4jHelper.cleanDb(graphDatabaseContext); + @BeforeTransaction + public void cleanDb() { + Neo4jHelper.cleanDb(graphDatabaseContext); } + @Test @Transactional public void testTraverseFromGroupToPeople() { diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/transaction/JOTMIntegrationTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/transaction/JOTMIntegrationTest.java index b45c00972..0eaf58982 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/transaction/JOTMIntegrationTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/graph/neo4j/transaction/JOTMIntegrationTest.java @@ -12,6 +12,7 @@ import org.neo4j.kernel.Config; import org.neo4j.kernel.EmbeddedGraphDatabase; import org.objectweb.jotm.Current; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.data.graph.neo4j.support.node.Neo4jHelper; import org.springframework.transaction.jta.JtaTransactionManager; import org.springframework.transaction.jta.ManagedTransactionAdapter; @@ -37,38 +38,13 @@ public class JOTMIntegrationTest { public void setUp() throws Exception { ctx = new ClassPathXmlApplicationContext("classpath:spring-tx-text-context.xml"); gds = ctx.getBean(GraphDatabaseService.class); + Neo4jHelper.cleanDb(gds); } @After public void tearDown() throws Exception { - if (gds != null) { - clear(gds); - } if (ctx != null) ctx.close(); } - - private void clear(GraphDatabaseService gds) { - org.neo4j.graphdb.Transaction tx = gds.beginTx(); - try { - for (String ix : gds.index().nodeIndexNames()) { - gds.index().forNodes(ix).delete(); - } - for (Node node : gds.getAllNodes()) { - for (Relationship relationship : node.getRelationships()) { - relationship.delete(); - } - } - Node referenceNode = gds.getReferenceNode(); - for (Node node : gds.getAllNodes()) { - if (node.equals(referenceNode)) - continue; - node.delete(); - } - tx.success(); - } finally { - tx.finish(); - } - } @Test public void createdNodeShouldBeFoundAfterCommit() throws Exception { diff --git a/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/partial/Neo4jGraphRecommendationTest-context.xml b/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/partial/Neo4jGraphRecommendationTest-context.xml index 847833ad3..2aa28d11a 100644 --- a/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/partial/Neo4jGraphRecommendationTest-context.xml +++ b/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/partial/Neo4jGraphRecommendationTest-context.xml @@ -84,7 +84,7 @@ --> - diff --git a/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/support/Neo4jGraphPersistenceTest-context.xml b/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/support/Neo4jGraphPersistenceTest-context.xml index b24c8d93e..e1e9fba9b 100644 --- a/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/support/Neo4jGraphPersistenceTest-context.xml +++ b/spring-data-neo4j/src/test/resources/org/springframework/data/graph/neo4j/support/Neo4jGraphPersistenceTest-context.xml @@ -77,7 +77,7 @@ -