2 * Copyright 2016 Samsung Electronics All Rights Reserved.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package org.oic.simulator.test;
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;
28 import junit.framework.TestCase;
30 public class ModelPropertyTest extends TestCase {
32 protected void setUp() throws Exception {
36 protected void tearDown() throws Exception {
40 public void testModelProperty_P01() {
41 ModelProperty property = new ModelProperty();
43 assertNotNull(property);
46 public void testIsModel_P01() {
47 ModelProperty property = new ModelProperty();
49 assertNotNull(property);
50 assertTrue(property.isModel());
53 public void testAdd_P01() {
54 ModelProperty property = new ModelProperty();
55 boolean result = property.add("int",
56 new IntegerProperty.Builder().build(), true);
59 assertNotNull(property.get("int"));
62 public void testAdd_N01() {
63 ModelProperty property = new ModelProperty();
64 boolean result = property.add(null,
65 new IntegerProperty.Builder().build(), true);
68 assertNull(property.get("int"));
71 public void testAdd_N02() {
72 ModelProperty property = new ModelProperty();
73 boolean result = property.add("int", null, true);
76 assertNull(property.get("int"));
79 public void testRemove_P01() {
80 ModelProperty property = new ModelProperty();
81 boolean result = property.add("int",
82 new IntegerProperty.Builder().build(), true);
85 property.remove("int");
86 assertNull(property.get("int"));
89 public void testRemove_N01() {
90 ModelProperty property = new ModelProperty();
91 boolean result = property.add("int",
92 new IntegerProperty.Builder().build(), true);
95 property.remove("wrong-key");
96 assertNotNull(property.get("int"));
99 public void testRemove_N02() {
100 ModelProperty property = new ModelProperty();
101 boolean result = property.add("int",
102 new IntegerProperty.Builder().build(), true);
105 property.remove(null);
106 assertNotNull(property.get("int"));
109 public void testGet_P01() {
110 ModelProperty property = new ModelProperty();
111 boolean result = property.add("int",
112 new IntegerProperty.Builder().build(), true);
115 assertNotNull(property.get("int"));
118 public void testGetChildProperties_P01() {
119 ModelProperty property = new ModelProperty();
121 boolean result = property.add("int",
122 new IntegerProperty.Builder().build(), true);
125 result = property.add("double", new DoubleProperty.Builder().build(),
129 assertNotNull(property.getChildProperties());
130 assertEquals(property.getChildProperties().size(), 2);
133 public void testIsRequired_P01() {
134 ModelProperty property = new ModelProperty();
136 boolean result = property.add("int",
137 new IntegerProperty.Builder().build(), true);
140 result = property.add("double", new DoubleProperty.Builder().build(),
144 assertEquals(property.isRequired("int"), true);
145 assertEquals(property.isRequired("double"), false);
148 public void testValidate_P01() {
149 ModelProperty modelProperty = new ModelProperty();
151 IntegerProperty.Builder intBuilder = new IntegerProperty.Builder();
152 intBuilder.setRange(1, 10);
153 modelProperty.add("int", intBuilder.build(), true);
155 DoubleProperty.Builder doubleBuilder = new DoubleProperty.Builder();
156 doubleBuilder.setRange(1.5, 5.5);
157 modelProperty.add("double", doubleBuilder.build(), true);
159 BooleanProperty.Builder booleanBuilder = new BooleanProperty.Builder();
160 modelProperty.add("boolean", booleanBuilder.build(), true);
162 StringProperty.Builder stringBuilder = new StringProperty.Builder();
163 stringBuilder.setRange(1, 5);
164 modelProperty.add("string", stringBuilder.build(), true);
166 SimulatorResourceModel value = new SimulatorResourceModel();
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) {
176 assertTrue(modelProperty.validate(new AttributeValue(value)));
179 public void testValidate_P02() {
180 ModelProperty modelProperty = new ModelProperty();
182 IntegerProperty.Builder intBuilder = new IntegerProperty.Builder();
183 intBuilder.setRange(1, 10);
184 modelProperty.add("int", intBuilder.build(), true);
186 DoubleProperty.Builder doubleBuilder = new DoubleProperty.Builder();
187 doubleBuilder.setRange(1.5, 5.5);
188 modelProperty.add("double", doubleBuilder.build(), true);
190 BooleanProperty.Builder booleanBuilder = new BooleanProperty.Builder();
191 modelProperty.add("boolean", booleanBuilder.build(), true);
193 StringProperty.Builder stringBuilder = new StringProperty.Builder();
194 stringBuilder.setRange(1, 5);
195 modelProperty.add("string", stringBuilder.build(), true);
197 SimulatorResourceModel value = new SimulatorResourceModel();
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) {
207 assertTrue(modelProperty.validate(value));
210 public void testValidate_N01() {
211 ModelProperty modelProperty = new ModelProperty();
213 IntegerProperty.Builder intBuilder = new IntegerProperty.Builder();
214 intBuilder.setRange(1, 10);
215 modelProperty.add("int", intBuilder.build(), true);
217 DoubleProperty.Builder doubleBuilder = new DoubleProperty.Builder();
218 doubleBuilder.setRange(1.5, 5.5);
219 modelProperty.add("double", doubleBuilder.build(), true);
221 BooleanProperty.Builder booleanBuilder = new BooleanProperty.Builder();
222 modelProperty.add("boolean", booleanBuilder.build(), true);
224 StringProperty.Builder stringBuilder = new StringProperty.Builder();
225 stringBuilder.setRange(1, 5);
226 modelProperty.add("string", stringBuilder.build(), true);
228 SimulatorResourceModel value = new SimulatorResourceModel();
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) {
238 assertFalse(modelProperty.validate(new AttributeValue(value)));