/* * 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.testcase; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.util.GregorianCalendar; import java.util.List; import javax.inject.Inject; import org.hibernate.ogm.test.integration.testcase.controller.MagicCardsCollectionBean; import org.hibernate.ogm.test.integration.testcase.model.MagicCard; import org.junit.Test; /** * Base class containing some tests which use Hibernate Search too. * Needs to be extended to become a concrete Arquillian test and define * deployment descriptors. */ public abstract class MagiccardsDatabaseScenario { @Inject MagicCardsCollectionBean cardsCollection; @Test public void shouldGenerateAnId() throws Exception { MagicCard card = makeADragon(); cardsCollection.storeCard( card ); assertNotNull( card.getId() ); } @Test public void shouldFindCardById() throws Exception { MagicCard card = makeADragon(); cardsCollection.storeCard( card ); assertNotNull( card.getId() ); MagicCard loaded = cardsCollection.loadById( card.getId() ); assertEquals( card.getName(), loaded.getName() ); assertEquals( Integer.valueOf( 5 ), loaded.getPower() ); assertEquals( "4RR", loaded.getManacost() ); } @Test public void shouldFindCardByName() throws Exception { cardsCollection.storeCard( makeADragon() ); cardsCollection.storeCard( makeADragonWelp() ); List<MagicCard> results = cardsCollection.findByName( "Shivan Dragon" ); assertEquals( 1, results.size() ); MagicCard loaded = results.get( 0 ); assertEquals( "Shivan Dragon", loaded.getName() ); assertEquals( Integer.valueOf( 5 ), loaded.getPower() ); assertEquals( "4RR", loaded.getManacost() ); } private MagicCard makeADragon() { MagicCard shivan = new MagicCard(); shivan.setName( "Shivan Dragon" ); shivan.setArtist( "Melissa Benson" ); shivan.setManacost( "4RR" ); shivan.setPower( 5 ); shivan.setThoughness( 5 ); shivan.setPublicationDate( new GregorianCalendar( 1993, 8, 5 ).getTime() ); return shivan; } private MagicCard makeADragonWelp() { MagicCard welp = new MagicCard(); welp.setName( "Dragon Welp" ); welp.setArtist( "Amy Weber" ); welp.setManacost( "2RR" ); welp.setPower( 2 ); welp.setThoughness( 3 ); welp.setPublicationDate( new GregorianCalendar( 1993, 8, 5 ).getTime() ); return welp; } }