1 package be
.nikiroo
.utils
.test
;
4 import java
.util
.ArrayList
;
7 import be
.nikiroo
.utils
.IOUtils
;
8 import be
.nikiroo
.utils
.resources
.Bundle
;
9 import be
.nikiroo
.utils
.resources
.Bundles
;
10 import be
.nikiroo
.utils
.resources
.Meta
;
12 class BundleTest
extends TestLauncher
{
14 private B b
= new B();
16 public BundleTest(String
[] args
) {
17 this("Bundle test", args
);
20 protected BundleTest(String name
, String
[] args
) {
23 for (TestCase test
: getSimpleTests()) {
27 addSeries(new TestLauncher("After saving/reloading the resources", args
) {
29 for (TestCase test
: getSimpleTests()) {
35 protected void start() throws Exception
{
36 tmp
= File
.createTempFile("nikiroo-utils", ".test");
39 b
.updateFile(tmp
.getAbsolutePath());
40 Bundles
.setDirectory(tmp
.getAbsolutePath());
45 protected void stop() {
50 addSeries(new TestLauncher("Read/Write support", args
) {
52 addTest(new TestCase("Reload") {
54 public void test() throws Exception
{
55 String now
= b
.getString(E
.ONE
);
57 String def
= b
.getString(E
.ONE
);
60 assertEquals("We should not have a bundle to load",
62 assertEquals("We should have reloaded the same files",
63 now
, b
.getString(E
.ONE
));
65 // reset values for next tests
70 addTest(new TestCase("Set/Get") {
72 public void test() throws Exception
{
74 b
.setString(E
.ONE
, val
);
75 String setGet
= b
.getString(E
.ONE
);
77 assertEquals(val
, setGet
);
79 // reset values for next tests
80 b
.restoreChanges(null);
84 addTest(new TestCase("Snapshots") {
86 public void test() throws Exception
{
88 String def
= b
.getString(E
.ONE
);
90 b
.setString(E
.ONE
, val
);
91 Object snap
= b
.takeChangesSnapshot();
93 b
.restoreChanges(null);
95 "restoreChanges(null) should clear the changes",
96 def
, b
.getString(E
.ONE
));
97 b
.restoreChanges(snap
);
99 "restoreChanges(snapshot) should restore the changes",
100 val
, b
.getString(E
.ONE
));
102 // reset values for next tests
103 b
.restoreChanges(null);
107 addTest(new TestCase("updateFile with changes") {
109 public void test() throws Exception
{
110 String val
= "Go to disk! (UTF-8 test: 日本語)";
112 String def
= b
.getString(E
.ONE
);
113 b
.setString(E
.ONE
, val
);
114 b
.updateFile(tmp
.getAbsolutePath());
117 assertEquals(val
, b
.getString(E
.ONE
));
119 // reset values for next tests
120 b
.setString(E
.ONE
, def
);
121 b
.updateFile(tmp
.getAbsolutePath());
128 protected void start() throws Exception
{
129 tmp
= File
.createTempFile("nikiroo-utils", ".test");
132 b
.updateFile(tmp
.getAbsolutePath());
133 Bundles
.setDirectory(tmp
.getAbsolutePath());
138 protected void stop() {
139 IOUtils
.deltree(tmp
);
144 private List
<TestCase
> getSimpleTests() {
147 List
<TestCase
> list
= new ArrayList
<TestCase
>();
149 list
.add(new TestCase(pre
+ "getString simple") {
151 public void test() throws Exception
{
152 assertEquals("un", b
.getString(E
.ONE
));
156 list
.add(new TestCase(pre
+ "getStringX with null suffix") {
158 public void test() throws Exception
{
159 assertEquals("un", b
.getStringX(E
.ONE
, null));
163 list
.add(new TestCase(pre
+ "getStringX with empty suffix") {
165 public void test() throws Exception
{
166 assertEquals(null, b
.getStringX(E
.ONE
, ""));
170 list
.add(new TestCase(pre
+ "getStringX with existing suffix") {
172 public void test() throws Exception
{
173 assertEquals("un + suffix", b
.getStringX(E
.ONE
, "suffix"));
177 list
.add(new TestCase(pre
+ "getStringX with not existing suffix") {
179 public void test() throws Exception
{
180 assertEquals(null, b
.getStringX(E
.ONE
, "fake"));
184 list
.add(new TestCase(pre
+ "getString with UTF-8 content") {
186 public void test() throws Exception
{
187 assertEquals("日本語 Nihongo", b
.getString(E
.JAPANESE
));
199 private class B
extends Bundle
<E
> {
201 super(E
.class, N
.bundle_test
);
205 // ...and make it public
206 public Object
takeChangesSnapshot() {
207 return super.takeChangesSnapshot();
211 // ...and make it public
212 public void restoreChanges(Object snap
) {
213 super.restoreChanges(snap
);
218 * Key enum for the {@link Bundle}.
223 @Meta(what
= "", where
= "", format
= "", info
= "")
225 @Meta(what
= "", where
= "", format
= "", info
= "")
227 @Meta(what
= "", where
= "", format
= "", info
= "")
229 @Meta(what
= "", where
= "", format
= "", info
= "")
234 * Name enum for the {@link Bundle}.