@Test
    public void testRandomOrder() {
        assertNull(config);
        String configId = "file:" + PATH + "randomorder.txt";
        ConfigGetter<FunctionTestConfig> getter = new ConfigGetter<>(FunctionTestConfig.class);
        FunctionTestConfig config = getter.getConfig(configId);
        assertFalse(config.bool_val());
        assertTrue(config.bool_with_def());
        assertEquals(5, config.int_val());
        assertEquals(-14, config.int_with_def());
        assertEquals(666000666000L, config.long_val());
        assertEquals(-333000333000L, config.long_with_def());
        assertEquals(41.23, config.double_val(), 0.000001);
        assertEquals(-12, config.double_with_def(), 0.000001);
        assertEquals("foo", config.string_val());
        assertEquals("bar and foo", config.stringwithdef());
        assertEquals(FunctionTestConfig.Enum_val.FOOBAR, config.enum_val());
        assertEquals(FunctionTestConfig.Enumwithdef.BAR2, config.enumwithdef());
        assertEquals(configId, config.refval());
        assertEquals(configId, config.refwithdef());
        assertEquals("autoexec.bat", config.fileVal().value());
        assertEquals(1, config.boolarr().size());
        assertEquals(0, config.intarr().size());
        assertEquals(0, config.longarr().size());
        assertEquals(2, config.doublearr().size());
        assertEquals(1, config.stringarr().size());
        assertEquals(1, config.enumarr().size());
        assertEquals(0, config.refarr().size());
        assertEquals(0, config.fileArr().size());
        assertEquals(2, config.myarray().size());
    }
Test most data types and features of the config client API,
e.g. parameter access, missing default values, and more.
<p/>
NOTE: this test does NOT test null default values.

@author gjoranv
config/src/test/java/com/yahoo/config/subscription/FunctionTest.java