package net.codjo.dataprocess.server.dao;
import net.codjo.database.common.api.JdbcFixture;
import net.codjo.datagen.DatagenFixture;
import net.codjo.dataprocess.common.context.DataProcessContext;
import net.codjo.dataprocess.server.util.TestUtils;
import net.codjo.test.common.fixture.CompositeFixture;
import net.codjo.tokio.TokioFixture;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import static net.codjo.test.common.matcher.JUnitMatchers.*;
/**
*
*/
public class ContextDaoTest {
private static final TokioFixture TOKIO = new TokioFixture(ContextDaoTest.class);
private static final DatagenFixture DATAGEN = new DatagenFixture(ContextDaoTest.class);
private static final CompositeFixture COMPOSITE_FIXTURE = new CompositeFixture(TOKIO, DATAGEN);
@BeforeClass
public static void beforeClass() throws Exception {
COMPOSITE_FIXTURE.doSetUp();
JdbcFixture jdbcFixture = TOKIO.getJdbcFixture();
jdbcFixture.advanced().dropAllObjects();
try {
DATAGEN.generate();
TestUtils.initScript(jdbcFixture, DATAGEN, "PM_DP_CONTEXT.tab");
}
catch (Exception e) {
COMPOSITE_FIXTURE.doTearDown();
fail(e.getLocalizedMessage());
}
}
@AfterClass
public static void afterClass() throws Exception {
COMPOSITE_FIXTURE.doTearDown();
}
@Test
public void saveContext() throws Exception {
TOKIO.insertInputInDb("CONTEXT");
DataProcessContext context = new DataProcessContext();
context.setProperty("KEY1", "VALUE10");
context.setProperty("K1", "V1");
context.setProperty("K2", "V2");
context.setProperty("K3", "V3");
new ContextDao().saveContext(TOKIO.getConnection(), "REPO1", context.encode());
TOKIO.assertAllOutputs("CONTEXT");
}
@Test
public void loadDataProcessContextByContextName() throws Exception {
TOKIO.insertInputInDb("CONTEXT");
DataProcessContext context
= new ContextDao().getDataProcessContext(TOKIO.getConnection(), "REPO1");
assertThat(context.getProperty("KEY1"), equalTo("VALUE1"));
assertThat(context.getProperty("KEY2"), equalTo("VALUE2"));
}
}