2013-02-26 07:57:26 +00:00
|
|
|
package com.moandjiezana.toml;
|
|
|
|
|
2014-04-09 13:02:41 +00:00
|
|
|
import static org.hamcrest.Matchers.hasSize;
|
2013-02-26 07:57:26 +00:00
|
|
|
import static org.junit.Assert.assertEquals;
|
|
|
|
import static org.junit.Assert.assertNull;
|
2014-04-09 13:02:41 +00:00
|
|
|
import static org.junit.Assert.assertThat;
|
2013-02-26 07:57:26 +00:00
|
|
|
|
2014-04-09 13:02:41 +00:00
|
|
|
import org.hamcrest.Matchers;
|
2013-02-26 07:57:26 +00:00
|
|
|
import org.junit.Before;
|
|
|
|
import org.junit.Test;
|
|
|
|
|
|
|
|
|
|
|
|
public class TomlDefaultsTest {
|
|
|
|
|
|
|
|
private Toml defaultToml;
|
|
|
|
|
|
|
|
@Before
|
|
|
|
public void before() {
|
2014-08-05 20:18:04 +00:00
|
|
|
defaultToml = new Toml().parse("a = \"a\"\n [group]\n a=\"a\"\n [[array]]\n b=1\n [[array]]\n b=2");
|
2013-02-26 07:57:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void should_fall_back_to_default_value() {
|
2013-02-26 19:20:00 +00:00
|
|
|
Toml toml = new Toml(defaultToml);
|
2013-02-26 07:57:26 +00:00
|
|
|
|
|
|
|
assertEquals("a", toml.getString("a"));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void should_use_value_when_present_in_values_and_defaults() {
|
2013-02-26 19:20:00 +00:00
|
|
|
Toml toml = new Toml(defaultToml).parse("a = \"b\"");
|
2013-02-26 07:57:26 +00:00
|
|
|
|
|
|
|
assertEquals("b", toml.getString("a"));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void should_return_null_when_no_defaults_for_key() throws Exception {
|
2013-02-26 19:20:00 +00:00
|
|
|
Toml toml = new Toml(defaultToml).parse("");
|
2013-02-26 07:57:26 +00:00
|
|
|
|
|
|
|
assertNull(toml.getString("b"));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void should_fall_back_to_default_with_multi_key() throws Exception {
|
2013-02-26 19:20:00 +00:00
|
|
|
Toml toml = new Toml(defaultToml).parse("");
|
2013-02-26 07:57:26 +00:00
|
|
|
|
|
|
|
assertEquals("a", toml.getString("group.a"));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
2014-04-06 20:55:56 +00:00
|
|
|
public void should_fall_back_to_table() throws Exception {
|
2013-02-26 19:20:00 +00:00
|
|
|
Toml toml = new Toml(defaultToml).parse("");
|
2013-02-26 07:57:26 +00:00
|
|
|
|
2014-04-06 20:25:21 +00:00
|
|
|
assertEquals("a", toml.getTable("group").getString("a"));
|
2013-02-26 07:57:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
2014-04-09 13:02:41 +00:00
|
|
|
public void should_fall_back_to_table_array() throws Exception {
|
|
|
|
Toml toml = new Toml(defaultToml).parse("");
|
|
|
|
|
|
|
|
assertThat(toml.getTables("array"), hasSize(2));
|
|
|
|
assertThat(toml.getLong("array[1].b"), Matchers.equalTo(2L));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void should_perform_shallow_merge() throws Exception {
|
|
|
|
Toml toml = new Toml(defaultToml).parse("[group]\nb=1\n [[array]]\n b=0");
|
2014-08-05 20:18:04 +00:00
|
|
|
Toml toml2 = new Toml(defaultToml).parse("[[array]]\n b=1\n [[array]]\n b=2\n [[array]]\n b=3");
|
2013-02-26 07:57:26 +00:00
|
|
|
|
2014-04-06 20:25:21 +00:00
|
|
|
assertEquals(1, toml.getTable("group").getLong("b").intValue());
|
2014-04-09 13:02:41 +00:00
|
|
|
assertNull(toml.getTable("group").getString("a"));
|
|
|
|
assertThat(toml.getTables("array"), hasSize(1));
|
|
|
|
assertEquals(0, toml.getLong("array[0].b").intValue());
|
|
|
|
assertThat(toml2.getTables("array"), hasSize(3));
|
2013-02-26 07:57:26 +00:00
|
|
|
}
|
|
|
|
}
|