package org.obridge.mappers;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.obridge.BaseTest;
import org.obridge.dao.ProcedureDao;
import org.obridge.dao.TypeDao;
import org.obridge.model.data.Procedure;
import org.obridge.model.generator.Pojo;
import org.obridge.model.generator.PojoField;
import org.obridge.util.MustacheRunner;
import java.util.List;
public class PojoMapperTest extends BaseTest {
private static final String SAMPLE_TYPE_ONE = "SAMPLE_TYPE_ONE";
private TypeDao typeDao;
private ProcedureDao procedureDao;
@Before
public void init2() {
typeDao = new TypeDao(ds);
procedureDao = new ProcedureDao(ds);
}
@Test
public void testToPojo() {
Pojo pojo = PojoMapper.typeToPojo(SAMPLE_TYPE_ONE, typeDao.getTypeAttributes(SAMPLE_TYPE_ONE));
Assert.assertEquals("SampleTypeOne", pojo.getClassName());
Assert.assertEquals(9, pojo.getFields().size());
for (PojoField f : pojo.getFields()) {
Assert.assertFalse(f.isReadonly());
}
MustacheRunner.build("pojo.mustache", pojo);
}
@Test
public void testToPojo2() {
List<Procedure> simple_procedures = procedureDao.getAllProcedure("SIMPLE_PROCEDURES", null);
Procedure ppp = null;
for (Procedure pp : simple_procedures) {
if (pp.getProcedureName().equals("OVERLOAD") && pp.getOverload().equals("2")) {
ppp = pp;
}
}
Pojo pojo = PojoMapper.procedureToPojo(ppp);
Assert.assertEquals("SimpleProceduresOverload2", pojo.getClassName());
Assert.assertEquals(1, pojo.getFields().size());
}
@Test
public void testToPojo3() {
List<Procedure> simple_procedures = procedureDao.getAllProcedure("SIMPLE_PROCEDURES", null);
Procedure ppp = null;
for (Procedure pp : simple_procedures) {
if (pp.getProcedureName().equals("SIMPLE_FUNC") && pp.getOverload().equals("")) {
ppp = pp;
}
}
Pojo pojo = PojoMapper.procedureToPojo(ppp);
Assert.assertEquals("SimpleProceduresSimpleFunc", pojo.getClassName());
Assert.assertEquals(4, pojo.getFields().size());
MustacheRunner.build("pojo.mustache", pojo);
}
}