Implementation of JUnit test cases for value property related classes.
[platform/upstream/iotivity.git] / service / simulator / unittests / SimulatorTest / src / org / oic / simulator / test / ModelPropertyTest.java
1 /*
2  * Copyright 2016 Samsung Electronics All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.oic.simulator.test;
18
19 import org.oic.simulator.AttributeValue;
20 import org.oic.simulator.BooleanProperty;
21 import org.oic.simulator.DoubleProperty;
22 import org.oic.simulator.IntegerProperty;
23 import org.oic.simulator.InvalidArgsException;
24 import org.oic.simulator.ModelProperty;
25 import org.oic.simulator.SimulatorResourceModel;
26 import org.oic.simulator.StringProperty;
27
28 import junit.framework.TestCase;
29
30 public class ModelPropertyTest extends TestCase {
31
32     protected void setUp() throws Exception {
33         super.setUp();
34     }
35
36     protected void tearDown() throws Exception {
37         super.tearDown();
38     }
39
40     public void testModelProperty_P01() {
41         ModelProperty property = new ModelProperty();
42
43         assertNotNull(property);
44     }
45
46     public void testIsModel_P01() {
47         ModelProperty property = new ModelProperty();
48
49         assertNotNull(property);
50         assertTrue(property.isModel());
51     }
52
53     public void testAdd_P01() {
54         ModelProperty property = new ModelProperty();
55         boolean result = property.add("int",
56                 new IntegerProperty.Builder().build(), true);
57
58         assertTrue(result);
59         assertNotNull(property.get("int"));
60     }
61
62     public void testAdd_N01() {
63         ModelProperty property = new ModelProperty();
64         boolean result = property.add(null,
65                 new IntegerProperty.Builder().build(), true);
66
67         assertFalse(result);
68         assertNull(property.get("int"));
69     }
70
71     public void testAdd_N02() {
72         ModelProperty property = new ModelProperty();
73         boolean result = property.add("int", null, true);
74
75         assertFalse(result);
76         assertNull(property.get("int"));
77     }
78
79     public void testRemove_P01() {
80         ModelProperty property = new ModelProperty();
81         boolean result = property.add("int",
82                 new IntegerProperty.Builder().build(), true);
83         assertTrue(result);
84
85         property.remove("int");
86         assertNull(property.get("int"));
87     }
88
89     public void testRemove_N01() {
90         ModelProperty property = new ModelProperty();
91         boolean result = property.add("int",
92                 new IntegerProperty.Builder().build(), true);
93         assertTrue(result);
94
95         property.remove("wrong-key");
96         assertNotNull(property.get("int"));
97     }
98
99     public void testRemove_N02() {
100         ModelProperty property = new ModelProperty();
101         boolean result = property.add("int",
102                 new IntegerProperty.Builder().build(), true);
103         assertTrue(result);
104
105         property.remove(null);
106         assertNotNull(property.get("int"));
107     }
108
109     public void testGet_P01() {
110         ModelProperty property = new ModelProperty();
111         boolean result = property.add("int",
112                 new IntegerProperty.Builder().build(), true);
113         assertTrue(result);
114
115         assertNotNull(property.get("int"));
116     }
117
118     public void testGetChildProperties_P01() {
119         ModelProperty property = new ModelProperty();
120
121         boolean result = property.add("int",
122                 new IntegerProperty.Builder().build(), true);
123         assertTrue(result);
124
125         result = property.add("double", new DoubleProperty.Builder().build(),
126                 true);
127         assertTrue(result);
128
129         assertNotNull(property.getChildProperties());
130         assertEquals(property.getChildProperties().size(), 2);
131     }
132
133     public void testIsRequired_P01() {
134         ModelProperty property = new ModelProperty();
135
136         boolean result = property.add("int",
137                 new IntegerProperty.Builder().build(), true);
138         assertTrue(result);
139
140         result = property.add("double", new DoubleProperty.Builder().build(),
141                 false);
142         assertTrue(result);
143
144         assertEquals(property.isRequired("int"), true);
145         assertEquals(property.isRequired("double"), false);
146     }
147
148     public void testValidate_P01() {
149         ModelProperty modelProperty = new ModelProperty();
150
151         IntegerProperty.Builder intBuilder = new IntegerProperty.Builder();
152         intBuilder.setRange(1, 10);
153         modelProperty.add("int", intBuilder.build(), true);
154
155         DoubleProperty.Builder doubleBuilder = new DoubleProperty.Builder();
156         doubleBuilder.setRange(1.5, 5.5);
157         modelProperty.add("double", doubleBuilder.build(), true);
158
159         BooleanProperty.Builder booleanBuilder = new BooleanProperty.Builder();
160         modelProperty.add("boolean", booleanBuilder.build(), true);
161
162         StringProperty.Builder stringBuilder = new StringProperty.Builder();
163         stringBuilder.setRange(1, 5);
164         modelProperty.add("string", stringBuilder.build(), true);
165
166         SimulatorResourceModel value = new SimulatorResourceModel();
167         try {
168             value.set("int", new AttributeValue(5));
169             value.set("double", new AttributeValue(3.5));
170             value.set("boolean", new AttributeValue(true));
171             value.set("string", new AttributeValue("12345"));
172         } catch (InvalidArgsException e) {
173             e.printStackTrace();
174         }
175
176         assertTrue(modelProperty.validate(new AttributeValue(value)));
177     }
178
179     public void testValidate_P02() {
180         ModelProperty modelProperty = new ModelProperty();
181
182         IntegerProperty.Builder intBuilder = new IntegerProperty.Builder();
183         intBuilder.setRange(1, 10);
184         modelProperty.add("int", intBuilder.build(), true);
185
186         DoubleProperty.Builder doubleBuilder = new DoubleProperty.Builder();
187         doubleBuilder.setRange(1.5, 5.5);
188         modelProperty.add("double", doubleBuilder.build(), true);
189
190         BooleanProperty.Builder booleanBuilder = new BooleanProperty.Builder();
191         modelProperty.add("boolean", booleanBuilder.build(), true);
192
193         StringProperty.Builder stringBuilder = new StringProperty.Builder();
194         stringBuilder.setRange(1, 5);
195         modelProperty.add("string", stringBuilder.build(), true);
196
197         SimulatorResourceModel value = new SimulatorResourceModel();
198         try {
199             value.set("int", new AttributeValue(5));
200             value.set("double", new AttributeValue(3.5));
201             value.set("boolean", new AttributeValue(true));
202             value.set("string", new AttributeValue("12345"));
203         } catch (InvalidArgsException e) {
204             e.printStackTrace();
205         }
206
207         assertTrue(modelProperty.validate(value));
208     }
209
210     public void testValidate_N01() {
211         ModelProperty modelProperty = new ModelProperty();
212
213         IntegerProperty.Builder intBuilder = new IntegerProperty.Builder();
214         intBuilder.setRange(1, 10);
215         modelProperty.add("int", intBuilder.build(), true);
216
217         DoubleProperty.Builder doubleBuilder = new DoubleProperty.Builder();
218         doubleBuilder.setRange(1.5, 5.5);
219         modelProperty.add("double", doubleBuilder.build(), true);
220
221         BooleanProperty.Builder booleanBuilder = new BooleanProperty.Builder();
222         modelProperty.add("boolean", booleanBuilder.build(), true);
223
224         StringProperty.Builder stringBuilder = new StringProperty.Builder();
225         stringBuilder.setRange(1, 5);
226         modelProperty.add("string", stringBuilder.build(), true);
227
228         SimulatorResourceModel value = new SimulatorResourceModel();
229         try {
230             value.set("int", new AttributeValue(5));
231             value.set("double", new AttributeValue(3.5));
232             value.set("boolean", new AttributeValue(true));
233             value.set("string", new AttributeValue("123456"));
234         } catch (InvalidArgsException e) {
235             e.printStackTrace();
236         }
237
238         assertFalse(modelProperty.validate(new AttributeValue(value)));
239     }
240 }