package org.erlide.core.preferences;
import java.util.Arrays;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.ConfigurationScope;
import org.eclipse.core.runtime.preferences.DefaultScope;
import org.eclipse.core.runtime.preferences.IScopeContext;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.erlide.engine.util.PreferencesHelper;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.osgi.service.prefs.BackingStoreException;
public class PreferencesHelperTest {
private static final IScopeContext[] ALL_SCOPE_CONTEXTS = new IScopeContext[] {
InstanceScope.INSTANCE, ConfigurationScope.INSTANCE, DefaultScope.INSTANCE };
private static final String QUALIFIER = "org.erlide.testing";
private static final String KEY = "key";
@Before
public void setUp() throws BackingStoreException {
InstanceScope.INSTANCE.getNode(QUALIFIER).removeNode();
ConfigurationScope.INSTANCE.getNode(QUALIFIER).removeNode();
DefaultScope.INSTANCE.getNode(QUALIFIER).removeNode();
Platform.getPreferencesService().getRootNode().flush();
}
@Test
public void nextContexts_1() {
final IScopeContext[] list = ALL_SCOPE_CONTEXTS;
final IScopeContext item = ConfigurationScope.INSTANCE;
final IScopeContext[] val = PreferencesHelper.getNextContexts(list, item);
Assert.assertNotNull(val);
Assert.assertEquals(1, val.length);
Assert.assertEquals(DefaultScope.INSTANCE, val[0]);
}
@Test
public void nextContexts_2() {
final IScopeContext[] list = ALL_SCOPE_CONTEXTS;
final IScopeContext item = DefaultScope.INSTANCE;
final IScopeContext[] val = PreferencesHelper.getNextContexts(list, item);
Assert.assertNotNull(val);
Assert.assertEquals(0, val.length);
}
@Test
public void nextContexts_3() {
final IScopeContext[] list = ALL_SCOPE_CONTEXTS;
final IScopeContext item = InstanceScope.INSTANCE;
final IScopeContext[] val = PreferencesHelper.getNextContexts(list, item);
Assert.assertNotNull(val);
Assert.assertEquals(2, val.length);
Assert.assertEquals(ConfigurationScope.INSTANCE, val[0]);
Assert.assertEquals(DefaultScope.INSTANCE, val[1]);
}
@Test
public void string_set() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
helper.putString(KEY, "smurf");
final String res = helper.getString(KEY, "default");
Assert.assertEquals("smurf", res);
}
@Test
public void default_0() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
helper.putString(KEY, "balm");
String res = InstanceScope.INSTANCE.getNode(QUALIFIER).get(KEY, null);
Assert.assertNotNull(res);
res = ConfigurationScope.INSTANCE.getNode(QUALIFIER).get(KEY, null);
Assert.assertNull(res);
res = DefaultScope.INSTANCE.getNode(QUALIFIER).get(KEY, null);
Assert.assertNull(res);
}
@Test
public void default_1() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
DefaultScope.INSTANCE.getNode(QUALIFIER).put(KEY, "balm");
helper.putString(KEY, "balm");
String res = InstanceScope.INSTANCE.getNode(QUALIFIER).get(KEY, null);
Assert.assertNull(res);
res = ConfigurationScope.INSTANCE.getNode(QUALIFIER).get(KEY, null);
Assert.assertNull(res);
res = DefaultScope.INSTANCE.getNode(QUALIFIER).get(KEY, null);
Assert.assertNotNull(res);
}
@Test
public void default_2() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
ConfigurationScope.INSTANCE.getNode(QUALIFIER).put(KEY, "balm");
helper.putString(KEY, "balm");
String res = InstanceScope.INSTANCE.getNode(QUALIFIER).get(KEY, null);
Assert.assertNull(res);
res = ConfigurationScope.INSTANCE.getNode(QUALIFIER).get(KEY, null);
Assert.assertNotNull(res);
res = DefaultScope.INSTANCE.getNode(QUALIFIER).get(KEY, null);
Assert.assertNull(res);
}
@Test
public void default_3() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
ConfigurationScope.INSTANCE.getNode(QUALIFIER).put(KEY, "balm");
helper.putString(KEY, "smurf");
String res = InstanceScope.INSTANCE.getNode(QUALIFIER).get(KEY, null);
Assert.assertNotNull(res);
res = ConfigurationScope.INSTANCE.getNode(QUALIFIER).get(KEY, null);
Assert.assertNotNull(res);
res = DefaultScope.INSTANCE.getNode(QUALIFIER).get(KEY, null);
Assert.assertNull(res);
}
@Test
public void byteArray_set() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
final byte[] val = new byte[] { 1, 3, 5, 7 };
helper.putByteArray(KEY, val);
final byte[] res = helper.getByteArray(KEY, null);
Assert.assertEquals(Arrays.toString(val), Arrays.toString(res));
}
@Test
public void double_set() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
final double val = 3.1415926d;
helper.putDouble(KEY, val);
final double res = helper.getDouble(KEY, Double.NaN);
Assert.assertEquals(val, res, 1e-5);
}
@Test
public void float_set() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
final float val = 3.1415926f;
helper.putFloat(KEY, val);
final float res = helper.getFloat(KEY, Float.NaN);
Assert.assertEquals(val, res, 1e-5);
}
@Test
public void long_set() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
final long val = 314159260;
helper.putLong(KEY, val);
final long res = helper.getLong(KEY, Long.MIN_VALUE);
Assert.assertEquals(val, res);
}
@Test
public void int_set() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
final int val = 314159;
helper.putInt(KEY, val);
final int res = helper.getInt(KEY, Integer.MIN_VALUE);
Assert.assertEquals(val, res);
}
@Test
public void removeLowestLevel() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
final String val = "value";
final String defaultValue = "defdef";
helper.putString(KEY, val);
String res = helper.getString(KEY, defaultValue);
Assert.assertEquals(val, res);
helper.removeAllAtLowestScope();
res = helper.getString(KEY, defaultValue);
Assert.assertEquals(defaultValue, res);
}
@Test
public void hasAnyLowestLevel_no1() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
final boolean has = helper.hasAnyAtLowestScope();
Assert.assertEquals(false, has);
}
@Test
public void hasAnyLowestLevel_yes() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
helper.putString(KEY, "gaga");
final boolean has = helper.hasAnyAtLowestScope();
Assert.assertEquals(true, has);
}
@Test
public void hasAnyLowestLevel_no2() {
final PreferencesHelper helper = PreferencesHelper.getHelper(QUALIFIER);
helper.putString(KEY, "gaga");
helper.removeAllAtLowestScope();
final boolean has = helper.hasAnyAtLowestScope();
Assert.assertEquals(false, has);
}
}