Package org.hibernate.ogm.datastore.neo4j.test.mapping

Source Code of org.hibernate.ogm.datastore.neo4j.test.mapping.UnidirectionalManyToOneTest

/*
* 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 java.util.HashMap;
import java.util.Map;

import javax.persistence.EntityManager;

import org.hibernate.ogm.backendtck.associations.manytoone.JUG;
import org.hibernate.ogm.backendtck.associations.manytoone.Member;
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 {
    getTransactionManager().begin();
    final EntityManager em = getFactory().createEntityManager();

    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 );
    commitOrRollback( true );
    em.close();
  }

  @Test
  public void testMapping() throws Exception {
    assertNumberOfNodes( 3 );
    assertRelationships( 2 );

    String jugNode = "(jug:JUG:ENTITY {jug_id: {jug}.jug_id, name: {jug}.name })";
    String emmanuelNode = "(e:Member:ENTITY {member_id: {e}.member_id, name: {e}.name})";
    String jeromeNode = "(j:Member:ENTITY {member_id: {j}.member_id, name: {j}.name})";

    Map<String, Object> jugProperties = new HashMap<String, Object>();
    jugProperties.put( "jug_id", jug.getId() );
    jugProperties.put( "name", jug.getName() );

    Map<String, Object> emmanuelProperties = new HashMap<String, Object>();
    emmanuelProperties.put( "member_id", emmanuel.getId() );
    emmanuelProperties.put( "name", emmanuel.getName() );

    Map<String, Object> jeromeProperties = new HashMap<String, Object>();
    jeromeProperties.put( "member_id", jerome.getId() );
    jeromeProperties.put( "name", jerome.getName() );

    Map<String, Object> params = new HashMap<String, Object>();
    params.put( "jug", jugProperties );
    params.put( "e", emmanuelProperties );
    params.put( "j", jeromeProperties );

    assertExpectedMapping( "jug", jugNode, params );
    assertExpectedMapping( "e", emmanuelNode, params );
    assertExpectedMapping( "j", jeromeNode, params );
    assertExpectedMapping( "r", jugNode + " - [r:memberOf] - " + emmanuelNode, params );
    assertExpectedMapping( "r", jugNode + " - [r:memberOf] - " + jeromeNode, params );
  }

  @Override
  public Class<?>[] getEntities() {
    return new Class[] { JUG.class, Member.class };
  }

}
TOP

Related Classes of org.hibernate.ogm.datastore.neo4j.test.mapping.UnidirectionalManyToOneTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.