From 98944fb0699097a91c20b6fe034a0fa61aa3cba2 Mon Sep 17 00:00:00 2001 From: Michael Hunger Date: Sun, 16 Oct 2011 04:00:55 +0200 Subject: [PATCH] restructuring tests + aspect location --- spring-data-neo4j-aspects/pom.xml | 100 +++++++++-------- .../aspects/support/node/Neo4jNodeBacking.aj | 1 + .../relationship/Neo4jRelationshipBacking.aj | 0 .../neo4j/aspects/support/EntityTestBase.java | 103 ++++++++++++++++++ 4 files changed, 156 insertions(+), 48 deletions(-) rename spring-data-neo4j-aspects/src/main/{java => aspect}/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj (99%) rename spring-data-neo4j-aspects/src/main/{java => aspect}/org/springframework/data/neo4j/aspects/support/relationship/Neo4jRelationshipBacking.aj (100%) create mode 100644 spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/EntityTestBase.java diff --git a/spring-data-neo4j-aspects/pom.xml b/spring-data-neo4j-aspects/pom.xml index 61a815c57..e52235723 100644 --- a/spring-data-neo4j-aspects/pom.xml +++ b/spring-data-neo4j-aspects/pom.xml @@ -44,11 +44,6 @@ org.springframework.data spring-data-neo4j - test-jar - - - org.springframework.data - spring-data-neo4j ${project.version} test-jar @@ -215,49 +210,58 @@ - - org.codehaus.mojo - aspectj-maven-plugin - 1.2 - - - org.aspectj - aspectjrt - ${aspectj.version} - - - org.aspectj - aspectjtools - ${aspectj.version} - - - - - - compile - test-compile - - - - - - - true - - - org.springframework - spring-aspects - - - - 1.6 - 1.6 - - - + + org.codehaus.mojo + aspectj-maven-plugin + 1.2 + + + org.aspectj + aspectjrt + ${aspectj.version} + + + org.aspectj + aspectjtools + ${aspectj.version} + + + + + + true + + + org.springframework + spring-aspects + + + 1.6 + 1.6 + + + + default-compile + + compile + + + + test-compile + + test-compile + + + + + org.apache.maven.plugins maven-jar-plugin diff --git a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj b/spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj similarity index 99% rename from spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj rename to spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj index 20bbae650..bccf5f01c 100644 --- a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj +++ b/spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/node/Neo4jNodeBacking.aj @@ -16,6 +16,7 @@ package org.springframework.data.neo4j.aspects.support.node; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.aspectj.lang.JoinPoint; diff --git a/spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/support/relationship/Neo4jRelationshipBacking.aj b/spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/relationship/Neo4jRelationshipBacking.aj similarity index 100% rename from spring-data-neo4j-aspects/src/main/java/org/springframework/data/neo4j/aspects/support/relationship/Neo4jRelationshipBacking.aj rename to spring-data-neo4j-aspects/src/main/aspect/org/springframework/data/neo4j/aspects/support/relationship/Neo4jRelationshipBacking.aj 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 new file mode 100644 index 000000000..cc0373706 --- /dev/null +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/EntityTestBase.java @@ -0,0 +1,103 @@ +/** + * Copyright 2011 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +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.neo4j.graphdb.*; +import org.springframework.beans.factory.annotation.Autowired; +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; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * @author mh + * @since 15.10.11 + */ +public class EntityTestBase { + protected final Log log = LogFactory.getLog(getClass()); + + @Autowired protected GraphDatabaseContext graphDatabaseContext; + @Autowired protected ConversionService conversionService; + + @Autowired protected GraphDatabaseService graphDatabaseService; + + @Autowired protected DirectGraphRepositoryFactory graphRepositoryFactory; + + @Autowired protected PersonRepository personRepository; + @Autowired protected GroupRepository groupRepository; + @Autowired protected FriendshipRepository friendshipRepository; + protected TestTeam testTeam; + + @Before + public void createTeam() throws Exception { + testTeam = new TestTeam(graphDatabaseContext); + } + + protected Node getNodeState(Object entity) { + return graphDatabaseContext.getPersistentState(entity); + } + protected Long getNodeId(Object entity) { + final Node node = graphDatabaseContext.getPersistentState(entity); + return node == null ? null : node.getId(); + } + protected Long getRelationshipId(Object entity) { + final Relationship rel = graphDatabaseContext.getPersistentState(entity); + return rel == null ? null : rel.getId(); + } + + protected boolean hasPersistentState(Object entity) { + return graphDatabaseContext.getPersistentState(entity)!=null; + } + + protected Relationship getRelationshipState(Object entity) { + return graphDatabaseContext.getPersistentState(entity); + } + + @SuppressWarnings("unchecked") + public T persist(T entity) { + return (T) graphDatabaseContext.save(entity); + } + + protected Set set(T... values) { + return new HashSet(Arrays.asList(values)); + } + + protected void manualCleanDb() { + Transaction tx = graphDatabaseService.beginTx(); + try { + cleanDb(); + tx.success(); + } finally { + tx.finish(); + } + } + + @BeforeTransaction + public void cleanDb() { + Neo4jHelper.cleanDb(graphDatabaseContext); + } +}