package net.codjo.dataprocess.common.codec;
import net.codjo.dataprocess.common.model.ExecutionListModel;
import net.codjo.dataprocess.common.model.ResultTable;
import net.codjo.dataprocess.common.model.TreatmentModel;
import net.codjo.dataprocess.common.model.UserTreatment;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import static net.codjo.test.common.matcher.JUnitMatchers.*;
/**
*
*/
public class ExecutionListModelCodecTest {
@Test
public void testEncodeDecode() throws Exception {
ExecutionListModelCodec codec = new ExecutionListModelCodec();
ExecutionListModel executionListModel = buildExecutionListModel();
String result = codec.encode(executionListModel);
assertThat(result, equalTo("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"
+ "<executionList id=\"1\" name=\"List de traitement 1\" status=\"0\" priority=\"2\" familyId=\"0\">\n"
+ " <treatment id=\"zzzztrt1\" comment=\"comment 1\" priority=\"1\" title=\"montraitement 1\" resultTable=\"table1\" selectAllHandler=\"selectPeriod\"/>\n"
+ " <treatment id=\"ztrt2\" comment=\"comment 2\" priority=\"2\" title=\"montraitement 2\" selectAllHandler=\"SelectAllPeriod\"/>\n"
+ " <treatment id=\"3trt\" priority=\"3\" title=\"montraitement 3\" resultTable=\"RES_TEMP\"/>\n"
+ "</executionList>"));
ExecutionListModel executionListModelDecode = codec.decode(result);
assertThat(executionListModel.equals(executionListModelDecode), equalTo(true));
executionListModel = buildExecutionListModel2();
result = codec.encode(executionListModel);
assertThat(result, equalTo("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"
+ "<executionList id=\"2\" name=\"List de traitement 2\" status=\"0\" priority=\"4\" familyId=\"0\">\n"
+ " <treatment id=\"zzzztrt1\" comment=\"comment 1\" priority=\"0\" title=\"montraitement 1\"/>\n"
+ " <treatment id=\"ztrt2\" comment=\"comment 2\" priority=\"1\" title=\"montraitement 2\" selectAllHandler=\"SelectAllPeriod\"/>\n"
+ " <treatment id=\"3trt\" priority=\"2\" title=\"montraitement 3\" resultTable=\"RES_TEMP\"/>\n"
+ "</executionList>"));
executionListModelDecode = codec.decode(result);
assertThat(executionListModel.equals(executionListModelDecode), equalTo(true));
}
@Test
public void testEncodeDecodeList() throws Exception {
ExecutionListModel executionListModel = buildExecutionListModel();
ExecutionListModel executionListModel2 = buildExecutionListModel2();
ExecutionListModelCodec codec = new ExecutionListModelCodec();
List<ExecutionListModel> list = new ArrayList<ExecutionListModel>();
list.add(executionListModel);
list.add(executionListModel2);
String result = codec.encodeList(list);
assertThat(result, equalTo("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"
+ "<root>\n"
+ " <executionList id=\"1\" name=\"List de traitement 1\" status=\"0\" priority=\"2\" familyId=\"0\">\n"
+ " <treatment id=\"zzzztrt1\" comment=\"comment 1\" priority=\"1\" title=\"montraitement 1\" resultTable=\"table1\" selectAllHandler=\"selectPeriod\"/>\n"
+ " <treatment id=\"ztrt2\" comment=\"comment 2\" priority=\"2\" title=\"montraitement 2\" selectAllHandler=\"SelectAllPeriod\"/>\n"
+ " <treatment id=\"3trt\" priority=\"3\" title=\"montraitement 3\" resultTable=\"RES_TEMP\"/>\n"
+ " </executionList>\n"
+ " <executionList id=\"2\" name=\"List de traitement 2\" status=\"0\" priority=\"4\" familyId=\"0\">\n"
+ " <treatment id=\"zzzztrt1\" comment=\"comment 1\" priority=\"0\" title=\"montraitement 1\"/>\n"
+ " <treatment id=\"ztrt2\" comment=\"comment 2\" priority=\"1\" title=\"montraitement 2\" selectAllHandler=\"SelectAllPeriod\"/>\n"
+ " <treatment id=\"3trt\" priority=\"2\" title=\"montraitement 3\" resultTable=\"RES_TEMP\"/>\n"
+ " </executionList>\n"
+ "</root>"));
List<ExecutionListModel> list2 = codec.decodeList(result);
assertThat(list2.size(), equalTo(list.size()));
assertArrayEquals(list2.toArray(), list.toArray());
}
private static ExecutionListModel buildExecutionListModel() {
ExecutionListModel executionListModel = new ExecutionListModel();
executionListModel.setId(1);
executionListModel.setName("List de traitement 1");
executionListModel.setPriority(2);
Map<UserTreatment, Integer> map = new HashMap<UserTreatment, Integer>();
TreatmentModel treatmentModel = new TreatmentModel();
treatmentModel.setTitle("montraitement 1");
treatmentModel.setId("zzzztrt1");
treatmentModel.setComment("comment 1");
treatmentModel.setResultTable(new ResultTable("table1", "selectPeriod"));
UserTreatment usrTrt = new UserTreatment(treatmentModel);
map.put(usrTrt, 1);
treatmentModel = new TreatmentModel();
treatmentModel.setTitle("montraitement 2");
treatmentModel.setId("ztrt2");
treatmentModel.setComment("comment 2");
treatmentModel.setResultTable(new ResultTable(null, "SelectAllPeriod"));
usrTrt = new UserTreatment(treatmentModel);
map.put(usrTrt, 2);
treatmentModel = new TreatmentModel();
treatmentModel.setTitle("montraitement 3");
treatmentModel.setId("3trt");
treatmentModel.setResultTable(new ResultTable("RES_TEMP", null));
usrTrt = new UserTreatment(treatmentModel);
map.put(usrTrt, 3);
executionListModel.setPriorityMap(map);
return executionListModel;
}
private static ExecutionListModel buildExecutionListModel2() {
ExecutionListModel executionListModel = new ExecutionListModel();
executionListModel.setId(2);
executionListModel.setName("List de traitement 2");
executionListModel.setPriority(4);
TreatmentModel treatmentModel = new TreatmentModel();
treatmentModel.setTitle("montraitement 1");
treatmentModel.setId("zzzztrt1");
treatmentModel.setComment("comment 1");
UserTreatment usrTrt = new UserTreatment(treatmentModel);
executionListModel.addUserTreatment(usrTrt);
treatmentModel = new TreatmentModel();
treatmentModel.setTitle("montraitement 2");
treatmentModel.setId("ztrt2");
treatmentModel.setComment("comment 2");
treatmentModel.setResultTable(new ResultTable(null, "SelectAllPeriod"));
usrTrt = new UserTreatment(treatmentModel);
executionListModel.addUserTreatment(usrTrt);
treatmentModel = new TreatmentModel();
treatmentModel.setTitle("montraitement 3");
treatmentModel.setId("3trt");
treatmentModel.setResultTable(new ResultTable("RES_TEMP", null));
usrTrt = new UserTreatment(treatmentModel);
executionListModel.addUserTreatment(usrTrt);
return executionListModel;
}
}