Package org.hibernate.ogm.test.integration.jboss

Source Code of org.hibernate.ogm.test.integration.jboss.ModuleMemberRegistrationScenario

/*
* 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.test.integration.jboss;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;

import javax.inject.Inject;

import org.hibernate.ogm.test.integration.jboss.controller.MemberRegistration;
import org.hibernate.ogm.test.integration.jboss.model.Address;
import org.hibernate.ogm.test.integration.jboss.model.Member;
import org.junit.After;
import org.junit.Test;

/**
* This class can be extended to execute this set of tests on the OGM module using different configurations or
* deployments.
*
* @author Davide D'Alto
*/
public abstract class ModuleMemberRegistrationScenario {

  @Inject
  MemberRegistration memberRegistration;

  @After
  public void closeEntityManager() {
    memberRegistration.close();
  }

  @Test
  public void shouldGenerateAnId() throws Exception {
    Member newMember = memberRegistration.getNewMember();
    newMember.setName( "Davide D'Alto" );
    memberRegistration.register();

    assertNotNull( newMember.getId() );
  }

  @Test
  public void shouldFindPersistedMemberById() throws Exception {
    Member newMember = memberRegistration.getNewMember();
    newMember.setName( "Peter O'Tall" );
    newMember.getAddresses().add( new Address( "Mulholland Drive", "Los Angeles" ) );
    memberRegistration.register();

    Member found = memberRegistration.find( newMember.getId() );

    assertNotNull( "Expected at least one result after the indexing", found );
    assertEquals( "Search hasn't found a new member", newMember.getName(), found.getName() );
    assertEquals( "Member should have one address", 1, found.getAddresses().size() );
    assertEquals(
        "Member should have address with correct street",
        "Mulholland Drive",
        found.getAddresses().iterator().next().getStreet()
    );
  }

  @Test
  public void shouldFindPersistedMemberByIdWithQuery() throws Exception {
    Member newMember = memberRegistration.getNewMember();
    newMember.setName( "Peter O'Tall" );
    newMember.getAddresses().add( new Address( "Mulholland Drive", "Los Angeles" ) );
    memberRegistration.register();

    Member found = memberRegistration.findWithQuery( newMember.getId() );

    assertNotNull( "Expected at least one result using HQL", found );
    assertEquals( "HQL hasn't found a new member", newMember.getName(), found.getName() );
    assertEquals( "Member should have one address", 1, found.getAddresses().size() );
    assertEquals(
        "Member should have address with correct street",
        "Mulholland Drive",
        found.getAddresses().iterator().next().getStreet()
    );
  }

  @Test
  public void shouldBeAbleToFindMemberByEmail() throws Exception {
    Member newMember = memberRegistration.getNewMember();
    newMember.setName( "Sherlock Holmes" );
    newMember.setEmail( "SherlockHolmes@consultingdetective.co.uk" );
    newMember.getAddresses().add( new Address( "221B Baker St", "London" ) );
    memberRegistration.register();

    Member found = memberRegistration.findWithEmail( "she*" );

    assertNotNull( "Expected at least one result using Full text query", found );
    assertEquals( "Full text query hasn't found a new member", newMember.getName(), found.getName() );
    assertEquals( "Member should have one address", 1, found.getAddresses().size() );
    assertEquals(
        "Member should have address with correct street",
        "221B Baker St",
        found.getAddresses().iterator().next().getStreet()
    );
  }

  @Test
  public void shouldReturnNullWhenIdDoesNotExist() throws Exception {
    Member found = memberRegistration.find( -12L );

    assertNull( "Should return null when the id doesn't exist", found );
  }
}
TOP

Related Classes of org.hibernate.ogm.test.integration.jboss.ModuleMemberRegistrationScenario

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.