/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.dataprocess.common.codec; import net.codjo.dataprocess.common.exception.TreatmentException; import net.codjo.dataprocess.common.model.ResultTable; import net.codjo.dataprocess.common.model.TreatmentModel; import net.codjo.dataprocess.common.model.UserTreatment; import net.codjo.test.common.XmlUtil; import java.util.ArrayList; import java.util.List; import org.junit.Test; import static net.codjo.test.common.matcher.JUnitMatchers.*; /** * */ public class UserTreatmentListCodecTest { @Test public void encode() { String res = UserTreatmentListCodec.encode(buildModel(), true); assertThat(XmlUtil.areEquivalent(getXmlLight(), res), equalTo(true)); res = UserTreatmentListCodec.encode(buildModel(), false); assertThat(XmlUtil.areEquivalent(getXml(), res), equalTo(true)); } @Test public void decode() throws TreatmentException { List<UserTreatment> res = UserTreatmentListCodec.decode(getXmlLight(), true); List<UserTreatment> expectedList = buildModel(); verifyResultLight(expectedList, res); assertThat(XmlUtil.areEquivalent(getXmlLight(), UserTreatmentListCodec.encode(expectedList, true)), equalTo(true)); res = UserTreatmentListCodec.decode(getXml(), false); expectedList = buildModel(); verifyResult(expectedList, res); assertThat(XmlUtil.areEquivalent(getXml(), UserTreatmentListCodec.encode(expectedList, false)), equalTo(true)); } private static void verifyResult(List expected, List result) { assertThat(expected.size(), equalTo(result.size())); for (int i = 0; i < result.size(); i++) { UserTreatment trtExpected = (UserTreatment)expected.get(i); UserTreatment trtResult = (UserTreatment)result.get(i); assertThat(trtExpected.getId(), equalTo(trtResult.getId())); assertThat(trtExpected.getComment(), equalTo(trtResult.getComment())); assertThat(trtExpected.getTitle(), equalTo(trtResult.getTitle())); assertThat(trtExpected.getPriority(), equalTo(trtResult.getPriority())); assertThat(trtExpected.getResultTable().getTable(), equalTo(trtResult.getResultTable().getTable())); assertThat(trtExpected.getResultTable().getSelectAllHandler(), equalTo(trtResult.getResultTable().getSelectAllHandler())); } } private static void verifyResultLight(List expected, List result) { assertThat(expected.size(), equalTo(result.size())); for (int i = 0; i < result.size(); i++) { UserTreatment trtExpected = (UserTreatment)expected.get(i); UserTreatment trtResult = (UserTreatment)result.get(i); assertThat(trtExpected.getId(), equalTo(trtResult.getId())); assertThat(trtExpected.getComment(), equalTo(trtResult.getComment())); assertThat(trtExpected.getTitle(), equalTo(trtResult.getTitle())); } } private static String getXmlLight() { return "<root>\n" + " <userTrt id=\"id1\" comment=\"comment�1\" title=\"TITLE1\"/>\n" + " <userTrt id=\"id2\" comment=\"comment2\" title=\"TITLE2\"/>\n" + " <userTrt id=\"id3\" title=\"TITLE3\"/>\n" + " <userTrt id=\"id4\" title=\"TITLE4\"/>\n" + "</root>"; } private static String getXml() { return "<root>\n" + " <userTrt id=\"id1\" comment=\"comment�1\" title=\"TITLE1\" priority=\"1\">\n" + " <resultTable table=\"AP_RES1\" selectAllHandler=\"selectAllPeriod1\"/>\n" + " </userTrt>\n" + " <userTrt id=\"id2\" comment=\"comment2\" title=\"TITLE2\" priority=\"2\">\n" + " <resultTable table=\"AP_RES2\" selectAllHandler=\"selectAllPeriod2\"/>\n" + " </userTrt>\n" + " <userTrt id=\"id3\" title=\"TITLE3\" priority=\"3\">\n" + " <resultTable selectAllHandler=\"selectAllPeriod3\"/>\n" + " </userTrt>\n" + " <userTrt id=\"id4\" title=\"TITLE4\" priority=\"4\">\n" + " <resultTable table=\"AP_RES4\"/>\n" + " </userTrt>\n" + "</root>"; } private static List<UserTreatment> buildModel() { List<UserTreatment> list = new ArrayList<UserTreatment>(); TreatmentModel treatmentModel = new TreatmentModel(); treatmentModel.setId("id1"); treatmentModel.setComment("comment�1"); treatmentModel.setResultTable(new ResultTable("AP_RES1", "selectAllPeriod1")); treatmentModel.setTitle("TITLE1"); UserTreatment usrTrt = new UserTreatment(treatmentModel); usrTrt.setPriority(1); list.add(usrTrt); treatmentModel = new TreatmentModel(); treatmentModel.setId("id2"); treatmentModel.setComment("comment2"); treatmentModel.setResultTable(new ResultTable("AP_RES2", "selectAllPeriod2")); treatmentModel.setTitle("TITLE2"); usrTrt = new UserTreatment(treatmentModel); usrTrt.setPriority(2); list.add(usrTrt); treatmentModel = new TreatmentModel(); treatmentModel.setId("id3"); treatmentModel.setResultTable(new ResultTable(null, "selectAllPeriod3")); treatmentModel.setTitle("TITLE3"); usrTrt = new UserTreatment(treatmentModel); usrTrt.setPriority(3); list.add(usrTrt); treatmentModel = new TreatmentModel(); treatmentModel.setId("id4"); treatmentModel.setResultTable(new ResultTable("AP_RES4", null)); treatmentModel.setTitle("TITLE4"); usrTrt = new UserTreatment(treatmentModel); usrTrt.setPriority(4); list.add(usrTrt); return list; } }