2 * Copyright 2015 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.server.test;
19 import java.util.Vector;
20 import java.util.concurrent.CountDownLatch;
21 import java.util.concurrent.TimeUnit;
23 import org.oic.simulator.InvalidArgsException;
24 import org.oic.simulator.SimulatorException;
25 import org.oic.simulator.SimulatorManager;
26 import org.oic.simulator.client.FindResourceListener;
27 import org.oic.simulator.client.SimulatorRemoteResource;
28 import org.oic.simulator.server.SimulatorResource;
29 import org.oic.simulator.test.ExceptionType;
30 import org.oic.simulator.utils.ObjectHolder;
32 import junit.framework.TestCase;
35 * This class tests the APIs of SimulatorResource class
37 public class SimulatorResourceTest extends TestCase {
38 private static final String RES_NAME = "test-resource";
39 private static final String RES_URI = "/test/resource";
40 private static final String RES_TYPE = "test.resource";
41 private SimulatorResource resource = null;
44 System.loadLibrary("SimulatorManager");
45 System.loadLibrary("RamlParser");
46 System.loadLibrary("oc");
47 System.loadLibrary("oc_logger");
48 System.loadLibrary("octbstack");
51 protected void setUp() throws Exception {
53 resource = SimulatorManager.createResource(
54 SimulatorResource.Type.SINGLE, RES_NAME, RES_URI, RES_TYPE);
57 protected void tearDown() throws Exception {
62 public void testGetName_P01() {
66 name = resource.getName();
67 } catch (SimulatorException e) {
71 assertEquals(RES_NAME, name);
74 public void testGetType_P01() {
75 SimulatorResource.Type type = SimulatorResource.Type.SINGLE;
78 type = resource.getType();
79 } catch (SimulatorException e) {
83 assertEquals(SimulatorResource.Type.SINGLE, type);
86 public void testGetURI_P01() {
90 uri = resource.getURI();
91 } catch (SimulatorException e) {
95 assertEquals(RES_URI, uri);
98 public void testGetResourceType_P01() {
99 String resType = null;
102 resType = resource.getResourceType();
103 } catch (SimulatorException e) {
107 assertEquals(RES_TYPE, resType);
110 public void testGetInterface_P01() {
111 Vector<String> interfaces = null;
114 interfaces = resource.getInterface();
115 } catch (SimulatorException e) {
119 assertNotNull(interfaces);
120 assertTrue(interfaces.size() > 0);
123 public void testSetName_P01() {
124 String name = "new-name";
125 String newName = null;
128 resource.setName(name);
129 newName = resource.getName();
130 } catch (InvalidArgsException e) {
132 } catch (SimulatorException e) {
136 assertEquals(name, newName);
139 public void testSetName_N01() {
141 ExceptionType exType = ExceptionType.UNKNOWN;
144 resource.setName(newName);
145 } catch (InvalidArgsException e) {
146 exType = ExceptionType.INVALID_ARGS;
147 } catch (SimulatorException e) {
148 exType = ExceptionType.SIMULATOR;
151 assertEquals(ExceptionType.INVALID_ARGS, exType);
154 public void testSetName_N02() {
155 String newName = null;
156 ExceptionType exType = ExceptionType.UNKNOWN;
159 resource.setName(newName);
160 } catch (InvalidArgsException e) {
161 exType = ExceptionType.INVALID_ARGS;
162 } catch (SimulatorException e) {
163 exType = ExceptionType.SIMULATOR;
166 assertEquals(ExceptionType.INVALID_ARGS, exType);
169 public void testSetURI_P01() {
170 String newUri = "/test/newuri/1";
174 resource.setURI(newUri);
175 uri = resource.getURI();
176 } catch (InvalidArgsException e) {
178 } catch (SimulatorException e) {
182 assertEquals(newUri, uri);
185 public void testSetURI_N01() {
187 ExceptionType exType = ExceptionType.UNKNOWN;
190 resource.setURI(newUri);
191 } catch (InvalidArgsException e) {
192 exType = ExceptionType.INVALID_ARGS;
193 } catch (SimulatorException e) {
194 exType = ExceptionType.SIMULATOR;
197 assertEquals(ExceptionType.INVALID_ARGS, exType);
200 public void testSetURI_N02() {
201 String newUri = null;
202 ExceptionType exType = ExceptionType.UNKNOWN;
205 resource.setURI(newUri);
206 } catch (InvalidArgsException e) {
207 exType = ExceptionType.INVALID_ARGS;
208 } catch (SimulatorException e) {
209 exType = ExceptionType.SIMULATOR;
212 assertEquals(ExceptionType.INVALID_ARGS, exType);
215 public void testSetResourceType_P01() {
216 String newResType = "test.newresource";
217 String resType = null;
220 resource.setResourceType(newResType);
221 resType = resource.getResourceType();
222 } catch (InvalidArgsException e) {
224 } catch (SimulatorException e) {
228 assertEquals(newResType, resType);
231 public void testSetResourceType_N01() {
232 String newResType = "";
233 ExceptionType exType = ExceptionType.UNKNOWN;
236 resource.setResourceType(newResType);
237 } catch (InvalidArgsException e) {
238 exType = ExceptionType.INVALID_ARGS;
239 } catch (SimulatorException e) {
240 exType = ExceptionType.SIMULATOR;
243 assertEquals(ExceptionType.INVALID_ARGS, exType);
246 public void testSetResourceType_N02() {
247 String newResType = null;
248 ExceptionType exType = ExceptionType.UNKNOWN;
251 resource.setResourceType(newResType);
252 } catch (InvalidArgsException e) {
253 exType = ExceptionType.INVALID_ARGS;
254 } catch (SimulatorException e) {
255 exType = ExceptionType.SIMULATOR;
258 assertEquals(ExceptionType.INVALID_ARGS, exType);
261 public void testSetObservable_P01() {
262 boolean newState = true;
263 boolean state = false;
265 resource.setObservable(newState);
266 state = resource.isObservable();
267 } catch (SimulatorException e) {
271 assertEquals(newState, state);
274 public void testSetObservable_P02() {
275 boolean newState = false;
276 boolean state = true;
278 resource.setObservable(newState);
279 state = resource.isObservable();
280 } catch (SimulatorException e) {
284 assertEquals(newState, state);
287 public void testIsObservable_P01() {
288 boolean state = false;
291 state = resource.isObservable();
292 } catch (SimulatorException e) {
296 assertEquals(true, state);
299 public void testIsStarted_P01() {
300 boolean state = true;
303 state = resource.isStarted();
304 } catch (SimulatorException e) {
308 assertEquals(false, state);
311 public void testIsStarted_P02() {
312 boolean state = false;
316 state = resource.isStarted();
318 } catch (SimulatorException e) {
322 assertEquals(true, state);
325 public void testIsStarted_P03() {
326 boolean state = true;
331 state = resource.isStarted();
332 } catch (SimulatorException e) {
336 assertEquals(false, state);
339 public void testStart_P01() {
340 CountDownLatch lockObject = new CountDownLatch(1);
341 ObjectHolder<SimulatorRemoteResource> resourceHolder = new ObjectHolder<>();
342 FindResourceCallbackListener listener = new FindResourceCallbackListener(
343 lockObject, resourceHolder);
347 SimulatorManager.findResource(resource.getResourceType(), listener);
349 // Wait for the resource to found
351 lockObject.await(10, TimeUnit.SECONDS);
352 } catch (InterruptedException e) {
355 } catch (InvalidArgsException e) {
357 } catch (SimulatorException e) {
363 } catch (SimulatorException e) {
367 assertNotNull(resourceHolder.get());
370 public void testStop_P01() {
371 CountDownLatch lockObject = new CountDownLatch(1);
372 ObjectHolder<SimulatorRemoteResource> resourceHolder = new ObjectHolder<>();
373 FindResourceCallbackListener listener = new FindResourceCallbackListener(
374 lockObject, resourceHolder);
379 SimulatorManager.findResource(resource.getResourceType(), listener);
381 // Wait for the resource to found
383 lockObject.await(10, TimeUnit.SECONDS);
384 } catch (InterruptedException e) {
387 } catch (InvalidArgsException e) {
389 } catch (SimulatorException e) {
395 } catch (SimulatorException e) {
399 assertNull(resourceHolder.get());
403 class FindResourceCallbackListener implements FindResourceListener {
405 private CountDownLatch mLockObject;
406 private ObjectHolder<SimulatorRemoteResource> mResourceHolder;
408 public FindResourceCallbackListener(CountDownLatch lockObject,
409 ObjectHolder<SimulatorRemoteResource> resourceHolder) {
410 mLockObject = lockObject;
411 mResourceHolder = resourceHolder;
415 public void onResourceFound(SimulatorRemoteResource resource) {
416 mResourceHolder.set(resource);
417 mLockObject.countDown();