/* * Hibernate OGM, Domain model persistence for NoSQL datastores * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.ogm.datastore.neo4j.test.mapping; import static org.hibernate.ogm.datastore.neo4j.dialect.impl.NodeLabel.ENTITY; import static org.hibernate.ogm.datastore.neo4j.test.dsl.GraphAssertions.node; import javax.persistence.EntityManager; import org.hibernate.ogm.backendtck.associations.manytoone.JUG; import org.hibernate.ogm.backendtck.associations.manytoone.Member; import org.hibernate.ogm.datastore.neo4j.test.dsl.NodeForGraphAssertions; import org.hibernate.ogm.datastore.neo4j.test.dsl.RelationshipsChainForGraphAssertions; import org.junit.Before; import org.junit.Test; /** * @author Davide D'Alto */ public class UnidirectionalManyToOneTest extends Neo4jJpaTestCase { private JUG jug; private Member emmanuel; private Member jerome; @Before public void prepareDb() throws Exception { final EntityManager em = getFactory().createEntityManager(); em.getTransaction().begin(); jug = new JUG( "summer_camp" ); jug.setName( "JUG Summer Camp" ); em.persist( jug ); emmanuel = new Member( "emmanuel" ); emmanuel.setName( "Emmanuel Bernard" ); emmanuel.setMemberOf( jug ); jerome = new Member( "jerome" ); jerome.setName( "Jerome" ); jerome.setMemberOf( jug ); em.persist( emmanuel ); em.persist( jerome ); em.getTransaction().commit(); em.close(); } @Test public void testMapping() throws Exception { NodeForGraphAssertions jugNode = node( "jug", JUG.class.getSimpleName(), ENTITY.name() ) .property( "jug_id", jug.getId() ) .property( "name", jug.getName() ); NodeForGraphAssertions emmanuelNode = node( "emmanuel", Member.class.getSimpleName(), ENTITY.name() ) .property( "member_id", emmanuel.getId() ) .property( "name", emmanuel.getName() ); NodeForGraphAssertions jeromeNode = node( "jerome", Member.class.getSimpleName(), ENTITY.name() ) .property( "member_id", jerome.getId() ) .property( "name", jerome.getName() ); RelationshipsChainForGraphAssertions relationship1 = emmanuelNode.relationshipTo( jugNode, "memberOf" ); RelationshipsChainForGraphAssertions relationship2 = jeromeNode.relationshipTo( jugNode, "memberOf" ); assertThatOnlyTheseNodesExist( jugNode, emmanuelNode, jeromeNode ); assertThatOnlyTheseRelationshipsExist( relationship1, relationship2 ); } @Override public Class<?>[] getAnnotatedClasses() { return new Class[] { JUG.class, Member.class }; } }