diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/AttachEntityTest.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/AttachEntityTest.java index 9fad4bfed..c282f1e31 100644 --- a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/AttachEntityTest.java +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/AttachEntityTest.java @@ -16,13 +16,9 @@ package org.springframework.data.neo4j.aspects.support; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.junit.Test; import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.neo4j.aspects.Developer; -import org.springframework.data.neo4j.repository.DirectGraphRepositoryFactory; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.transaction.annotation.Transactional; @@ -35,11 +31,6 @@ import static org.junit.Assert.assertNull; public class AttachEntityTest extends EntityTestBase { - protected final Log log = LogFactory.getLog(getClass()); - - @Autowired - private DirectGraphRepositoryFactory graphRepositoryFactory; - @Test @Transactional public void entityShouldHaveNoNode() { diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/EntityTestBase.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/EntityTestBase.java index cc0373706..ab9c1c1b4 100644 --- a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/EntityTestBase.java +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/EntityTestBase.java @@ -24,7 +24,6 @@ import org.springframework.core.convert.ConversionService; import org.springframework.data.neo4j.aspects.FriendshipRepository; import org.springframework.data.neo4j.aspects.GroupRepository; import org.springframework.data.neo4j.aspects.PersonRepository; -import org.springframework.data.neo4j.repository.DirectGraphRepositoryFactory; import org.springframework.data.neo4j.support.GraphDatabaseContext; import org.springframework.data.neo4j.support.node.Neo4jHelper; import org.springframework.test.context.transaction.BeforeTransaction; @@ -45,8 +44,6 @@ public class EntityTestBase { @Autowired protected GraphDatabaseService graphDatabaseService; - @Autowired protected DirectGraphRepositoryFactory graphRepositoryFactory; - @Autowired protected PersonRepository personRepository; @Autowired protected GroupRepository groupRepository; @Autowired protected FriendshipRepository friendshipRepository; diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/FinderTest.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/FinderTest.java index ec7038ce1..4bcb2b79a 100644 --- a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/FinderTest.java +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/FinderTest.java @@ -39,7 +39,6 @@ import static org.neo4j.helpers.collection.IteratorUtil.asCollection; import static org.springframework.data.neo4j.aspects.Person.persistedPerson; @RunWith(SpringJUnit4ClassRunner.class) -//@ContextConfiguration(locations = {"classpath:repository-namespace-config-context.xml"}) @ContextConfiguration(locations = {"classpath:org/springframework/data/neo4j/aspects/support/Neo4jGraphPersistenceTest-context.xml"}) public class FinderTest extends EntityTestBase { diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/IndexTest.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/IndexTest.java index 90b4e846b..723412212 100644 --- a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/IndexTest.java +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/IndexTest.java @@ -16,10 +16,7 @@ package org.springframework.data.neo4j.aspects.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; @@ -28,17 +25,15 @@ import org.neo4j.graphdb.Relationship; import org.neo4j.graphdb.Transaction; import org.neo4j.graphdb.index.Index; import org.neo4j.helpers.collection.IteratorUtil; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.neo4j.annotation.Indexed; import org.springframework.data.neo4j.annotation.NodeEntity; -import org.springframework.data.neo4j.aspects.*; -import org.springframework.data.neo4j.repository.DirectGraphRepositoryFactory; +import org.springframework.data.neo4j.aspects.Friendship; +import org.springframework.data.neo4j.aspects.Group; +import org.springframework.data.neo4j.aspects.Person; +import org.springframework.data.neo4j.aspects.SubGroup; import org.springframework.data.neo4j.repository.GraphRepository; -import org.springframework.data.neo4j.support.GraphDatabaseContext; -import org.springframework.data.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.Arrays; @@ -57,28 +52,6 @@ public class IndexTest extends EntityTestBase { private static final String NAME_VALUE = "aName"; private static final String NAME_VALUE2 = "aSecondName"; private static final String NAME_VALUE3 = "aThirdName"; - protected final Log log = LogFactory.getLog(getClass()); - - @Autowired - private GraphDatabaseContext graphDatabaseContext; - - @Autowired - private DirectGraphRepositoryFactory graphRepositoryFactory; - protected GraphRepository groupFinder; - protected GraphRepository personFinder; - @Autowired protected PersonRepository personRepository; - @Autowired protected GroupRepository groupRepository; - - @Before - public void setUp() throws Exception { - groupFinder = graphRepositoryFactory.createGraphRepository(Group.class); - personFinder = graphRepositoryFactory.createGraphRepository(Person.class); - } - - @BeforeTransaction - public void cleanDb() { - Neo4jHelper.cleanDb(graphDatabaseContext); - } @Test @Transactional @@ -87,7 +60,7 @@ public class IndexTest extends EntityTestBase { Person p2 = persistedPerson(NAME_VALUE2, 25); Friendship friendship = p.knows(p2); friendship.setYears(1); - GraphRepository friendshipFinder = graphRepositoryFactory.createGraphRepository(Friendship.class); + GraphRepository friendshipFinder = graphDatabaseContext.repositoryFor(Friendship.class); assertEquals(friendship, friendshipFinder.findByPropertyValue("Friendship.years", 1)); } @@ -114,7 +87,7 @@ public class IndexTest extends EntityTestBase { } finally { tx.finish(); } - final Group found = groupFinder.findByPropertyValue( NAME, NAME_VALUE); + final Group found = this.groupRepository.findByPropertyValue(NAME, NAME_VALUE); assertNull("Group.name removed from index", found); } @@ -131,7 +104,7 @@ public class IndexTest extends EntityTestBase { } finally { tx.finish(); } - final Group found = groupFinder.findByPropertyValue( NAME, NAME_VALUE); + final Group found = this.groupRepository.findByPropertyValue(NAME, NAME_VALUE); assertNull("Group.name removed from index", found); } @@ -144,7 +117,7 @@ public class IndexTest extends EntityTestBase { public void testFindGroupByIndex() { Group group = persist(new Group()); group.setName(NAME_VALUE); - final Group found = groupFinder.findByPropertyValue(NAME, NAME_VALUE); + final Group found = this.groupRepository.findByPropertyValue(NAME, NAME_VALUE); assertEquals(group, found); } @@ -164,7 +137,7 @@ public class IndexTest extends EntityTestBase { public void testFindGroupByAlternativeFieldNameIndex() { Group group = persist(new Group()); group.setOtherName(NAME_VALUE); - final Group found = groupFinder.findByPropertyValue(Group.OTHER_NAME_INDEX, NAME_VALUE); + final Group found = this.groupRepository.findByPropertyValue(Group.OTHER_NAME_INDEX, NAME_VALUE); assertEquals(group, found); } @@ -177,18 +150,10 @@ public class IndexTest extends EntityTestBase { @Indexed(fulltext = true, indexName = "InvalidIndexed") String fullTextDefaultIndexName; - public String getFulltextNoIndexName() { - return fulltextNoIndexName; - } - public void setFulltextNoIndexName(String fulltextNoIndexName) { this.fulltextNoIndexName = fulltextNoIndexName; } - public String getFullTextDefaultIndexName() { - return fullTextDefaultIndexName; - } - public void setFullTextDefaultIndexName(String fullTextDefaultIndexName) { this.fullTextDefaultIndexName = fullTextDefaultIndexName; } @@ -215,7 +180,7 @@ public class IndexTest extends EntityTestBase { public void testDontFindGroupByNonIndexedFieldWithAnnotation() { Group group = persist(new Group()); group.setUnindexedName("value-unindexedName"); - final Group found = groupFinder.findByPropertyValue("unindexedName", "value-unindexedName"); + final Group found = this.groupRepository.findByPropertyValue("unindexedName", "value-unindexedName"); assertNull(found); } @@ -224,7 +189,7 @@ public class IndexTest extends EntityTestBase { public void testDontFindGroupByNonIndexedField() { Group group = persist(new Group()); group.setUnindexedName2("value-unindexedName2"); - final Group found = groupFinder.findByPropertyValue( "unindexedName2", "value-unindexedName2"); + final Group found = this.groupRepository.findByPropertyValue("unindexedName2", "value-unindexedName2"); assertNull(found); } @@ -235,7 +200,7 @@ public class IndexTest extends EntityTestBase { group.setName(NAME_VALUE); Group group2 = persist(new Group()); group2.setName(NAME_VALUE); - final Iterable found = groupFinder.findAllByPropertyValue(NAME, NAME_VALUE); + final Iterable found = this.groupRepository.findAllByPropertyValue(NAME, NAME_VALUE); final Collection result = IteratorUtil.addToCollection(found.iterator(), new HashSet()); assertEquals(new HashSet(Arrays.asList(group, group2)), result); } @@ -261,7 +226,7 @@ public class IndexTest extends EntityTestBase { @Test public void findsPersonByIndexOnAnnotatedIntFieldInSeparateTransactions() { Person person = persistedPerson(NAME_VALUE, 35); - final Person found = personFinder.findByPropertyValue("age", 35); + final Person found = this.personRepository.findByPropertyValue("age", 35); assertEquals("person found inside range", person, found); } @@ -269,15 +234,15 @@ public class IndexTest extends EntityTestBase { @Transactional public void testRangeQueryPersonByIndexOnAnnotatedField() { Person person = persistedPerson(NAME_VALUE, 35); - final Person found = personFinder.findAllByRange("age", 10, 40).iterator().next(); + final Person found = this.personRepository.findAllByRange("age", 10, 40).iterator().next(); assertEquals("person found inside range", person, found); } @Test @Transactional public void testOutsideRangeQueryPersonByIndexOnAnnotatedField() { - Person person = persistedPerson(NAME_VALUE, 35); - Iterable emptyResult = personFinder.findAllByRange("age", 0, 34); + persistedPerson(NAME_VALUE, 35); + Iterable emptyResult = this.personRepository.findAllByRange("age", 0, 34); assertFalse("nothing found outside range", emptyResult.iterator().hasNext()); } @@ -287,7 +252,7 @@ public class IndexTest extends EntityTestBase { public void testFindAllPersonByIndexOnAnnotatedFieldWithAtIndexed() { Person person = persistedPerson(NAME_VALUE, 35); person.setNickname("Mike"); - final Person found = personFinder.findByPropertyValue( "nickname", "Mike"); + final Person found = this.personRepository.findByPropertyValue("nickname", "Mike"); assertEquals(person, found); } @@ -320,7 +285,7 @@ public class IndexTest extends EntityTestBase { p = persistedPerson(NAME_VALUE2, 30); tx.success(); } finally { - tx.finish(); + if (tx != null) tx.finish(); } Assert.assertEquals(p, personRepository.findByPropertyValue(NAME_INDEX, "name", NAME_VALUE2)); try { diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/ModificationOutsideOfTransactionTest.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/ModificationOutsideOfTransactionTest.java index b1e240976..686d6b004 100644 --- a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/ModificationOutsideOfTransactionTest.java +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/ModificationOutsideOfTransactionTest.java @@ -16,22 +16,16 @@ package org.springframework.data.neo4j.aspects.support; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.neo4j.graphdb.Node; import org.neo4j.graphdb.NotInTransactionException; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.neo4j.aspects.Friendship; import org.springframework.data.neo4j.aspects.Group; import org.springframework.data.neo4j.aspects.Person; -import org.springframework.data.neo4j.repository.DirectGraphRepositoryFactory; import org.springframework.data.neo4j.repository.GraphRepository; -import org.springframework.data.neo4j.support.GraphDatabaseContext; -import org.springframework.data.neo4j.support.node.Neo4jHelper; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -48,17 +42,9 @@ import static org.springframework.data.neo4j.aspects.support.HasRelationshipMatc @ContextConfiguration( locations = {"classpath:org/springframework/data/neo4j/aspects/support/Neo4jGraphPersistenceTest-context.xml"} ) public class ModificationOutsideOfTransactionTest extends EntityTestBase { - protected final Log log = LogFactory.getLog( getClass() ); - - @Autowired - private GraphDatabaseContext graphDatabaseContext; - - @Autowired - private DirectGraphRepositoryFactory graphRepositoryFactory; - @Before - public void cleanDb() { - Neo4jHelper.cleanDb(graphDatabaseContext); + public void cleanUp() { + manualCleanDb(); } @Test @@ -248,7 +234,7 @@ public class ModificationOutsideOfTransactionTest extends EntityTestBase { @Test public void testFindOutsideTransaction() { - final GraphRepository finder = graphRepositoryFactory.createGraphRepository(Person.class); + final GraphRepository finder = graphDatabaseContext.repositoryFor(Person.class); assertEquals( false, finder.findAll().iterator().hasNext() ); } diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/NodeEntityInstantiationTest.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/NodeEntityInstantiationTest.java index aa5ea6052..93695c8b2 100644 --- a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/NodeEntityInstantiationTest.java +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/NodeEntityInstantiationTest.java @@ -16,23 +16,16 @@ package org.springframework.data.neo4j.aspects.support; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.junit.Test; import org.junit.runner.RunWith; import org.neo4j.graphdb.Node; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.neo4j.aspects.Person; -import org.springframework.data.neo4j.repository.DirectGraphRepositoryFactory; import org.springframework.data.neo4j.repository.GraphRepository; -import org.springframework.data.neo4j.support.GraphDatabaseContext; -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.annotation.Transactional; @@ -45,20 +38,7 @@ import static org.springframework.data.neo4j.aspects.Person.persistedPerson; "classpath:org/springframework/data/neo4j/aspects/support/PersonDirectCreator-context.xml" }) @TestExecutionListeners({CleanContextCacheTestExecutionListener.class, DependencyInjectionTestExecutionListener.class, TransactionalTestExecutionListener.class}) - public class NodeEntityInstantiationTest extends EntityTestBase { - - protected final Log log = LogFactory.getLog(getClass()); - - @Autowired - private GraphDatabaseContext graphDatabaseContext; - - @Autowired - private DirectGraphRepositoryFactory graphRepositoryFactory; - - @BeforeTransaction - public void cleanDb() { - Neo4jHelper.cleanDb(graphDatabaseContext); - } +public class NodeEntityInstantiationTest extends EntityTestBase { @Test @Transactional @@ -72,7 +52,7 @@ import static org.springframework.data.neo4j.aspects.Person.persistedPerson; Person person2 = graphDatabaseContext.createEntityFromState(node,Person.class); assertEquals("Rod", person2.getName()); - GraphRepository finder = graphRepositoryFactory.createGraphRepository(Person.class); + GraphRepository finder = graphDatabaseContext.repositoryFor(Person.class); Person found = finder.findOne(nodeId); assertEquals("Rod", found.getName()); } diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/NodeEntityRelationshipTest.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/NodeEntityRelationshipTest.java index c80c32fae..9391f8364 100644 --- a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/NodeEntityRelationshipTest.java +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/NodeEntityRelationshipTest.java @@ -16,8 +16,6 @@ package org.springframework.data.neo4j.aspects.support; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -26,17 +24,12 @@ 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.neo4j.aspects.Friendship; import org.springframework.data.neo4j.aspects.Group; import org.springframework.data.neo4j.aspects.Person; -import org.springframework.data.neo4j.repository.DirectGraphRepositoryFactory; -import org.springframework.data.neo4j.support.GraphDatabaseContext; -import org.springframework.data.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.*; @@ -50,19 +43,6 @@ import static org.springframework.data.neo4j.aspects.Person.persistedPerson; public class NodeEntityRelationshipTest extends EntityTestBase { - protected final Log log = LogFactory.getLog(getClass()); - - @Autowired - private GraphDatabaseContext graphDatabaseContext; - - @Autowired - private DirectGraphRepositoryFactory graphRepositoryFactory; - - @BeforeTransaction - public void cleanDb() { - Neo4jHelper.cleanDb(graphDatabaseContext); - } - @Test @Transactional public void testCreateRelationshipWithoutAnnotationOnSet() { diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/PropertyTest.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/PropertyTest.java index 3e2f2f648..b4522b658 100644 --- a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/PropertyTest.java +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/PropertyTest.java @@ -16,22 +16,15 @@ package org.springframework.data.neo4j.aspects.support; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.junit.Test; import org.junit.runner.RunWith; import org.neo4j.graphdb.NotFoundException; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.neo4j.aspects.Friendship; import org.springframework.data.neo4j.aspects.Person; import org.springframework.data.neo4j.aspects.Personality; -import org.springframework.data.neo4j.repository.DirectGraphRepositoryFactory; -import org.springframework.data.neo4j.support.GraphDatabaseContext; -import org.springframework.data.neo4j.support.node.Neo4jHelper; 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.Date; @@ -44,18 +37,6 @@ import static org.springframework.data.neo4j.aspects.Person.persistedPerson; public class PropertyTest extends EntityTestBase { - protected final Log log = LogFactory.getLog(getClass()); - - @Autowired - private GraphDatabaseContext graphDatabaseContext; - - @Autowired - private DirectGraphRepositoryFactory graphRepositoryFactory; - - @BeforeTransaction - public void cleanDb() { - Neo4jHelper.cleanDb(graphDatabaseContext); - } @Test @Transactional public void testSetPropertyEnum() { diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/RelationshipEntityTest.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/RelationshipEntityTest.java index 90fef128b..8bb34bf1b 100644 --- a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/RelationshipEntityTest.java +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/RelationshipEntityTest.java @@ -16,22 +16,17 @@ package org.springframework.data.neo4j.aspects.support; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.junit.Test; import org.junit.runner.RunWith; -import org.neo4j.graphdb.*; +import org.neo4j.graphdb.Direction; +import org.neo4j.graphdb.DynamicRelationshipType; +import org.neo4j.graphdb.Relationship; +import org.neo4j.graphdb.Transaction; import org.neo4j.helpers.collection.IteratorUtil; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.neo4j.aspects.Friendship; -import org.springframework.data.neo4j.aspects.FriendshipRepository; import org.springframework.data.neo4j.aspects.Person; -import org.springframework.data.neo4j.repository.DirectGraphRepositoryFactory; -import org.springframework.data.neo4j.support.GraphDatabaseContext; -import org.springframework.data.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 static org.junit.Assert.assertEquals; @@ -43,23 +38,6 @@ import static org.springframework.data.neo4j.aspects.Person.persistedPerson; public class RelationshipEntityTest extends EntityTestBase { - protected final Log log = LogFactory.getLog(getClass()); - - @Autowired - private GraphDatabaseContext graphDatabaseContext; - @Autowired - private GraphDatabaseService graphDatabaseService; - @Autowired - private FriendshipRepository friendshipRepository; - - @Autowired - private DirectGraphRepositoryFactory graphRepositoryFactory; - - @BeforeTransaction - public void cleanDb() { - Neo4jHelper.cleanDb(graphDatabaseContext); - } - @Test @Transactional public void testRelationshipCreate() { diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/TraversalTest.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/TraversalTest.java index b29d72028..7e5e24990 100644 --- a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/TraversalTest.java +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/TraversalTest.java @@ -69,7 +69,7 @@ public class TraversalTest extends EntityTestBase { group.setName("dev"); group.addPerson(p); final TraversalDescription traversalDescription = Traversal.description().relationships(DynamicRelationshipType.withName("persons"), Direction.OUTGOING).evaluator(Evaluators.excludeStartPosition()); - Iterable> paths = graphDatabaseContext.>findAllByTraversal(group, EntityPath.class, traversalDescription); + Iterable> paths = (Iterable>) graphDatabaseContext.>findAllByTraversal(group, EntityPath.class, traversalDescription); for (EntityPath path : paths) { assertEquals(group, path.startEntity()); assertEquals(p, path.endEntity()); @@ -107,7 +107,7 @@ public class TraversalTest extends EntityTestBase { @Test @Transactional public void testTraverseFromGroupToPeopleWithFinder() { - final GraphRepository finder = graphRepositoryFactory.createGraphRepository(Person.class); + final GraphRepository finder = graphDatabaseContext.repositoryFor(Person.class); Person p = persistedPerson("Michael", 35); Group group = persist(new Group()); group.setName("dev"); diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/query/QueryEngineTest.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/query/QueryEngineTest.java index 103774551..d47f70adb 100644 --- a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/query/QueryEngineTest.java +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/query/QueryEngineTest.java @@ -28,7 +28,7 @@ import org.springframework.data.neo4j.annotation.QueryType; import org.springframework.data.neo4j.aspects.Person; import org.springframework.data.neo4j.aspects.Personality; import org.springframework.data.neo4j.aspects.support.EntityTestBase; -import org.springframework.data.neo4j.conversion.QueryResult; +import org.springframework.data.neo4j.conversion.Result; import org.springframework.data.neo4j.conversion.ResultConverter; import org.springframework.data.neo4j.core.GraphDatabase; import org.springframework.data.neo4j.support.DelegatingGraphDatabase; @@ -87,7 +87,7 @@ public class QueryEngineTest extends EntityTestBase { @Test public void testQueryListOfTypeNode() throws Exception { final String queryString = "start person=node:name_index(name={name}) match (person) <-[:boss]- (boss) return boss"; - final QueryResult> queryResult = queryEngine.query(queryString, michaelsName()); + final Result> queryResult = queryEngine.query(queryString, michaelsName()); final Collection result = IteratorUtil.asCollection(queryResult.to(Node.class)); assertEquals(asList(getNodeState(testTeam.emil)),result); diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/typerepresentation/SubReferenceNodeTypeRepresentationStrategyTest.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/typerepresentation/SubReferenceNodeTypeRepresentationStrategyTest.java index cc00e237b..343e37770 100644 --- a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/typerepresentation/SubReferenceNodeTypeRepresentationStrategyTest.java +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/typerepresentation/SubReferenceNodeTypeRepresentationStrategyTest.java @@ -172,7 +172,7 @@ public class SubReferenceNodeTypeRepresentationStrategyTest extends EntityTestBa public void testInstantiateConcreteClassWithFinder() { log.debug("testInstantiateConcreteClassWithFinder"); Volvo v = persist(new Volvo()); - GraphRepository finder = graphRepositoryFactory.createGraphRepository(Car.class); + GraphRepository finder = graphDatabaseContext.repositoryFor(Car.class); assertEquals("Wrong concrete class.", Volvo.class, finder.findAll().iterator().next().getClass()); } @@ -184,16 +184,16 @@ public class SubReferenceNodeTypeRepresentationStrategyTest extends EntityTestBa log.warn("Created volvo"); persist(new Toyota()); log.warn("Created volvo"); - assertEquals("Wrong count for Volvo.", 1L, graphRepositoryFactory.createGraphRepository(Volvo.class).count()); - assertEquals("Wrong count for Toyota.", 1L, graphRepositoryFactory.createGraphRepository(Toyota.class).count()); - assertEquals("Wrong count for Car.", 2L, graphRepositoryFactory.createGraphRepository(Car.class).count()); + assertEquals("Wrong count for Volvo.", 1L, graphDatabaseContext.repositoryFor(Volvo.class).count()); + assertEquals("Wrong count for Toyota.", 1L, graphDatabaseContext.repositoryFor(Toyota.class).count()); + assertEquals("Wrong count for Car.", 2L, graphDatabaseContext.repositoryFor(Car.class).count()); } @Test @Transactional public void testCountClasses() { persistedPerson("Michael", 36); persistedPerson("David", 25); - assertEquals("Wrong Person instance count.", 2L, graphRepositoryFactory.createGraphRepository(Person.class).count()); + assertEquals("Wrong Person instance count.", 2L, graphDatabaseContext.repositoryFor(Person.class).count()); } diff --git a/spring-data-neo4j-aspects/src/test/resources/org/springframework/data/neo4j/aspects/support/Neo4jGraphPersistenceTest-context.xml b/spring-data-neo4j-aspects/src/test/resources/org/springframework/data/neo4j/aspects/support/Neo4jGraphPersistenceTest-context.xml index 3a8e343ea..c48edb69a 100644 --- a/spring-data-neo4j-aspects/src/test/resources/org/springframework/data/neo4j/aspects/support/Neo4jGraphPersistenceTest-context.xml +++ b/spring-data-neo4j-aspects/src/test/resources/org/springframework/data/neo4j/aspects/support/Neo4jGraphPersistenceTest-context.xml @@ -93,10 +93,6 @@ - - - - m return m", null).to(Node.class)); + } + + @Test + public void shouldFindNextNodeViaGremlin() throws Exception { + assertSingleResult(node1, template.execute("g.v(0).out", null).to(Node.class)); + } + + @Test + public void shouldGetDirectRelationship() throws Exception { + assertSingleResult("rel1", template.convert(referenceNode.getRelationships()).to(String.class, new RelationshipNameConverter())); + } + + @Test + public void shouldGetDirectRelationshipForType() throws Exception { + assertSingleResult("rel1", template.convert(referenceNode.getRelationships(KNOWS)).to(String.class, new RelationshipNameConverter())); + } + + @Test + public void shouldGetDirectRelationshipForTypeAndDirection() throws Exception { + assertSingleResult("rel1", template.convert(referenceNode.getRelationships(KNOWS, Direction.OUTGOING)).to(String.class, new RelationshipNameConverter())); + } + + private void assertSingleResult(T expected, Iterable iterable) { + Iterator result = iterable.iterator(); + assertEquals(expected, result.next()); + assertEquals(false, result.hasNext()); + } + + + @Test + public void shouldCreateRelationshipWithProperty() throws Exception { + Relationship relationship = template.createRelationship(referenceNode, node1, HAS, map("name", "rel2")); + assertNotNull(relationship); + assertEquals(referenceNode, relationship.getStartNode()); + assertEquals(node1, relationship.getEndNode()); + assertEquals(HAS.name(), relationship.getType().name()); + assertEquals("rel2", relationship.getProperty("name", "not set")); + } + + private static class PathRelationshipNameMapper implements ResultConverter { + @Override + public String convert(Path path, Class type) { + return (String) path.lastRelationship().getProperty("name", "not set"); + } + } + + private static class PathNodeNameMapper implements ResultConverter { + @Override + public String convert(Path path, Class type) { + return (String) path.endNode().getProperty("name", "not set"); + } + } + + private static class RelationshipNameConverter implements ResultConverter { + @Override + public String convert(Relationship value, Class type) { + return (String) value.getProperty("name"); + } + } + + private static class PropertyContainerNameConverter implements ResultConverter { + @Override + public String convert(PropertyContainer value, Class type) { + return (String) value.getProperty("name"); + } + } +} diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/template/NeoTraversalTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/template/NeoTraversalTest.java index 946e8c54b..a3049bdd8 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/template/NeoTraversalTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/template/NeoTraversalTest.java @@ -23,7 +23,7 @@ import org.neo4j.graphdb.RelationshipType; import org.neo4j.graphdb.traversal.TraversalDescription; import org.neo4j.kernel.Traversal; import org.springframework.data.neo4j.conversion.Handler; -import org.springframework.data.neo4j.conversion.QueryResult; +import org.springframework.data.neo4j.conversion.Result; import org.springframework.data.neo4j.core.GraphDatabase; import java.util.HashSet; @@ -52,7 +52,7 @@ public class NeoTraversalTest extends NeoApiTest { final Set resultSet = new HashSet(); @SuppressWarnings("deprecation") final TraversalDescription description = Traversal.description().relationships(HAS).filter(returnAllButStartNode()).prune(Traversal.pruneAfterDepth(2)); - final QueryResult queryResult = template.traverse(template.getReferenceNode(), description); + final Result queryResult = template.traverse(template.getReferenceNode(), description); queryResult.handle(new Handler() { @Override public void handle(Path value) { diff --git a/spring-data-neo4j/src/test/resources/repository-namespace-config-context.xml b/spring-data-neo4j/src/test/resources/template-config-context.xml similarity index 97% rename from spring-data-neo4j/src/test/resources/repository-namespace-config-context.xml rename to spring-data-neo4j/src/test/resources/template-config-context.xml index a691fcaf1..04368d9f2 100644 --- a/spring-data-neo4j/src/test/resources/repository-namespace-config-context.xml +++ b/spring-data-neo4j/src/test/resources/template-config-context.xml @@ -12,4 +12,5 @@ + \ No newline at end of file diff --git a/src/docbkx/reference/neo4j-server.xml b/src/docbkx/reference/neo4j-server.xml index bcea90f35..6fac91d19 100644 --- a/src/docbkx/reference/neo4j-server.xml +++ b/src/docbkx/reference/neo4j-server.xml @@ -49,7 +49,7 @@ public HelloWorldInitializer() { super(new String[]{"spring/helloWorldServer-Context.xml"}, Pair.of("worldRepository", WorldRepository.class), - Pair.of("graphRepositoryFactory", GraphRepositoryFactory.class)); + Pair.of("template", Neo4jTemplate.class)); } } ]]> diff --git a/src/docbkx/reference/programming-model/indexing.xml b/src/docbkx/reference/programming-model/indexing.xml index 28af3122f..8c589af90 100644 --- a/src/docbkx/reference/programming-model/indexing.xml +++ b/src/docbkx/reference/programming-model/indexing.xml @@ -45,8 +45,7 @@ class Person { @Indexed int age; } -GraphRepository graphRepository = graphRepositoryFactory - .createGraphRepository(Person.class); +GraphRepository graphRepository = template.repositoryFor(Person.class); // Exact match, in named index Person mark = graphRepository.findByPropertyValue("people", "name", "mark"); @@ -84,8 +83,8 @@ class Person { @Indexed(indexName = "people-search", fulltext=true) String name; } -GraphRepository graphRepository = graphRepositoryFactory - .createGraphRepository(Person.class); +GraphRepository graphRepository = + template.repositoryFor(Person.class); Person mark = graphRepository.findAllByQuery("people-search", "name", "ma*"); ]]> diff --git a/src/docbkx/reference/programming-model/repositories.xml b/src/docbkx/reference/programming-model/repositories.xml index c73b1dc64..a5c8922f3 100644 --- a/src/docbkx/reference/programming-model/repositories.xml +++ b/src/docbkx/reference/programming-model/repositories.xml @@ -201,8 +201,8 @@ Using GraphRepositories - graphRepository = graphRepositoryFactory - .createGraphRepository(Person.class); + graphRepository = template + .repositoryFor(Person.class); Person michael = graphRepository.save(new Person("Michael", 36)); diff --git a/src/docbkx/tutorial/indexing.xml b/src/docbkx/tutorial/indexing.xml index 59a8349da..9b3b85bc4 100644 --- a/src/docbkx/tutorial/indexing.xml +++ b/src/docbkx/tutorial/indexing.xml @@ -18,13 +18,13 @@ int year; } -@Autowired DirectGraphRepositoryFactory graphRepositoryFactory; +@Autowired Neo4jTemplate template; @Test public void persistedMovieShouldBeRetrievableFromGraphDb() { int id = 1; Movie forrestGump = new Movie(id, "Forrest Gump", 1994).persist(); GraphRepository movieRepository = - graphRepositoryFactory.createGraphRepository(Movie.class); + template.repositoryFor(Movie.class); Movie retrievedMovie = movieRepository.findByPropertyValue("id", id); assertEqual("retrieved movie matches persisted one", forrestGump, retrievedMovie); assertEqual("retrieved movie title matches", "Forrest Gump", retrievedMovie.getTitle());