@Test public void testLoadWithBadFiles() throws Exception { int numConfigs = 1; String dir = "."; PhysicalSourceConfig[] pConfigs = new PhysicalSourceConfig[numConfigs]; DatabusRelaySourcesInFiles databusSources = new DatabusRelaySourcesInFiles(dir); String[] pNames = new String[numConfigs]; for (int i = 0; i < numConfigs; ++i) { String pName = "physical" + i; pNames[i] = pName; pConfigs[i] = createPhysicalSourceConfig(pName, 100 * (i + 1), i + 1); Assert.assertTrue(databusSources.add(pName, pConfigs[i])); } // save 1 legal json file Assert.assertTrue(databusSources.save()); // now add bad jsob files String badJson = dir + "/bad.json"; String emptyJson = dir + "/empty.json"; File fBad = new File(badJson); fBad.createNewFile(); File fEmpty = new File(emptyJson); fEmpty.createNewFile(); FileWriter w1 = new FileWriter(fBad); w1.append("This is bad json"); w1.close(); DatabusRelaySourcesInFiles readSources = new DatabusRelaySourcesInFiles(dir); boolean t = readSources.load(); // delete old files after reading it fBad.delete(); readSources.removePersistedEntries(); fEmpty.delete(); Assert.assertTrue(t); PhysicalSourceConfig[] pNoConfigs = readSources.getAll(); Assert.assertEquals(1, pNoConfigs.length); Assert.assertEquals(1, readSources.size()); }
@Test public void testSourceInfoSaveLoad() throws Exception { // create a physcial source config object int numConfigs = 3; String dir = "."; PhysicalSourceConfig[] pConfigs = new PhysicalSourceConfig[numConfigs]; DatabusRelaySourcesInFiles databusSources = new DatabusRelaySourcesInFiles(dir); String[] pNames = new String[numConfigs]; for (int i = 0; i < numConfigs; ++i) { String pName = "physical" + i; pNames[i] = pName; pConfigs[i] = createPhysicalSourceConfig(pName, 100 * (i + 1), i + 1); Assert.assertTrue(databusSources.add(pName, pConfigs[i])); } Assert.assertTrue(databusSources.save()); DatabusRelaySourcesInFiles readSources = new DatabusRelaySourcesInFiles(dir); Assert.assertTrue(readSources.load()); PhysicalSourceConfig[] readConfigs = readSources.getAll(); Assert.assertEquals(numConfigs, readConfigs.length); // now compare configs; what was written is what was read for (String pSrcName : pNames) { PhysicalSourceConfig p1 = databusSources.get(pSrcName); PhysicalSourceConfig p2 = readSources.get(pSrcName); checkIfEqual(p1, p2); } // remove all entries; databusSources.removePersistedEntries(); // read empty dir Assert.assertTrue(readSources.load()); PhysicalSourceConfig[] pNoConfigs = readSources.getAll(); Assert.assertEquals(0, pNoConfigs.length); Assert.assertEquals(0, readSources.size()); }