package pluginbase.config.datasource; import org.junit.After; import org.junit.Before; import org.junit.Test; import pluginbase.config.TestBase; import pluginbase.config.datasource.gson.GsonDataSource; import pluginbase.config.datasource.hocon.HoconDataSource; import pluginbase.config.datasource.json.JsonDataSource; import pluginbase.config.datasource.yaml.YamlDataSource; import pluginbase.config.examples.Comprehensive; import pluginbase.config.examples.Parent; import java.io.File; import static org.junit.Assert.*; public class ConfigDataSourceTest extends TestBase { File hoconFile = new File("bin/test.conf"); File jsonFile = new File("bin/test.json"); File gsonFile = new File("bin/test.gson"); File yamlFile = new File("bin/test.yml"); Comprehensive expected; @Before public void setup() throws Exception { hoconFile.getParentFile().mkdirs(); hoconFile.createNewFile(); jsonFile.getParentFile().mkdirs(); jsonFile.createNewFile(); gsonFile.getParentFile().mkdirs(); gsonFile.createNewFile(); yamlFile.getParentFile().mkdirs(); yamlFile.createNewFile(); expected = new Comprehensive(); expected.aInt = 5; ((Parent) expected.stringObjectMap.get("parent")).aChild.aBoolean = false; } @After public void tearDown() { hoconFile.delete(); jsonFile.delete(); gsonFile.delete(); yamlFile.delete(); } @Test public void testHoconConfigDataSource() throws Exception { HoconDataSource dataSource = HoconDataSource.builder().setFile(hoconFile).build(); dataSource.save(expected); dataSource = HoconDataSource.builder().setFile(hoconFile).build(); Comprehensive actual = (Comprehensive) dataSource.load(); assertEquals(expected, actual); } @Test public void testJsonConfigDataSource() throws Exception { JsonDataSource dataSource = JsonDataSource.builder().setFile(jsonFile).build(); dataSource.save(expected); dataSource = JsonDataSource.builder().setFile(jsonFile).build(); Comprehensive actual = (Comprehensive) dataSource.load(); assertEquals(expected, actual); } @Test public void testYamlConfigDataSource() throws Exception { YamlDataSource dataSource = YamlDataSource.builder().setFile(yamlFile).build(); dataSource.save(expected); dataSource = YamlDataSource.builder().setFile(yamlFile).build(); Comprehensive actual = (Comprehensive) dataSource.load(); assertEquals(expected, actual); } @Test public void testGsonConfigDataSource() throws Exception { GsonDataSource dataSource = GsonDataSource.builder().setFile(gsonFile).build(); dataSource.save(expected); dataSource = GsonDataSource.builder().setFile(gsonFile).build(); Comprehensive actual = (Comprehensive) dataSource.load(); assertEquals(expected, actual); } }