From 91aee61d676e4c3457ebfe326566433bdc9988dd Mon Sep 17 00:00:00 2001 From: Nicki Watt Date: Sun, 16 Mar 2014 03:19:08 +0000 Subject: [PATCH] DATAGRAPH-449 Updated setup and type representation strategy reference docs --- ...verrideTypeRepresentationStrategyTest.java | 96 ++++ .../classNameAliasOverride-context.xml | 19 + .../neo4j/config/BasicJavaConfigTest.java | 51 +++ .../neo4j/config/spring/BasicJavaConfig.java | 23 + ...dForIndexedBasedTRSViaJavaConfigTests.java | 417 ++++++++++++++++++ ...DataGraphNamespaceHandlerTests-context.xml | 6 +- ...rMethodForIndexedBasedTRSTests-context.xml | 4 +- .../typerepresentationstrategy.xml | 80 +++- src/docbkx/reference/setup.xml | 139 ++++-- 9 files changed, 779 insertions(+), 56 deletions(-) create mode 100644 spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/typerepresentation/AliasOverrideTypeRepresentationStrategyTest.java create mode 100644 spring-data-neo4j-aspects/src/test/resources/org/springframework/data/neo4j/aspects/support/classNameAliasOverride-context.xml create mode 100644 spring-data-neo4j/src/test/java/org/springframework/data/neo4j/config/BasicJavaConfigTest.java create mode 100644 spring-data-neo4j/src/test/java/org/springframework/data/neo4j/config/spring/BasicJavaConfig.java create mode 100644 spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/query/DerivedFinderMethodForIndexedBasedTRSViaJavaConfigTests.java diff --git a/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/typerepresentation/AliasOverrideTypeRepresentationStrategyTest.java b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/typerepresentation/AliasOverrideTypeRepresentationStrategyTest.java new file mode 100644 index 000000000..4f51e1ff8 --- /dev/null +++ b/spring-data-neo4j-aspects/src/test/java/org/springframework/data/neo4j/aspects/support/typerepresentation/AliasOverrideTypeRepresentationStrategyTest.java @@ -0,0 +1,96 @@ +package org.springframework.data.neo4j.aspects.support.typerepresentation; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.neo4j.graphdb.*; +import org.neo4j.helpers.collection.IteratorUtil; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.data.neo4j.aspects.core.NodeBacked; +import org.springframework.data.neo4j.aspects.support.domain.*; +import org.springframework.data.neo4j.support.Neo4jTemplate; + +import java.util.Collection; + +import static org.hamcrest.CoreMatchers.hasItems; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertNotNull; + +/** + * @author Nicki Watt + * @since 15.04.2014 + */ +public class AliasOverrideTypeRepresentationStrategyTest { + + protected GraphDatabaseService graphDatabaseService; + protected Neo4jTemplate neo4jTemplate; + protected ClassPathXmlApplicationContext applicationContext; + + private void setupDefaultAppCtx() { + applicationContext = new ClassPathXmlApplicationContext( + "org/springframework/data/neo4j/aspects/support/LabelBasedIndexedPropertyEntityTests-context-basic.xml"); + applicationContext.registerShutdownHook(); + applicationContext.refresh(); + graphDatabaseService = applicationContext.getBean(GraphDatabaseService.class); + neo4jTemplate = applicationContext.getBean(Neo4jTemplate.class); + } + + private void setupOverrideAppCtx() { + applicationContext = new ClassPathXmlApplicationContext( + "org/springframework/data/neo4j/aspects/support/classNameAliasOverride-context.xml"); + applicationContext.registerShutdownHook(); + applicationContext.refresh(); + graphDatabaseService = applicationContext.getBean(GraphDatabaseService.class); + neo4jTemplate = applicationContext.getBean(Neo4jTemplate.class); + } + + @After + public void tearDown() { + if (applicationContext != null) applicationContext.stop(); + } + + @Test + public void testSimpleNameUsedForDefaultTRS() { + setupDefaultAppCtx(); + String simpleLabelName = Thing.class.getSimpleName(); + testExpectedNameAppliedForLabelTRS(simpleLabelName); + } + + @Test + public void testFQDNNameUsedForOverridenTRS() { + setupOverrideAppCtx(); + String fqdnLabelName = Thing.class.getName(); + testExpectedNameAppliedForLabelTRS(fqdnLabelName); + } + + public void testExpectedNameAppliedForLabelTRS(String expectedLabelName) { + // Given I create a Node Entity and it is saved into the graph + // And I verify this by ensuring the nodeId is present + Thing thing = createThing(graphDatabaseService); + Long savedNodeId = ((NodeBacked) thing).getNodeId(); + assertNotNull("Node Id Should have been assigned as part of persist call ",savedNodeId); + + // When I get all the labels from this Node + // Then I expect to find the two appropriate TRS based labels + try (Transaction tx = graphDatabaseService.beginTx()) { + Node retrievedNode = neo4jTemplate.getNode(savedNodeId); + Collection