use of com.yahoo.config.codegen.InnerCNode in project vespa by vespa-engine.
the class ConfigFileFormatterTest method require_that_struct_formatting_is_correct.
@Test
public void require_that_struct_formatting_is_correct() throws IOException {
Slime slime = new Slime();
Cursor root = slime.setObject();
Cursor simple = root.setObject("simple");
simple.setString("name", "myname");
simple.setString("gender", "FEMALE");
Cursor array = simple.setArray("emails");
array.addString("foo@bar.com");
array.addString("bar@baz.net");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
InnerCNode def = new DefParser("structtypes", new StringReader(StringUtilities.implode(StructtypesConfig.CONFIG_DEF_SCHEMA, "\n"))).getTree();
new ConfigFileFormat(def).encode(baos, slime);
assertThat(baos.toString(), is("simple.name \"myname\"\n" + "simple.gender FEMALE\n" + "simple.emails[0] \"foo@bar.com\"\n" + "simple.emails[1] \"bar@baz.net\"\n"));
}
use of com.yahoo.config.codegen.InnerCNode in project vespa by vespa-engine.
the class ConfigFileFormatterTest method require_that_strings_are_encoded.
@Test
public void require_that_strings_are_encoded() throws IOException {
Slime slime = new Slime();
Cursor root = slime.setObject();
String value = "\u7d22";
root.setString("stringval", value);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
InnerCNode def = new DefParser("simpletypes", new StringReader(StringUtilities.implode(SimpletypesConfig.CONFIG_DEF_SCHEMA, "\n"))).getTree();
new ConfigFileFormat(def).encode(baos, slime);
assertThat(baos.toString("UTF-8"), is("stringval \"" + value + "\"\n"));
}
use of com.yahoo.config.codegen.InnerCNode in project vespa by vespa-engine.
the class ConfigFileFormatterTest method require_that_illegal_double_throws_exception.
// TODO: Reenable this when we can reenable typechecking.
@Ignore
@Test(expected = IllegalArgumentException.class)
public void require_that_illegal_double_throws_exception() throws IOException {
Slime slime = new Slime();
Cursor root = slime.setObject();
root.setString("doubleval", "invalid");
InnerCNode def = new DefParser("simpletypes", new StringReader(StringUtilities.implode(SimpletypesConfig.CONFIG_DEF_SCHEMA, "\n"))).getTree();
new ConfigFileFormat(def).encode(new ByteArrayOutputStream(), slime);
}
use of com.yahoo.config.codegen.InnerCNode in project vespa by vespa-engine.
the class ConfigFileFormatterTest method require_that_utf8_works.
@Test
@Ignore
public void require_that_utf8_works() throws IOException {
Slime slime = new Slime();
Cursor root = slime.setObject();
final String input = "Hei \u00E6\u00F8\u00E5 \n \uBC14\uB451 \u00C6\u00D8\u00C5 hallo";
root.setString("stringval", input);
System.out.println(bytesToHexString(Utf8.toBytes(input)));
InnerCNode def = new DefParser("simpletypes", new StringReader(StringUtilities.implode(SimpletypesConfig.CONFIG_DEF_SCHEMA, "\n"))).getTree();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
new ConfigFileFormat(def).encode(baos, slime);
System.out.println(bytesToHexString(baos.toByteArray()));
assertThat(Utf8.toString(baos.toByteArray()), is("stringval \"" + input + "\"\n"));
}
use of com.yahoo.config.codegen.InnerCNode in project vespa by vespa-engine.
the class ConfigPayloadTest method test_applying_extra_default_values.
@Test
public void test_applying_extra_default_values() {
InnerCNode clientDef = new DefParser(SimpletypesConfig.CONFIG_DEF_NAME, new StringReader(StringUtilities.implode(SimpletypesConfig.CONFIG_DEF_SCHEMA, "\n") + "\nnewfield int default=3\n")).getTree();
ConfigPayload payload = ConfigPayload.fromInstance(new SimpletypesConfig(new SimpletypesConfig.Builder()));
payload = payload.applyDefaultsFromDef(clientDef);
assertThat(payload.toString(true), is("{\"boolval\":false,\"doubleval\":0.0,\"enumval\":\"VAL1\",\"intval\":0,\"longval\":0,\"stringval\":\"s\",\"newfield\":\"3\"}"));
}
Aggregations