package org.etk.component.orm.test.orm;
import org.etk.component.orm.test.AbstractTestCase;
import org.etk.orm.api.ORMSessionImpl;
import org.etk.orm.api.Status;
import org.etk.orm.core.DomainSession;
import org.etk.orm.core.EntityContext;
import org.etk.orm.core.ObjectContext;
public class CreateTestCase extends AbstractTestCase {
@Override
protected void createDomain() {
addClass(AClass.class);
}
public void testCreate() throws Exception {
DomainSession session = domainLogin();
ObjectContext ctx = session.create(AClass.class, null);
assertEquals(EntityContext.class, ctx.getClass());
assertEquals(Status.TRANSIENT, ctx.getStatus());
assertEquals("foo", ctx.getMapper().getNodeTypeName());
assertTrue(ctx.getObject() instanceof AClass);
assertNull(ctx.getTypeInfo());
assertSame(session, ctx.getSession());
}
public void testCreateNamed() throws Exception {
DomainSession session = domainLogin();
ObjectContext ctx = session.create(AClass.class, "aclass");
assertEquals(EntityContext.class, ctx.getClass());
assertEquals(Status.TRANSIENT, ctx.getStatus());
assertEquals("foo", ctx.getMapper().getNodeTypeName());
assertNull(ctx.getTypeInfo());
assertSame(session, ctx.getSession());
}
public void testCreateThrowsNPE() throws Exception {
DomainSession session = domainLogin();
try {
session.create(null, "aclass");
fail();
} catch (NullPointerException ignore) {
}
}
private DomainSession domainLogin() {
ORMSessionImpl session = login();
return session.getDomainSession();
}
}