$stringStruct->readFromJson($strJson1);
assert_equals($stringStruct->a, "");
$strJson2 = "{\n}";
$stringStruct->readFromJson($strJson2);
assert_equals($stringStruct->a, null);
$strJson3 = "{\n  \"a\": \"foobar\"\n}";
$stringStruct->readFromJson($strJson3);
assert_equals($stringStruct->a, "foobar");
/**
 * Integration Test
 * This config file is from configerator/materialize_configs/ffuuu
 * It should not product any exceptions
 */
try {
    $config = new Config(array());
    $config->readFromJson(file_get_contents($HERE . '/config.json'));
} catch (Exception $e) {
    print_r($e);
    fail("Fail intregation test!");
}
/**
 * Test invalid JSON string
 */
$invalidJson1 = "{ 'a': 'baz' }";
test_exception($stringStruct, $invalidJson1);
$invalidJson2 = '{ a : "baz" }';
test_exception($stringStruct, $invalidJson2);
$invalidJson3 = '{ "bar" : "baz", }';
test_exception($stringStruct, $invalidJson3);
$invalidJson4 = 'foo: bar';
test_exception($stringStruct, $invalidJson4);