/**
* Copyright (C) Intersect 2012.
*
* This module contains Proprietary Information of Intersect,
* and should be treated as Confidential.
*/
package au.org.intersect.exsite9.dao;
import static org.junit.Assert.*;
import javax.persistence.EntityManager;
import org.junit.Test;
import au.org.intersect.exsite9.domain.Schema;
/**
* Tests {@link SchemaDAO}
*/
public final class SchemaDAOUnitTest extends DAOTest
{
@Test
public void testCreateSchema()
{
final EntityManager em = createEntityManager();
final SchemaDAO toTest = new SchemaDAO(em);
final Schema schema = new Schema("name", "desc", "namespaceURL", Boolean.valueOf(false));
assertNull(schema.getId());
toTest.createSchema(schema);
assertNotNull(schema.getId());
}
@Test
public void testUpdateSchema()
{
final EntityManager em = createEntityManager();
final SchemaDAO toTest = new SchemaDAO(em);
final Schema schema = new Schema("name", "desc", "namespaceURL", Boolean.valueOf(false));
assertNull(schema.getId());
toTest.createSchema(schema);
assertNotNull(schema.getId());
assertEquals(schema, em.find(Schema.class, schema.getId()));
final String newDescription = "some new description";
schema.setDescription(newDescription);
toTest.updateSchema(schema);
assertEquals(newDescription, em.find(Schema.class, schema.getId()).getDescription());
}
@Test
public void testDelete()
{
final EntityManager em = createEntityManager();
final SchemaDAO toTest = new SchemaDAO(em);
final Schema schema = new Schema("name", "desc", "namespaceURL", Boolean.valueOf(false));
assertNull(schema.getId());
toTest.createSchema(schema);
assertNotNull(schema.getId());
assertEquals(schema, em.find(Schema.class, schema.getId()));
toTest.delete(schema);
assertNull(em.find(Schema.class, schema.getId()));
}
}