filebot/test/net/filebot/util/PreferencesMapTest.java

156 lines
3.5 KiB
Java

package net.filebot.util;
import static org.junit.Assert.*;
import java.awt.Color;
import java.util.Arrays;
import java.util.Collection;
import java.util.Map;
import java.util.Map.Entry;
import java.util.prefs.Preferences;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import net.filebot.util.PreferencesMap.JsonAdapter;
import net.filebot.util.PreferencesMap.SimpleAdapter;
public class PreferencesMapTest {
private static Preferences root;
private static Preferences strings;
private static Preferences numbers;
private static Preferences temp;
private static Preferences sequence;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
root = Preferences.userRoot().node("junit-test");
strings = root.node("strings");
strings.put("1", "Firefly");
strings.put("2", "Roswell");
strings.put("3", "Angel");
strings.put("4", "Dead like me");
strings.put("5", "Babylon");
numbers = root.node("numbers");
numbers.putInt("M", 4);
numbers.putInt("A", 5);
numbers.putInt("X", 2);
sequence = root.node("sequence");
sequence.putInt("1", 1);
sequence.putInt("2", 2);
sequence.putInt("3", 3);
temp = root.node("temp");
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
root.removeNode();
}
@Test
public void get() {
Map<String, String> stringMap = PreferencesMap.map(strings);
assertEquals("Firefly", stringMap.get("1"));
}
@Test
public void put() {
Map<String, String> stringMap = PreferencesMap.map(temp);
stringMap.put("key", "snake");
assertEquals("snake", temp.get("key", null));
}
@Test
public void remove() throws Exception {
Map<String, Integer> map = PreferencesMap.map(numbers, SimpleAdapter.forClass(Integer.class));
map.remove("A");
assertFalse(Arrays.asList(numbers.keys()).contains("A"));
}
@Test
public void clear() throws Exception {
Map<String, Integer> map = PreferencesMap.map(temp, SimpleAdapter.forClass(Integer.class));
map.put("X", 42);
map.clear();
assertTrue(temp.keys().length == 0);
}
@Test
public void containsKey() {
temp.put("name", "kaya");
Map<String, String> map = PreferencesMap.map(temp);
assertTrue(map.containsKey("name"));
}
@Test
public void values() {
Map<String, Integer> map = PreferencesMap.map(sequence, SimpleAdapter.forClass(Integer.class));
Collection<Integer> list = map.values();
assertTrue(list.contains(1));
assertTrue(list.contains(2));
assertTrue(list.contains(3));
}
@Test
public void containsValue() {
Map<String, String> map = PreferencesMap.map(strings);
assertTrue(map.containsValue("Firefly"));
}
@Test
public void entrySet() {
Map<String, Integer> map = PreferencesMap.map(numbers, SimpleAdapter.forClass(Integer.class));
for (Entry<String, Integer> entry : map.entrySet()) {
Integer v = entry.getValue();
entry.setValue(v + 1);
}
assertEquals(5, numbers.getInt("M", -1));
}
@Test
public void containsKeyWithObjectKey() throws Exception {
Map<String, String> map = PreferencesMap.map(strings);
assertFalse(map.containsKey(new Object()));
}
public void getWithObjectKey() throws Exception {
Map<String, String> map = PreferencesMap.map(strings);
assertEquals(null, map.get(new Object()));
}
@Test
public void jsonAdapter() {
Map<String, Color> map = PreferencesMap.map(temp, new JsonAdapter<Color>(Color.class));
Color color = new Color(0.25f, 0.50f, 1.00f);
map.put("color", color);
assertEquals(color, map.get("color"));
}
}