package jnpf.elnMapper;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import jnpf.elnEntity.template.ElnTemplateForms;
|
import jnpf.elnEntity.template.ElnTemplateVos;
|
import jnpf.elnEntity.field.ElnFieldForms;
|
import jnpf.elnEntity.field.ElnFieldVos;
|
import org.junit.Test;
|
|
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertTrue;
|
|
public class ElnCheckboxGroupDtoContractTest {
|
|
@Test
|
public void requestContractsDeserializeCheckboxGroupMetadata() throws Exception {
|
ObjectMapper mapper = new ObjectMapper();
|
|
ElnTemplateForms.ReserveBinding reserve = mapper.readValue(
|
"{\"checkboxGroupCode\":\"test_result\"}",
|
ElnTemplateForms.ReserveBinding.class);
|
ElnTemplateForms.PrivateField privateField = mapper.readValue(
|
"{\"checkboxGroupCode\":\"test_result\"}",
|
ElnTemplateForms.PrivateField.class);
|
ElnTemplateForms.ChangeCheckboxGroup change = mapper.readValue(
|
"{\"operationCode\":\"operation-1\",\"checkboxGroupCode\":null,"
|
+ "\"expectedVersion\":3}",
|
ElnTemplateForms.ChangeCheckboxGroup.class);
|
|
assertEquals("test_result", reserve.getCheckboxGroupCode());
|
assertEquals("test_result", privateField.getCheckboxGroupCode());
|
assertEquals("operation-1", change.getOperationCode());
|
assertEquals(Integer.valueOf(3), change.getExpectedVersion());
|
assertEquals(null, change.getCheckboxGroupCode());
|
}
|
|
@Test
|
public void responseContractExposesGroupOnBindingButNotControlSnapshot() {
|
ObjectMapper mapper = new ObjectMapper();
|
ElnTemplateVos.Binding binding = new ElnTemplateVos.Binding();
|
binding.setCheckboxGroupCode("test_result");
|
|
JsonNode bindingJson = mapper.valueToTree(binding);
|
JsonNode snapshotJson = mapper.valueToTree(new ElnTemplateVos.ControlSnapshot());
|
|
assertTrue(bindingJson.has("checkboxGroupCode"));
|
assertEquals("test_result", bindingJson.get("checkboxGroupCode").asText());
|
assertFalse(snapshotJson.has("checkboxGroupCode"));
|
}
|
|
@Test
|
public void fieldAndTemplateContractsExposeSelectionCardinality() throws Exception {
|
ObjectMapper mapper = new ObjectMapper();
|
ElnFieldForms.Create field = mapper.readValue(
|
"{\"recommendedCheckboxGroupCode\":\"test_result\","
|
+ "\"recommendedCheckboxMinSelected\":1,"
|
+ "\"recommendedCheckboxMaxSelected\":2}",
|
ElnFieldForms.Create.class);
|
ElnTemplateForms.ReserveBinding reserve = mapper.readValue(
|
"{\"checkboxGroupCode\":\"test_result\","
|
+ "\"checkboxGroupMinSelected\":1,"
|
+ "\"checkboxGroupMaxSelected\":2}",
|
ElnTemplateForms.ReserveBinding.class);
|
|
assertEquals("test_result", field.getRecommendedCheckboxGroupCode());
|
assertEquals(Integer.valueOf(1), field.getRecommendedCheckboxMinSelected());
|
assertEquals(Integer.valueOf(2), field.getRecommendedCheckboxMaxSelected());
|
assertEquals(Integer.valueOf(1), reserve.getCheckboxGroupMinSelected());
|
assertEquals(Integer.valueOf(2), reserve.getCheckboxGroupMaxSelected());
|
|
ElnFieldVos.Version fieldVersion = new ElnFieldVos.Version();
|
fieldVersion.setRecommendedCheckboxGroupCode("test_result");
|
fieldVersion.setRecommendedCheckboxMinSelected(1);
|
fieldVersion.setRecommendedCheckboxMaxSelected(null);
|
ElnTemplateVos.CheckboxGroup group = new ElnTemplateVos.CheckboxGroup();
|
group.setGroupCode("test_result");
|
group.setMinSelected(1);
|
group.setMaxSelected(null);
|
group.setVersion(3);
|
|
JsonNode fieldJson = mapper.valueToTree(fieldVersion);
|
JsonNode groupJson = mapper.valueToTree(group);
|
assertEquals(1, fieldJson.get("recommendedCheckboxMinSelected").asInt());
|
assertTrue(fieldJson.has("recommendedCheckboxMaxSelected"));
|
assertEquals("test_result", groupJson.get("groupCode").asText());
|
assertEquals(1, groupJson.get("minSelected").asInt());
|
assertTrue(groupJson.has("maxSelected"));
|
assertEquals(3, groupJson.get("version").asInt());
|
}
|
}
|