X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Ftest%2FBundleTest.java;h=c1c379f833bd0e114a54e367151b27a235217138;hb=8468bb79f0fc9c88fa21355509731625732eb10e;hp=6a2fdaa5847b331f648ad356dc787750c00ce807;hpb=80383c142f85a7850d0fbea418689608fdccac05;p=fanfix.git diff --git a/src/be/nikiroo/utils/test/BundleTest.java b/src/be/nikiroo/utils/test/BundleTest.java index 6a2fdaa..c1c379f 100644 --- a/src/be/nikiroo/utils/test/BundleTest.java +++ b/src/be/nikiroo/utils/test/BundleTest.java @@ -1,20 +1,18 @@ 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; import be.nikiroo.utils.resources.Bundles; import be.nikiroo.utils.resources.Meta; -public class BundleTest extends TestLauncher { +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,181 @@ public 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 def = b.getString(E.ONE); + String val = "Something"; + + b.setString(E.ONE, val); + b.updateFile(); + b.reload(true); + + assertEquals("We should have reset the bundle", def, + b.getString(E.ONE)); + + b.reload(false); + + assertEquals("We should have reloaded the same files", + val, b.getString(E.ONE)); + + // reset values for next tests + b.reload(true); + b.updateFile(); + } + }); + + 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.restoreSnapshot(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.takeSnapshot(); + + b.restoreSnapshot(null); + assertEquals( + "restoreChanges(null) should clear the changes", + def, b.getString(E.ONE)); + b.restoreSnapshot(snap); + assertEquals( + "restoreChanges(snapshot) should restore the changes", + val, b.getString(E.ONE)); + + // reset values for next tests + b.restoreSnapshot(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; } /** @@ -103,9 +204,20 @@ public class BundleTest extends TestLauncher { */ private class B extends Bundle { protected B() { - super(E.class, N.bundle_test); + super(E.class, N.bundle_test, null); } + @Override + // ...and make it public + public Object takeSnapshot() { + return super.takeSnapshot(); + } + + @Override + // ...and make it public + public void restoreSnapshot(Object snap) { + super.restoreSnapshot(snap); + } } /** @@ -114,13 +226,13 @@ public class BundleTest extends TestLauncher { * @author niki */ private enum E { - @Meta(what = "", where = "", format = "", info = "") + @Meta ONE, // - @Meta(what = "", where = "", format = "", info = "") + @Meta ONE_SUFFIX, // - @Meta(what = "", where = "", format = "", info = "") + @Meta TWO, // - @Meta(what = "", where = "", format = "", info = "") + @Meta JAPANESE }