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

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

/*
* 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.compositeid.Director;
import org.hibernate.ogm.backendtck.associations.compositeid.Tournament;
import org.hibernate.ogm.backendtck.associations.compositeid.TournamentId;
import org.junit.Before;
import org.junit.Test;

/**
* Tests for the mapping of associations with composite ids.
*
* @author Gunnar Morling
*/
public class ReferencedCompositeIdTest extends Neo4jJpaTestCase {

  @Before
  public void prepareDb() throws Exception {
    getTransactionManager().begin();
    EntityManager em = getFactory().createEntityManager();

    Tournament britishOpen = new Tournament( new TournamentId( "US", "123" ), "British Open" );
    Tournament playersChampionship = new Tournament( new TournamentId( "US", "456" ), "Player's Championship" );
    em.persist( britishOpen );
    em.persist( playersChampionship );

    Director bob = new Director( "bob", "Bob", playersChampionship );
    em.persist( bob );

    commitOrRollback( true );
    em.close();
  }

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

    String director = "(d:Director:ENTITY { id: {d}.id, name: {d}.name })";
    String britishOpen = "(b:Tournament:ENTITY { `id.countryCode`: {b}.`id.countryCode`, `id.sequenceNo`: {b}.`id.sequenceNo`, name: {b}.name })";
    String players = "(p:Tournament:ENTITY { `id.countryCode`: {p}.`id.countryCode`, `id.sequenceNo`: {p}.`id.sequenceNo`, name: {p}.name })";

    Map<String, Object> directorProperties = new HashMap<String, Object>();
    directorProperties.put( "id", "bob" );
    directorProperties.put( "name", "Bob" );

    Map<String, Object> britishOpenProperties = new HashMap<String, Object>();
    britishOpenProperties.put( "id.countryCode", "US" );
    britishOpenProperties.put( "id.sequenceNo", "123" );
    britishOpenProperties.put( "name", "British Open" );

    Map<String, Object> playersProperties = new HashMap<String, Object>();
    playersProperties.put( "id.countryCode", "US" );
    playersProperties.put( "id.sequenceNo", "456" );
    playersProperties.put( "name", "Player's Championship" );

    Map<String, Object> params = new HashMap<String, Object>();
    params.put( "d", directorProperties );
    params.put( "b", britishOpenProperties );
    params.put( "p", playersProperties );

    assertExpectedMapping( "d", director, params );
    assertExpectedMapping( "b", britishOpen, params );
    assertExpectedMapping( "p", players, params );
    assertExpectedMapping( "r", director + " - [r:directedTournament] - " + players, params );
  }

  @Override
  public Class<?>[] getEntities() {
    return new Class<?>[] { Director.class, Tournament.class, TournamentId.class };
  }
}
TOP

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

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.