summaryrefslogtreecommitdiff
path: root/tst/com/p4square/grow/config/ConfigTest.java
blob: ccb39dadcd558c977842b94fb410c6a639dc25ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
 * Copyright 2013 Jesse Morgan
 */

package com.p4square.grow.config;

import org.junit.Test;

import static org.junit.Assert.*;

/**
 * 
 * @author Jesse Morgan <jesse@jesterpm.net>
 */
public class ConfigTest {
    public static void main(String... args) {
        org.junit.runner.JUnitCore.main(ConfigTest.class.getName());
    }

    @Test
    public void basicTest() throws Exception {
        // Load a config file
        Config domain1 = new Config();
        domain1.setDomain("domain1");
        Config domain2 = new Config();
        domain2.setDomain("domain2");

        domain1.updateConfig(getClass().getResourceAsStream("ConfigTest.properties"));
        domain2.updateConfig(getClass().getResourceAsStream("ConfigTest.properties"));

        // Non-existent key returns default
        assertEquals("default", domain1.getString("doesNotExist", "default"));
        assertSame(null, domain1.getString("doesNotExist"));

        // Domain keys return different values for different domains
        assertEquals("domain1Value", domain1.getString("domainSpecific"));
        assertEquals("domain2Value", domain2.getString("domainSpecific"));

        // Domain key takes priority over *. key
        assertEquals("domain1Value", domain1.getString("onlyInDomain1"));
        assertEquals("wildValue", domain2.getString("onlyInDomain1"));

        // Wildcard domain returns value
        assertEquals("wildValue", domain1.getString("wildcardOnly"));

        // Empty value gives empty string
        assertEquals("", domain1.getString("emptyValue"));

        // Number is returned
        assertEquals(5, domain1.getInt("number"));

        // Non number test
        assertEquals(Integer.MIN_VALUE, domain1.getInt("notANumber"));

        // Test Boolean values
        assertTrue(domain1.getBoolean("boolean1"));
        assertTrue(domain1.getBoolean("boolean2"));
        assertFalse(domain1.getBoolean("boolean3"));
        assertFalse(domain1.getBoolean("notABool"));
        assertTrue(domain1.getBoolean("notABool", true));
    }
}