/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.configuration.internal;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
/**
* TestCases for PersistentSettingsServiceTest.java.
*
* @author Sascha Zur
*/
public class PersistentSettingsServiceTest {
private static final String PERSISTENTDATA_FILE = "persSet.json";
private static final File TMPDIR = createTempDir();
private PersistentSettingsServiceImpl persSetServ;
private final String test4 = "test4";
/**
* Startup.
*/
@Before
public void startUp() {
persSetServ = new PersistentSettingsServiceImpl();
File tmp = new File(TMPDIR.getAbsolutePath()
+ File.separator + ".rce" + File.separator + "persistentSettings" + File.separator + "test");
tmp.mkdirs();
File tmp2 = new File(tmp.getAbsolutePath() + File.separator + PERSISTENTDATA_FILE);
try {
tmp2.createNewFile();
} catch (IOException e1) {
persSetServ = null;
}
persSetServ.setStorageDirectory(tmp.getAbsolutePath());
}
/**
* Creates a new temporary directory.
*
* @return The File object of the directory.
*/
private static File createTempDir() {
File tempFile;
try {
tempFile = File.createTempFile("temp", Long.toString(System.nanoTime()));
} catch (IOException e) {
throw new RuntimeException(e);
}
tempFile.delete();
tempFile.mkdir();
return tempFile;
}
/**
* Test.
*/
@Test
public void testSaveStore() {
persSetServ.saveStringValue("test0", "1");
persSetServ.saveStringValue("test1", "2");
persSetServ.saveStringValue("test2", "3");
persSetServ.saveStringValue("test3", "4");
persSetServ.saveStringValue(test4, "5");
}
/**
* Test.
*/
@Test
public void testReadStore() {
testSaveStore();
Assert.assertNotNull(persSetServ.readStringValue("test0"));
Assert.assertNotNull(persSetServ.readStringValue("test3"));
}
/**
* Test.
*/
@Test
public void testDelete() {
persSetServ.delete(test4);
Assert.assertNull(persSetServ.readStringValue(test4));
persSetServ.delete("24");
}
/**
* Test.
*/
@Test
public void testSaveMap() {
Map<String, List<String>> testMap = new HashMap<String, List<String>>();
List<String> testList = new LinkedList<String>();
testList.add("Dies");
testList.add("ist");
testList.add("ein");
testList.add("Test");
testMap.put(test4, testList);
persSetServ.saveMapWithStringList(testMap, "persSetMapTest.json");
}
/**
* Test.
*/
@Test
public void testReadMap() {
testSaveMap();
Map<String, List<String>> testMap = persSetServ.readMapWithStringList("persSetMapTest.json");
Assert.assertNotNull(testMap.get(test4));
Assert.assertEquals("Dies", testMap.get(test4).remove(0));
Assert.assertEquals("ist", testMap.get(test4).remove(0));
Assert.assertEquals("ein", testMap.get(test4).remove(0));
Assert.assertEquals("Test", testMap.get(test4).remove(0));
}
}