package net.codjo.control.server.handler;
import net.codjo.control.common.util.FilterConstants;
import net.codjo.datagen.DatagenFixture;
import net.codjo.datagen.DatagenFixture.DatagenInput;
import net.codjo.util.file.FileUtil;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static net.codjo.test.common.matcher.JUnitMatchers.*;
/**
*
*/
public class DatagenConsistencyTest {
private DatagenFixture datagen = new DatagenFixture(DatagenConsistencyTest.class,
DatagenInput.resource("entityFile.xml"));
@Test
public void test_generation() throws Exception {
datagen.generate();
String handlerContent =
FileUtil.loadContent(datagen.getHandlerFile("com/mycompany/SelectAllQUserBookWithParametersHandler.java"));
assertThat(FilterConstants.ALL,
describedAs(
"This constant must be 'Tout' because the value is defined in datagen and control (cf. query built for user-quarantine and FilterValueConverter)",
is("Tout")));
assertContains(handlerContent,
"select QUARANTINE_ID,TITLE from Q_AP_USER_BOOK where (TITLE = ? or ? = 'Tout')",
"query.setString(1, net.codjo.control.server.handler.FilterValueConverter.convertFromStringValue(String.class, (String) pks.get(\"title\")));",
"query.setString(2, net.codjo.control.server.handler.FilterValueConverter.convertFromStringValue(String.class, (String) pks.get(\"title\")));");
// TODO faire un test avec
// <field name="creationDatetime" type="java.sql.Timestamp">
// <description>Import date</description>
// <sql type="timestamp"/>
// </field>
// car ca plante...
}
private static void assertContains(String handlerContent, String... expecteds) {
for (String expected : expecteds) {
assertThat(handlerContent,
containsString(expected));
}
}
@Before
public void setUp() throws Exception {
datagen.doSetUp();
}
@After
public void tearDown() throws Exception {
datagen.doTearDown();
}
}