Improved test coverage

This commit is contained in:
moandji.ezana 2014-04-10 15:07:45 +02:00
parent 6193e68a8f
commit 1e97e7602b
4 changed files with 59 additions and 0 deletions

View file

@ -1,7 +1,14 @@
package com.moandjiezana.toml; package com.moandjiezana.toml;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader; import java.io.StringReader;
import org.junit.Test; import org.junit.Test;
@ -21,4 +28,35 @@ public class TomlParseTest {
assertEquals(1, toml.getLong("key").intValue()); assertEquals(1, toml.getLong("key").intValue());
} }
@Test
public void should_fail_on_missing_file() throws Exception {
try {
new Toml().parse(new File("missing"));
fail("Exception should have been thrown");
} catch (RuntimeException e) {
assertThat(e.getCause(), instanceOf(FileNotFoundException.class));
}
}
@Test
public void should_fail_on_io_error() throws Exception {
Reader readerThatThrows = new Reader() {
@Override
public int read(char[] cbuf, int off, int len) throws IOException {
throw new IOException();
}
@Override
public void close() throws IOException {}
};
try {
new Toml().parse(readerThatThrows);
fail("Exception should have been thrown");
} catch (RuntimeException e) {
assertThat(e.getCause(), instanceOf(IOException.class));
}
}
} }

View file

@ -273,4 +273,10 @@ public class TomlTest {
public void should_fail_when_illegal_characters_after_table() throws Exception { public void should_fail_when_illegal_characters_after_table() throws Exception {
new Toml().parse("[error] if you didn't catch this, your parser is broken"); new Toml().parse("[error] if you didn't catch this, your parser is broken");
} }
@Ignore
@Test(expected = IllegalStateException.class)
public void should_fail_when_illegal_characters_after_key() throws Exception {
new Toml().parse("number = 3.14 pi");
}
} }

View file

@ -3,6 +3,7 @@ package com.moandjiezana.toml;
import static org.hamcrest.Matchers.arrayContaining; import static org.hamcrest.Matchers.arrayContaining;
import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.contains;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat; import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
@ -72,6 +73,19 @@ public class TomlToClassTest {
assertEquals("value2", tomlTables.group2.string); assertEquals("value2", tomlTables.group2.string);
} }
@Test
public void should_convert_tables_with_defaults() throws Exception {
Toml defaultToml = new Toml().parse("[group2]\n string=\"defaultValue2\"\n number=2\n [group3]\n string=\"defaultValue3\"");
Toml toml = new Toml(defaultToml).parse(file("should_convert_tables.toml"));
TomlTables tomlTables = toml.to(TomlTables.class);
assertEquals("value1", tomlTables.group1.string);
assertEquals("value2", tomlTables.group2.string);
assertNull(tomlTables.group2.number);
assertEquals("defaultValue3", tomlTables.group3.string);
}
@Test @Test
public void should_use_defaults() throws Exception { public void should_use_defaults() throws Exception {
Toml defaults = new Toml().parse(file("should_convert_tables.toml")); Toml defaults = new Toml().parse(file("should_convert_tables.toml"));

View file

@ -5,4 +5,5 @@ public class TomlTables {
public TomlPrimitives group1; public TomlPrimitives group1;
public TomlPrimitives group2; public TomlPrimitives group2;
public TomlPrimitives group3;
} }