c03ea52b6c69210d52fbf6ba3986c89b6dd00014
[so.git] / bpmn / MSOCoreBPMN / src / test / java / org / openecomp / mso / bpmn / core / PropertyConfigurationTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * OPENECOMP - MSO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 /*- 
22  * ============LICENSE_START======================================================= 
23  * OPENECOMP - MSO 
24  * ================================================================================ 
25  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
26  * ================================================================================ 
27  * Licensed under the Apache License, Version 2.0 (the "License"); 
28  * you may not use this file except in compliance with the License. 
29  * You may obtain a copy of the License at 
30  * 
31  *      http://www.apache.org/licenses/LICENSE-2.0 
32  * 
33  * Unless required by applicable law or agreed to in writing, software 
34  * distributed under the License is distributed on an "AS IS" BASIS, 
35  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
36  * See the License for the specific language governing permissions and 
37  * limitations under the License. 
38  * ============LICENSE_END========================================================= 
39  */ 
40
41 package org.openecomp.mso.bpmn.core;
42
43 import java.io.IOException;
44 import java.util.Map;
45
46 import org.junit.Assert;
47 import org.junit.Before;
48 import org.junit.Test;
49
50
51 public class PropertyConfigurationTest {
52         @Before
53         public void beforeTest() throws IOException {
54                 Map<String, String> defaultProperties = PropertyConfigurationSetup.createBpmnProperties();
55                 defaultProperties.put("testValue", "testKey");
56                 PropertyConfigurationSetup.init(defaultProperties);
57         }
58         
59         @Test
60         public void testPropertyFileWatcher() throws InterruptedException, IOException {
61                 Assert.assertEquals(true, PropertyConfiguration.getInstance().isFileWatcherRunning());
62         }
63         
64         @Test
65         public void testPropertyLoading() throws IOException, InterruptedException {
66                 PropertyConfiguration propertyConfiguration = PropertyConfiguration.getInstance();
67                 Map<String,String> props = propertyConfiguration.getProperties(PropertyConfiguration.MSO_BPMN_PROPERTIES);
68                 Assert.assertNotNull(props);
69                 Assert.assertEquals("testValue", props.get("testKey"));
70         }
71         
72         @Test
73         public void testPropertyReload() throws IOException, InterruptedException {
74                 PropertyConfiguration propertyConfiguration = PropertyConfiguration.getInstance();
75                 Map<String,String> properties = propertyConfiguration.getProperties(PropertyConfiguration.MSO_BPMN_PROPERTIES);
76                 Assert.assertNotNull(properties);
77                 Assert.assertEquals("testValue", properties.get("testKey"));
78
79                 Map<String, String> newProperties = PropertyConfigurationSetup.createBpmnProperties();
80                 newProperties.put("newKey", "newValue");
81                 PropertyConfigurationSetup.addProperties(newProperties, 10000);
82
83                 // Reload and check for the new value
84                 properties = propertyConfiguration.getProperties(PropertyConfiguration.MSO_BPMN_PROPERTIES);
85                 Assert.assertNotNull(properties);
86                 Assert.assertEquals("newValue", properties.get("newKey"));
87         }
88         
89         @Test(expected=IllegalArgumentException.class)
90         public void testPropertyFileDoesNotExists_NotIntheList() throws IOException {
91                 PropertyConfiguration propertyConfiguration = PropertyConfiguration.getInstance();
92                 propertyConfiguration.getProperties("badfile.properties");
93                 Assert.fail("Expected IllegalArgumentException");
94         }
95         
96         @Test(expected=java.lang.UnsupportedOperationException.class)
97         public void testPropertyModificationException() throws IOException {
98                 PropertyConfiguration propertyConfiguration = PropertyConfiguration.getInstance();
99                 Map<String,String> props = propertyConfiguration.getProperties(PropertyConfiguration.MSO_BPMN_PROPERTIES);
100                 Assert.assertNotNull(props);
101                 Assert.assertEquals("testValue", props.get("testKey"));
102                 props.put("newKey", "newvalue");
103         }
104 }