刘光辉
4 小时以前 06f314545ac3514d7ce28939920866ae8188d31c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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());
    }
}