/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.dataprocess.common.context;
import java.util.HashMap;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import static net.codjo.test.common.matcher.JUnitMatchers.*;
/**
*
*/
public class DataProcessContextTest {
private DataProcessContext context;
@Before
public void before() {
context = new DataProcessContext();
}
@Test
public void setPropertyLocalArgument() {
context.setPropertyLocalArgument("tableResult", "T_RESULTAT", 1, "maList d'ex�cution");
assertThat("T_RESULTAT", equalTo(context.getProperty("1.maList d'ex�cution.tableResult")));
assertThat("{1.maList d'ex�cution.tableResult=T_RESULTAT}", equalTo(context.toString()));
}
@Test
public void setProperty() {
context.setProperty("k1", "v1");
context.setProperty("k2", "v2");
context.setProperty("k3", "v3");
context.setProperty("k4", " ");
context.setProperty("k5", "");
context.setProperty("k6", null);
assertThat(context.size(), equalTo(3));
assertThat(context.getProperty("k4"), equalTo(null));
assertThat(context.getProperty("k5"), equalTo(null));
assertThat(context.getProperty("k6"), equalTo(null));
assertThat(context.getProperty("k3"), equalTo("v3"));
assertThat(context.getProperty("k1"), equalTo("v1"));
assertThat(context.getProperty("k2"), equalTo("v2"));
context.setProperty("k1", "");
context.setProperty("k2", " ");
context.setProperty("k3", null);
assertThat(context.size(), equalTo(0));
assertThat("{}", equalTo(context.toString()));
}
@Test
public void putAll() {
context.setProperty("k1", "v1");
context.setProperty("k2", "v2");
context.setProperty("k3", "v2");
Map<String, String> map = new HashMap<String, String>();
map.put("k1", "");
map.put("k2", " ");
map.put("k3", "v3");
map.put("k4", "v4");
context.putAll(map);
assertThat(context.size(), equalTo(2));
assertThat(context.getProperty("k4"), equalTo("v4"));
assertThat(context.getProperty("k3"), equalTo("v3"));
}
@Test
public void clone1() throws CloneNotSupportedException {
context.setProperty("k1", "v1");
context.setProperty("k2", "v2");
context.setProperty("k3", "v3");
DataProcessContext dataProcessContext = context.clone();
assertThat(dataProcessContext.size(), equalTo(3));
assertThat(dataProcessContext.getProperty("k1"), equalTo("v1"));
assertThat(dataProcessContext.getProperty("k2"), equalTo("v2"));
assertThat(dataProcessContext.getProperty("k3"), equalTo("v3"));
context.setProperty("k4", "v4");
assertThat(dataProcessContext.getProperty("k4"), equalTo(null));
}
@Test
public void addContext() {
context.setProperty("k1", "v1");
context.setProperty("k2", "v2");
context.setProperty("k3", "v2");
DataProcessContext context1 = new DataProcessContext();
context1.setProperty("k1", "v1");
context1.setProperty("k4", "v4");
context1.setProperty("k5", "v5");
context.addContext(context1);
assertThat(context.size(), equalTo(5));
assertThat(context.getProperty("k1"), equalTo("v1"));
assertThat(context.getProperty("k2"), equalTo("v2"));
assertThat(context.getProperty("k3"), equalTo("v2"));
assertThat(context.getProperty("k4"), equalTo("v4"));
assertThat(context.getProperty("k5"), equalTo("v5"));
}
@Test
public void constructor() {
DataProcessContext dataProcessContext =
DataProcessContextCodec.decode("<DataProcessContext>\n"
+ " <data key=\"youyou\" value=\"200501\\,hip=P_01\"/>\n"
+ " <data key=\"yaya\" value=\"c'est bien\"/>\n"
+ "</DataProcessContext>");
assertThat("200501\\,hip=P_01", equalTo(dataProcessContext.getProperty("youyou")));
assertThat("c'est bien", equalTo(dataProcessContext.getProperty("yaya")));
dataProcessContext = new DataProcessContext();
assertThat(0, equalTo(dataProcessContext.size()));
}
@Test
public void encode() {
context.setProperty("k1", "v1");
context.setProperty("k2", "v2");
context.setProperty("k3", "v2");
assertThat("<DataProcessContext>\n"
+ " <data key=\"k3\" value=\"v2\"/>\n"
+ " <data key=\"k1\" value=\"v1\"/>\n"
+ " <data key=\"k2\" value=\"v2\"/>\n"
+ "</DataProcessContext>", equalTo(context.encode()));
}
}