1 package org.bukkit.configuration.file;
3 import java.io.BufferedWriter;
5 import java.io.FileWriter;
10 import org.junit.rules.TemporaryFolder;
11 import static org.junit.Assert.*;
15 public TemporaryFolder testFolder =
new TemporaryFolder();
20 public abstract String getTestValuesString();
22 public abstract String getTestHeaderInput();
24 public abstract String getTestHeaderResult();
27 public void testSave_File()
throws Exception {
29 File file = testFolder.newFile(
"test.config");
31 for (Map.Entry<String, Object> entry : getTestValues().entrySet()) {
32 config.
set(entry.getKey(), entry.getValue());
37 assertTrue(file.isFile());
41 public void testSave_String()
throws Exception {
43 File file = testFolder.newFile(
"test.config");
45 for (Map.Entry<String, Object> entry : getTestValues().entrySet()) {
46 config.
set(entry.getKey(), entry.getValue());
49 config.
save(file.getAbsolutePath());
51 assertTrue(file.isFile());
55 public void testSaveToString() {
58 for (Map.Entry<String, Object> entry : getTestValues().entrySet()) {
59 config.
set(entry.getKey(), entry.getValue());
63 String expected = getTestValuesString();
65 assertEquals(expected, result);
69 public void testLoad_File()
throws Exception {
71 File file = testFolder.newFile(
"test.config");
72 BufferedWriter writer =
new BufferedWriter(
new FileWriter(file));
73 String saved = getTestValuesString();
74 Map<String, Object> values = getTestValues();
84 for (Map.Entry<String, Object> entry : values.entrySet()) {
85 assertEquals(entry.getValue(), config.
get(entry.getKey()));
88 assertEquals(values.keySet(), config.
getKeys(
true));
92 public void testLoad_String()
throws Exception {
94 File file = testFolder.newFile(
"test.config");
95 BufferedWriter writer =
new BufferedWriter(
new FileWriter(file));
96 String saved = getTestValuesString();
97 Map<String, Object> values = getTestValues();
105 config.
load(file.getAbsolutePath());
107 for (Map.Entry<String, Object> entry : values.entrySet()) {
108 assertEquals(entry.getValue(), config.
get(entry.getKey()));
111 assertEquals(values.keySet(), config.
getKeys(
true));
115 public void testLoadFromString()
throws Exception {
117 Map<String, Object> values = getTestValues();
118 String saved = getTestValuesString();
122 for (Map.Entry<String, Object> entry : values.entrySet()) {
123 assertEquals(entry.getValue(), config.
get(entry.getKey()));
126 assertEquals(values.keySet(), config.
getKeys(
true));
131 public void testSaveToStringWithHeader() {
133 config.
options().header(getTestHeaderInput());
135 for (Map.Entry<String, Object> entry : getTestValues().entrySet()) {
136 config.
set(entry.getKey(), entry.getValue());
140 String expected = getTestHeaderResult() +
"\n" + getTestValuesString();
142 assertEquals(expected, result);
146 public void testParseHeader()
throws Exception {
148 Map<String, Object> values = getTestValues();
149 String saved = getTestValuesString();
150 String header = getTestHeaderResult();
151 String expected = getTestHeaderInput();
155 assertEquals(expected, config.
options().header());
157 for (Map.Entry<String, Object> entry : values.entrySet()) {
158 assertEquals(entry.getValue(), config.
get(entry.getKey()));
161 assertEquals(values.keySet(), config.
getKeys(
true));
162 assertEquals(header +
"\n" + saved, config.
saveToString());
166 public void testCopyHeader()
throws Exception {
169 Map<String, Object> values = getTestValues();
170 String saved = getTestValuesString();
171 String header = getTestHeaderResult();
172 String expected = getTestHeaderInput();
178 assertNull(config.
options().header());
179 assertEquals(expected, defaults.
options().header());
181 for (Map.Entry<String, Object> entry : values.entrySet()) {
182 assertEquals(entry.getValue(), config.
get(entry.getKey()));
185 assertEquals(values.keySet(), config.
getKeys(
true));
186 assertEquals(header +
"\n" + saved, config.
saveToString());
188 config = getConfig();
189 config.loadFromString(getTestHeaderResult() + saved);
190 assertEquals(getTestHeaderResult() + saved, config.saveToString());
194 public void testReloadEmptyConfig()
throws Exception {
199 config = getConfig();
200 config.loadFromString(
"");
202 assertEquals(
"", config.saveToString());
204 config = getConfig();
205 config.loadFromString(
"\n\n");
207 assertEquals(
"", config.saveToString());
void setDefaults(Configuration defaults)
FileConfigurationOptions options()
abstract String saveToString()
abstract void loadFromString(String contents)
void set(String path, Object value)
Set< String > getKeys(boolean deep)