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()); } }