/*******************************************************************************
* Copyright (c) 2009,2010 Alena Laskavaia
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Alena Laskavaia - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.codan.core.param;
import junit.framework.TestCase;
import org.eclipse.cdt.codan.core.param.IProblemPreferenceDescriptor.PreferenceType;
/**
* Test for BasicProblemPreference
*/
public class MapProblemPreferenceTest extends TestCase {
private static final String PAR1 = "aaa"; //$NON-NLS-1$
private static final String PAR2 = "bbb"; //$NON-NLS-1$
private MapProblemPreference map;
private String key = "map"; //$NON-NLS-1$
private MapProblemPreference map2;
@Override
protected void setUp() throws Exception {
map = new MapProblemPreference(key, "My Value"); //$NON-NLS-1$
map2 = new MapProblemPreference(key, "My Value2"); //$NON-NLS-1$
}
/**
* @param parval
* @return
*/
protected BasicProblemPreference addPar(String key, Object parval) {
BasicProblemPreference str = makePar(key, parval);
map.addChildDescriptor(str);
return str;
}
/**
* @param parval
* @param parval
* @return
*/
protected BasicProblemPreference makePar(String key, Object parval) {
BasicProblemPreference str = new BasicProblemPreference(key, key);
if (parval != null) {
str.setValue(parval);
str.setType(PreferenceType.typeOf(parval));
}
return str;
}
public void testExportValueStr() {
BasicProblemPreference str = addPar(PAR1, "42.5"); //$NON-NLS-1$
String value = map.exportValue();
assertEquals("{" + str.getKey() + "=>42.5}", value); //$NON-NLS-1$ //$NON-NLS-2$
}
public void testImportValue() {
addPar(PAR1, "xxx"); //$NON-NLS-1$
String value = map.exportValue();
BasicProblemPreference str2 = new BasicProblemPreference(PAR1, PAR1);
map2.addChildDescriptor(str2);
map2.importValue(value);
assertEquals("xxx", map2.getChildValue(PAR1)); //$NON-NLS-1$
}
public void testImportValueSpec() {
BasicProblemPreference str = addPar(PAR1, "a=b"); //$NON-NLS-1$
String value = map.exportValue();
BasicProblemPreference str2 = new BasicProblemPreference(PAR1, PAR1);
map2.addChildDescriptor(str2);
map2.importValue(value);
assertEquals(str.getValue(), map2.getChildValue(PAR1));
}
public void testImportValue2() {
addPar(PAR1, "a=b"); //$NON-NLS-1$
BasicProblemPreference p2 = addPar(PAR2, "2,\"2"); //$NON-NLS-1$
String value = map.exportValue();
map = new MapProblemPreference(key, "My Value"); //$NON-NLS-1$
addPar(PAR1, null);
addPar(PAR2, null);
map.importValue(value);
assertEquals("a=b", map.getChildValue(PAR1)); //$NON-NLS-1$
assertEquals(p2.getValue(), map.getChildValue(PAR2));
}
}