package org.reunionemu.jreunion.server.database.model;
import static org.junit.Assert.*;
import static org.junit.Assume.*;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.reunionemu.jreunion.dao.QuestDao;
import org.reunionemu.jreunion.model.Quest;
import org.reunionemu.jreunion.model.jpa.test.CounterObjectiveStateEx;
import org.reunionemu.jreunion.model.jpa.test.DummyObjectiveState;
import org.reunionemu.jreunion.model.jpa.test.ObjectiveState;
import org.reunionemu.jreunion.model.jpa.test.QuestState;
import org.reunionemu.jreunion.model.quests.Objective;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath*:/spring/**/*-context.xml",
"classpath*:/spring/**/*-context-test.xml"})
public class PolymorphismTest {
private EntityManager entityManager;
@Autowired
private EntityManagerFactory emf;
@Autowired
QuestDao questDao;
@Test
public void test() {
entityManager = emf.createEntityManager();
Quest quest = questDao.findById(1);
assumeNotNull(quest);
System.out.println("test");
QuestState state = new QuestState(quest);
assertNotNull(state.questDao);
entityManager.getTransaction().begin();
Objective objective = quest.getObjectives().get(0);
assumeNotNull(objective);
ObjectiveState obj1 = new CounterObjectiveStateEx(state, objective, 10);
ObjectiveState obj2 = new DummyObjectiveState(state, objective, "dummy value");
//entityManager.persist(obj);
state.getObjectives().add(obj1);
state.getObjectives().add(obj2);
entityManager.persist(state);
entityManager.getTransaction().commit();
entityManager = emf.createEntityManager();;
state = entityManager.find(QuestState.class, state.id);
assertNotNull(state);
}
}