1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.testtools.common;
17
18 import org.junit.Assert;
19 import org.junit.BeforeClass;
20 import org.junit.Test;
21
22 import java.io.IOException;
23 import java.util.Iterator;
24 import java.util.Properties;
25
26
27
28
29 public class PropertiesUtilsTest {
30
31 private static final String JIRA_AWARE_CONTAINS_FAILURES_PROPERTIES = "JiraAwareContainsFailures.properties";
32
33 private static final String PATH_TO_TEST_PROPERTIES_FILE = "org/kuali/rice/testtools/common/PropertiesUtilsTest.properties";
34
35 private static final String PROPERTIES_DIR_INTELLIJ = "rice-tools-test/src/main/resources/";
36
37 private static final String PROPERTIES_DIR_MAVEN = "src/main/resources/";
38
39 private static final String PROPERTY_DOESNT_EXIST_IN_FILE = "PROPERTY_DOESNT_EXIST_IN_FILE";
40
41 private static final String REMOTE_DRIVER_SAUCELABS_PROPERTY = "remote.driver.saucelabs";
42
43 protected static PropertiesUtils propUtils;
44
45 @BeforeClass
46 public static void setUp() {
47 System.setProperty(REMOTE_DRIVER_SAUCELABS_PROPERTY, "true");
48 System.setProperty(PROPERTY_DOESNT_EXIST_IN_FILE, "true");
49 propUtils = new PropertiesUtils();
50
51 }
52
53 private void assertPropertiesKeysCountNotZero(Properties props) {
54 Assert.assertTrue(props.keySet().size() > 0);
55 }
56
57 private void assertProperityDoesntExistInFilePropertyTrue(Properties props) {
58 Assert.assertTrue(props.getProperty(REMOTE_DRIVER_SAUCELABS_PROPERTY).equals("true"));
59 }
60
61 private void assertRemoteDriverSaucelabsPropertyTrue(Properties props) {
62 Assert.assertTrue(props.getProperty(REMOTE_DRIVER_SAUCELABS_PROPERTY).equals("true"));
63 }
64
65 private static void printSystemProperties() {
66 Iterator iter = System.getProperties().stringPropertyNames().iterator();
67 while (iter.hasNext()) {
68 String key = (String) iter.next();
69 System.out.println(key + " = " + System.getProperty(key));
70 }
71 }
72
73 @Test
74 public void testLoadPropertiesResource() throws IOException {
75 Properties props = propUtils.loadProperties(null, JIRA_AWARE_CONTAINS_FAILURES_PROPERTIES);
76 assertPropertiesKeysCountNotZero(props);
77 }
78
79 @Test
80 public void testLoadPropertiesFile() throws IOException {
81 Properties props = propUtils.loadProperties(PROPERTIES_DIR_INTELLIJ + JIRA_AWARE_CONTAINS_FAILURES_PROPERTIES, null);
82 if (props == null) {
83 props = propUtils.loadProperties(PROPERTIES_DIR_MAVEN + JIRA_AWARE_CONTAINS_FAILURES_PROPERTIES, null);
84 }
85 Assert.assertNotNull(props);
86 assertPropertiesKeysCountNotZero(props);
87 }
88
89 @Test
90 public void testLoadProperties() throws IOException {
91 Properties props = propUtils.loadProperties(null, PATH_TO_TEST_PROPERTIES_FILE);
92 assertPropertiesKeysCountNotZero(props);
93 Assert.assertTrue(props.keySet().contains(REMOTE_DRIVER_SAUCELABS_PROPERTY));
94 Assert.assertTrue(props.getProperty(REMOTE_DRIVER_SAUCELABS_PROPERTY).equals(""));
95 }
96
97 @Test
98 public void testSystemPropertiesOverrides() throws IOException {
99 assertProperityDoesntExistInFilePropertyTrue(System.getProperties());
100 assertRemoteDriverSaucelabsPropertyTrue(System.getProperties());
101 Properties props = propUtils.loadPropertiesWithSystemOverrides(PATH_TO_TEST_PROPERTIES_FILE);
102 assertPropertiesKeysCountNotZero(props);
103 assertRemoteDriverSaucelabsPropertyTrue(props);
104
105 Assert.assertFalse(props.containsKey(PROPERTY_DOESNT_EXIST_IN_FILE));
106 }
107
108 @Test
109 public void testSystemPropertiesAndOverrides() throws IOException {
110 assertProperityDoesntExistInFilePropertyTrue(System.getProperties());
111 assertRemoteDriverSaucelabsPropertyTrue(System.getProperties());
112 Properties props = propUtils.loadPropertiesWithSystemAndOverrides(PATH_TO_TEST_PROPERTIES_FILE);
113 assertPropertiesKeysCountNotZero(props);
114 assertRemoteDriverSaucelabsPropertyTrue(props);
115
116 assertProperityDoesntExistInFilePropertyTrue(props);
117 }
118
119 @Test
120 public void testLoadPropertiesWithSystemAndOverridesIntoSystem() throws IOException {
121 Assert.assertNull(System.getProperty("saucelabs.browser"));
122 assertRemoteDriverSaucelabsPropertyTrue(System.getProperties());
123 Properties props = propUtils.loadPropertiesWithSystemAndOverridesIntoSystem(PATH_TO_TEST_PROPERTIES_FILE);
124
125 Assert.assertTrue(System.getProperty("saucelabs.browser").equals("ff"));
126 }
127 }