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 def
= b
.getString(E
.ONE
);
56 String val
= "Something";
58 b
.setString(E
.ONE
, val
);
62 assertEquals("We should have reset the bundle", def
,
67 assertEquals("We should have reloaded the same files",
68 val
, b
.getString(E
.ONE
));
70 // reset values for next tests
76 addTest(new TestCase("Set/Get") {
78 public void test() throws Exception
{
80 b
.setString(E
.ONE
, val
);
81 String setGet
= b
.getString(E
.ONE
);
83 assertEquals(val
, setGet
);
85 // reset values for next tests
86 b
.restoreSnapshot(null);
90 addTest(new TestCase("Snapshots") {
92 public void test() throws Exception
{
94 String def
= b
.getString(E
.ONE
);
96 b
.setString(E
.ONE
, val
);
97 Object snap
= b
.takeSnapshot();
99 b
.restoreSnapshot(null);
101 "restoreChanges(null) should clear the changes",
102 def
, b
.getString(E
.ONE
));
103 b
.restoreSnapshot(snap
);
105 "restoreChanges(snapshot) should restore the changes",
106 val
, b
.getString(E
.ONE
));
108 // reset values for next tests
109 b
.restoreSnapshot(null);
113 addTest(new TestCase("updateFile with changes") {
115 public void test() throws Exception
{
116 String val
= "Go to disk! (UTF-8 test: 日本語)";
118 String def
= b
.getString(E
.ONE
);
119 b
.setString(E
.ONE
, val
);
120 b
.updateFile(tmp
.getAbsolutePath());
123 assertEquals(val
, b
.getString(E
.ONE
));
125 // reset values for next tests
126 b
.setString(E
.ONE
, def
);
127 b
.updateFile(tmp
.getAbsolutePath());
134 protected void start() throws Exception
{
135 tmp
= File
.createTempFile("nikiroo-utils", ".test");
138 b
.updateFile(tmp
.getAbsolutePath());
139 Bundles
.setDirectory(tmp
.getAbsolutePath());
144 protected void stop() {
145 IOUtils
.deltree(tmp
);
150 private List
<TestCase
> getSimpleTests() {
153 List
<TestCase
> list
= new ArrayList
<TestCase
>();
155 list
.add(new TestCase(pre
+ "getString simple") {
157 public void test() throws Exception
{
158 assertEquals("un", b
.getString(E
.ONE
));
162 list
.add(new TestCase(pre
+ "getStringX with null suffix") {
164 public void test() throws Exception
{
165 assertEquals("un", b
.getStringX(E
.ONE
, null));
169 list
.add(new TestCase(pre
+ "getStringX with empty suffix") {
171 public void test() throws Exception
{
172 assertEquals(null, b
.getStringX(E
.ONE
, ""));
176 list
.add(new TestCase(pre
+ "getStringX with existing suffix") {
178 public void test() throws Exception
{
179 assertEquals("un + suffix", b
.getStringX(E
.ONE
, "suffix"));
183 list
.add(new TestCase(pre
+ "getStringX with not existing suffix") {
185 public void test() throws Exception
{
186 assertEquals(null, b
.getStringX(E
.ONE
, "fake"));
190 list
.add(new TestCase(pre
+ "getString with UTF-8 content") {
192 public void test() throws Exception
{
193 assertEquals("日本語 Nihongo", b
.getString(E
.JAPANESE
));
205 private class B
extends Bundle
<E
> {
207 super(E
.class, N
.bundle_test
);
211 // ...and make it public
212 public Object
takeSnapshot() {
213 return super.takeSnapshot();
217 // ...and make it public
218 public void restoreSnapshot(Object snap
) {
219 super.restoreSnapshot(snap
);
224 * Key enum for the {@link Bundle}.
229 @Meta(what
= "", where
= "", format
= "", info
= "")
231 @Meta(what
= "", where
= "", format
= "", info
= "")
233 @Meta(what
= "", where
= "", format
= "", info
= "")
235 @Meta(what
= "", where
= "", format
= "", info
= "")
240 * Name enum for the {@link Bundle}.