Imported Upstream version 1.0.0
[platform/upstream/iotivity.git] / service / simulator / unittests / SimulatorTest / src / org / oic / simulator / test / SimulatorManagerTest.java
1 /*
2  * Copyright 2015 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 java.util.concurrent.CountDownLatch;
20 import junit.framework.TestCase;
21
22 import org.oic.simulator.DeviceInfo;
23 import org.oic.simulator.PlatformInfo;
24 import org.oic.simulator.SimulatorManager;
25 import org.oic.simulator.serviceprovider.SimulatorResourceServer;
26
27 /**
28  * This class tests the functionality of Simulator Manager
29  * class APIs.
30  */
31 public class SimulatorManagerTest extends TestCase
32 {
33
34     private static final String CONFIG_PATH = "./ramls/simple-light.raml";
35     private static final String RESOURCE_TYPE = "oic.r.light";
36
37     private CountDownLatch lockObject;
38     private ResourceModelObject resourceModelObject;
39     private ResourceModelChangeListener resourceModelChangeListener;
40
41     private DeviceInfo info;
42     private PlatformInfo platformInfo;
43
44     static
45     {
46         System.loadLibrary("SimulatorManager");
47         System.loadLibrary("RamlParser");
48         System.loadLibrary("oc");
49         System.loadLibrary("oc_logger");
50         System.loadLibrary("octbstack");
51     }
52
53     @Override
54     protected void setUp() throws Exception
55     {
56         super.setUp();
57
58         lockObject = new CountDownLatch(1);
59     }
60
61     @Override
62     protected void tearDown() throws Exception
63     {
64         super.tearDown();
65
66         resourceModelObject = null;
67         resourceModelChangeListener = null;
68         lockObject = null;
69     }
70
71     private SimulatorResourceServer createResource()
72     {
73         resourceModelObject = new ResourceModelObject();
74         resourceModelChangeListener = new ResourceModelChangeListener(resourceModelObject);
75
76         SimulatorResourceServer simulatorResourceServer = null;
77         try
78         {
79             simulatorResourceServer = SimulatorManager.createResource(CONFIG_PATH, resourceModelChangeListener);
80         }
81         catch (Exception e)
82         {
83             e.printStackTrace();
84         }
85
86         return simulatorResourceServer;
87     }
88
89     private SimulatorResourceServer[] createResources(int n)
90     {
91         resourceModelObject = new ResourceModelObject();
92         resourceModelChangeListener = new ResourceModelChangeListener(resourceModelObject);
93
94         SimulatorResourceServer[] simulatorResourceServers = null;
95         try
96         {
97             simulatorResourceServers = SimulatorManager.createResource(CONFIG_PATH, n, resourceModelChangeListener);
98         }
99         catch (Exception e)
100         {
101             e.printStackTrace();
102         }
103
104         return simulatorResourceServers;
105     }
106
107     private void deleteResource(SimulatorResourceServer sim)
108     {
109         try
110         {
111             SimulatorManager.deleteResource(sim);
112         }
113         catch (Exception e)
114         {
115             e.printStackTrace();
116         }
117     }
118
119     public void testCreateResource_P01()
120     {
121         SimulatorResourceServer simulatorResourceServer = createResource();
122
123         assertNotNull(simulatorResourceServer);
124
125         deleteResource(simulatorResourceServer);
126     }
127
128     /**
129      * When config path is empty
130      */
131     public void testCreateResource_N01()
132     {
133         String configPath = "";
134         boolean result = false;
135
136         resourceModelObject = new ResourceModelObject();
137         resourceModelChangeListener = new ResourceModelChangeListener(resourceModelObject);
138
139         SimulatorResourceServer simulatorResourceServer = null;
140         try
141         {
142             simulatorResourceServer = SimulatorManager.createResource(configPath, resourceModelChangeListener);
143         }
144         catch (Exception e)
145         {
146             result = true;
147         }
148
149         assertTrue(simulatorResourceServer == null && result);
150     }
151
152     /**
153      * When listener is not set. Passed null
154      */
155     public void testCreateResource_N02()
156     {
157         boolean result = false;
158         SimulatorResourceServer simulatorResourceServer = null;
159         try
160         {
161             simulatorResourceServer = SimulatorManager.createResource(CONFIG_PATH, null);
162         }
163         catch (Exception e)
164         {
165             result = true;
166         }
167         assertTrue(simulatorResourceServer == null && result);
168     }
169
170     /**
171      * When listener and config path are set to null
172      */
173     public void testCreateResource_N03()
174     {
175         boolean result = false;
176         SimulatorResourceServer simulatorResourceServer = null;
177         try
178         {
179             simulatorResourceServer = SimulatorManager.createResource(null, null);
180         }
181         catch (Exception e)
182         {
183             result = true;
184         }
185         assertTrue(simulatorResourceServer == null && result);
186     }
187
188     public void testCreateResourceCount_P01()
189     {
190         int count = 5;
191
192         SimulatorResourceServer[] simulatorResourceServers = createResources(count);
193
194         assertTrue(simulatorResourceServers != null && simulatorResourceServers.length == 5);
195
196         for(SimulatorResourceServer srs : simulatorResourceServers)
197             deleteResource(srs);
198     }
199
200     /**
201      * When config path is empty
202      */
203     public void testCreateResourceCount_N01()
204     {
205         int count = 5;
206         String configPath = "";
207         boolean result = false;
208
209         resourceModelObject = new ResourceModelObject();
210         resourceModelChangeListener = new ResourceModelChangeListener(resourceModelObject);
211
212         SimulatorResourceServer[] simulatorResourceServers = null;
213         try
214         {
215             simulatorResourceServers = SimulatorManager.createResource(configPath, count, resourceModelChangeListener);
216         }
217         catch (Exception e)
218         {
219             result = true;
220         }
221
222         assertTrue(simulatorResourceServers == null && result);
223     }
224
225     /**
226      * When listener is not set
227      */
228     public void testCreateResourceCount_N02()
229     {
230         int count = 5;
231         boolean result = false;
232
233         SimulatorResourceServer[] simulatorResourceServers = null;
234
235         try
236         {
237             simulatorResourceServers = SimulatorManager.createResource(CONFIG_PATH, count, null);
238         }
239         catch (Exception e)
240         {
241             result = true;
242         }
243
244         assertTrue(simulatorResourceServers == null && result);
245     }
246
247     /**
248      * When configPath and listener are set to null
249      */
250     public void testCreateResourceCount_N03()
251     {
252         int count = 5;
253         boolean result = false;
254
255         SimulatorResourceServer[] simulatorResourceServers = null;
256         try
257         {
258             simulatorResourceServers = SimulatorManager.createResource(null, count, null);
259         }
260         catch (Exception e)
261         {
262             result = true;
263         }
264
265         assertTrue(simulatorResourceServers == null && result);
266     }
267
268     /**
269      * When count is set to 0
270      */
271     public void testCreateResourceCount_N04()
272     {
273         int count = 0;
274
275         SimulatorResourceServer[] simulatorResourceServers = createResources(count);
276
277         assertTrue(simulatorResourceServers == null);
278     }
279
280     public void testDeleteResource_P01()
281     {
282         boolean result = true;
283
284         SimulatorResourceServer simRes = createResource();
285
286         try
287         {
288             SimulatorManager.deleteResource(simRes);
289         }
290         catch (Exception e)
291         {
292             result = false;
293         }
294
295         assertTrue(result);
296     }
297
298     public void testDeleteResource_P02()
299     {
300         boolean result = true;
301
302         SimulatorResourceServer[] simResoruces = createResources(4);
303
304         try
305         {
306             SimulatorManager.deleteResource(simResoruces[0]);
307         }
308         catch (Exception e)
309         {
310             result = false;
311         }
312
313         for(SimulatorResourceServer simResServer : simResoruces)
314             deleteResource(simResServer);
315
316         assertTrue(result);
317     }
318
319     public void testDeleteResources_P01()
320     {
321         boolean result = true;
322
323         createResources(4);
324
325         try
326         {
327             SimulatorManager.deleteResources(RESOURCE_TYPE);
328         }
329         catch (Exception e)
330         {
331             result = false;
332         }
333
334         assertTrue(result);
335     }
336
337     public void testFindResouce_P01()
338     {
339         boolean result = true;
340
341         SimulatorResourceServer simulatorResourceServer = createResource();
342
343         SimulatorRemoteResourceObject simulatorRemoteResource = new SimulatorRemoteResourceObject();
344
345         FindResourceListener findResourceListener = new FindResourceListener(lockObject, simulatorRemoteResource);
346
347         try
348         {
349             SimulatorManager.findResource(findResourceListener);
350         }
351         catch (Exception e)
352         {
353             result = false;
354         }
355
356         assertTrue(result);
357
358         deleteResource(simulatorResourceServer);
359     }
360
361     /**
362      * Pass null to listener
363      */
364     public void testFindResouce_N01()
365     {
366         boolean result = true;
367
368         SimulatorResourceServer simulatorResourceServer = createResource();
369
370         try
371         {
372             SimulatorManager.findResource(null);
373             result = false;
374         }
375         catch (Exception e)
376         {
377             result = true;
378         }
379
380         assertTrue(result);
381
382         deleteResource(simulatorResourceServer);
383     }
384
385     /**
386      *  checking for crash
387      */
388     public void testSetDeviceInfo_P01()
389     {
390         SimulatorManager.setDeviceInfo("test");
391     }
392
393     /**
394      *  checking for crash
395      *  Pass empty
396      */
397     public void testSetDeviceInfo_N01()
398     {
399         SimulatorManager.setDeviceInfo("");
400     }
401
402     /**
403      * Checking for crash
404      */
405     public void testSetPlatformInfo_P01()
406     {
407         PlatformInfo platformInfo = new PlatformInfo();
408         platformInfo.setDateOfManufacture("asdf");
409         platformInfo.setFirmwareVersion("asdf");
410         platformInfo.setHardwareVersion("asdf");
411         platformInfo.setManufacturerName("asdfdfg");
412         platformInfo.setManufacturerUrl("asdffdg");
413         platformInfo.setModelNumber("fddfg");
414         platformInfo.setOperationSystemVersion("sadfg");
415         platformInfo.setPlatformID("asdf");
416         platformInfo.setPlatformVersion("asdfgfdg");
417         platformInfo.setSupportUrl("adfgg");
418         platformInfo.setSystemTime("adsfgfg");
419
420         SimulatorManager.setPlatformInfo(platformInfo);
421     }
422 }