X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Ftest%2FBundleTest.java;h=4b9ac7dd81ed2adec96876104bd0e960c99536c6;hb=e9ca6bb892b5358a273807bff834945ffe7b0cee;hp=119f3b9d6e496a305df52467ea0e9ff2650468f5;hpb=62c9ec78bcd5d7016e6d1447b4422955cb55b198;p=nikiroo-utils.git diff --git a/src/be/nikiroo/utils/test/BundleTest.java b/src/be/nikiroo/utils/test/BundleTest.java index 119f3b9..4b9ac7d 100644 --- a/src/be/nikiroo/utils/test/BundleTest.java +++ b/src/be/nikiroo/utils/test/BundleTest.java @@ -1,6 +1,8 @@ package be.nikiroo.utils.test; import java.io.File; +import java.util.ArrayList; +import java.util.List; import be.nikiroo.utils.IOUtils; import be.nikiroo.utils.resources.Bundle; @@ -11,10 +13,6 @@ class BundleTest extends TestLauncher { private File tmp; private B b = new B(); - protected boolean isMain() { - return true; - } - public BundleTest(String[] args) { this("Bundle test", args); } @@ -22,78 +20,175 @@ class BundleTest extends TestLauncher { protected BundleTest(String name, String[] args) { super(name, args); - addTests(); - - if (isMain()) { - addSeries(new BundleTest("After saving/reloading the resources", - args) { - @Override - protected void start() throws Exception { - tmp = File.createTempFile("nikiroo-utils", ".test"); - tmp.delete(); - tmp.mkdir(); - b.updateFile(tmp.getAbsolutePath()); - Bundles.setDirectory(tmp.getAbsolutePath()); - b.reload(); - } + for (TestCase test : getSimpleTests()) { + addTest(test); + } - @Override - protected void stop() { - IOUtils.deltree(tmp); + addSeries(new TestLauncher("After saving/reloading the resources", args) { + { + for (TestCase test : getSimpleTests()) { + addTest(test); } + } - @Override - protected boolean isMain() { - return false; - } - }); - } + @Override + protected void start() throws Exception { + tmp = File.createTempFile("nikiroo-utils", ".test"); + tmp.delete(); + tmp.mkdir(); + b.updateFile(tmp.getAbsolutePath()); + Bundles.setDirectory(tmp.getAbsolutePath()); + b.reload(false); + } + + @Override + protected void stop() { + IOUtils.deltree(tmp); + } + }); + + addSeries(new TestLauncher("Read/Write support", args) { + { + addTest(new TestCase("Reload") { + @Override + public void test() throws Exception { + String now = b.getString(E.ONE); + b.reload(true); + String def = b.getString(E.ONE); + b.reload(false); + + assertEquals("We should not have a bundle to load", + null, def); + assertEquals("We should have reloaded the same files", + now, b.getString(E.ONE)); + + // reset values for next tests + b.reload(false); + } + }); + + addTest(new TestCase("Set/Get") { + @Override + public void test() throws Exception { + String val = "Newp"; + b.setString(E.ONE, val); + String setGet = b.getString(E.ONE); + + assertEquals(val, setGet); + + // reset values for next tests + b.restoreChanges(null); + } + }); + + addTest(new TestCase("Snapshots") { + @Override + public void test() throws Exception { + String val = "Newp"; + String def = b.getString(E.ONE); + + b.setString(E.ONE, val); + Object snap = b.takeChangesSnapshot(); + + b.restoreChanges(null); + assertEquals( + "restoreChanges(null) should clear the changes", + def, b.getString(E.ONE)); + b.restoreChanges(snap); + assertEquals( + "restoreChanges(snapshot) should restore the changes", + val, b.getString(E.ONE)); + + // reset values for next tests + b.restoreChanges(null); + } + }); + + addTest(new TestCase("updateFile with changes") { + @Override + public void test() throws Exception { + String val = "Go to disk! (UTF-8 test: 日本語)"; + + String def = b.getString(E.ONE); + b.setString(E.ONE, val); + b.updateFile(tmp.getAbsolutePath()); + b.reload(false); + + assertEquals(val, b.getString(E.ONE)); + + // reset values for next tests + b.setString(E.ONE, def); + b.updateFile(tmp.getAbsolutePath()); + b.reload(false); + } + }); + } + + @Override + protected void start() throws Exception { + tmp = File.createTempFile("nikiroo-utils", ".test"); + tmp.delete(); + tmp.mkdir(); + b.updateFile(tmp.getAbsolutePath()); + Bundles.setDirectory(tmp.getAbsolutePath()); + b.reload(false); + } + + @Override + protected void stop() { + IOUtils.deltree(tmp); + } + }); } - private void addTests() { + private List getSimpleTests() { String pre = ""; - addTest(new TestCase(pre + "getString simple") { + List list = new ArrayList(); + + list.add(new TestCase(pre + "getString simple") { @Override public void test() throws Exception { assertEquals("un", b.getString(E.ONE)); } }); - addTest(new TestCase(pre + "getStringX with null suffix") { + list.add(new TestCase(pre + "getStringX with null suffix") { @Override public void test() throws Exception { assertEquals("un", b.getStringX(E.ONE, null)); } }); - addTest(new TestCase(pre + "getStringX with empty suffix") { + list.add(new TestCase(pre + "getStringX with empty suffix") { @Override public void test() throws Exception { assertEquals(null, b.getStringX(E.ONE, "")); } }); - addTest(new TestCase(pre + "getStringX with existing suffix") { + list.add(new TestCase(pre + "getStringX with existing suffix") { @Override public void test() throws Exception { assertEquals("un + suffix", b.getStringX(E.ONE, "suffix")); } }); - addTest(new TestCase(pre + "getStringX with not existing suffix") { + list.add(new TestCase(pre + "getStringX with not existing suffix") { @Override public void test() throws Exception { assertEquals(null, b.getStringX(E.ONE, "fake")); } }); - addTest(new TestCase(pre + "getString with UTF-8 content") { + list.add(new TestCase(pre + "getString with UTF-8 content") { @Override public void test() throws Exception { assertEquals("日本語 Nihongo", b.getString(E.JAPANESE)); } }); + + return list; } /** @@ -106,6 +201,17 @@ class BundleTest extends TestLauncher { super(E.class, N.bundle_test); } + @Override + // ...and make it public + public Object takeChangesSnapshot() { + return super.takeChangesSnapshot(); + } + + @Override + // ...and make it public + public void restoreChanges(Object snap) { + super.restoreChanges(snap); + } } /**