1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Fix TestSharedDefaults test that was failing due to test order (Junit4)

Modified the test so that it checks the value in the backend storage
(xml) instead of comparing the same map object.
This commit is contained in:
Marc-Andre Laperle 2013-07-28 01:26:17 -04:00 committed by Marc-Andre Laperle
parent 2f8589b53d
commit 464d961959

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2007 Symbian Software Limited and others. * Copyright (c) 2007, 2013 Symbian Software Limited and others.
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at * which accompanies this distribution, and is available at
@ -10,11 +10,17 @@
*******************************************************************************/ *******************************************************************************/
package org.eclipse.cdt.ui.tests.templateengine; package org.eclipse.cdt.ui.tests.templateengine;
import java.util.Iterator; import java.io.File;
import java.util.Map; import java.util.List;
import java.util.Set;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.eclipse.cdt.core.templateengine.SharedDefaults; import org.eclipse.cdt.core.templateengine.SharedDefaults;
import org.eclipse.cdt.core.templateengine.TemplateEngine;
import org.eclipse.cdt.core.templateengine.TemplateEngineHelper;
import org.eclipse.cdt.core.testplugin.util.BaseTestCase; import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
/** /**
@ -23,6 +29,9 @@ import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
public class TestSharedDefaults extends BaseTestCase { public class TestSharedDefaults extends BaseTestCase {
private SharedDefaults sharedDefaults; private SharedDefaults sharedDefaults;
private final String TEST_KEY = "org.eclipse.cdt.templateengine.project.HelloWorld.basename";
private final String TEST_VALUE = "Astala Vista";
private final String TEST_VALUE_UPDATED = "Astala Vista Updated";
/* /*
* @see TestCase#setUp() * @see TestCase#setUp()
@ -40,22 +49,40 @@ public class TestSharedDefaults extends BaseTestCase {
sharedDefaults = null; sharedDefaults = null;
} }
/**
* Get a value from the backend storage
*
* @return the value for this key or null if no value exist for this key
*/
private String getValueFromBackEndStorate(String key) throws Exception {
File parsedXML = TemplateEngineHelper.getSharedDefaultLocation("shareddefaults.xml");
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(parsedXML.toURI().toURL().openStream());
List<Element> sharedElementList = TemplateEngine.getChildrenOfElement(document.getDocumentElement());
int listSize = sharedElementList.size();
for (int i = 0; i < listSize; i++) {
Element xmlElement = sharedElementList.get(i);
String key2 = xmlElement.getAttribute(TemplateEngineHelper.ID);
String value2 = xmlElement.getAttribute(TemplateEngineHelper.VALUE);
if (key.equals(key2)) {
return value2;
}
}
return null;
}
/** /**
* This test checks if data gets added to the back end * This test checks if data gets added to the back end
* New data gets persisted in SharedDefault XML file * New data gets persisted in SharedDefault XML file
*/ */
public void testAddToBackEndStorage() { public void testAddToBackEndStorage() throws Exception {
Map<String, String> actualSharedDefaults= sharedDefaults.getSharedDefaultsMap(); sharedDefaults.addToBackEndStorage(TEST_KEY, TEST_VALUE);
assertTrue(sharedDefaults.getSharedDefaultsMap().containsKey(TEST_KEY));
assertEquals(TEST_VALUE, sharedDefaults.getSharedDefaultsMap().get(TEST_KEY));
actualSharedDefaults.put("provider.name","eclipse"); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals(TEST_VALUE, getValueFromBackEndStorate(TEST_KEY));
actualSharedDefaults.put("copyright","Symbian Software Ltd."); //$NON-NLS-1$ //$NON-NLS-2$
actualSharedDefaults.put("author","Bala Torati"); //$NON-NLS-1$ //$NON-NLS-2$
Map<String, String> expectedSharedDefaults= sharedDefaults.getSharedDefaultsMap();
assertEquals("Contents are different :", //$NON-NLS-1$
expectedSharedDefaults,
actualSharedDefaults);
} }
/** /**
@ -63,50 +90,23 @@ public class TestSharedDefaults extends BaseTestCase {
* to verify whether the key-value pair gets updated with new value * to verify whether the key-value pair gets updated with new value
* New data gets persisted in SharedDefault XML file * New data gets persisted in SharedDefault XML file
*/ */
public void testUpdateToBackEndStorage() { public void testUpdateToBackEndStorage() throws Exception {
Map<String, String> actualSharedDefaults = sharedDefaults.getSharedDefaultsMap(); sharedDefaults.addToBackEndStorage(TEST_KEY, TEST_VALUE);
assertTrue(sharedDefaults.getSharedDefaultsMap().containsKey(TEST_KEY));
for (Map.Entry<String, String> entry : actualSharedDefaults.entrySet()) { sharedDefaults.updateToBackEndStorage(TEST_KEY, TEST_VALUE_UPDATED);
String key = entry.getKey(); assertEquals(TEST_VALUE_UPDATED, sharedDefaults.getSharedDefaultsMap().get(TEST_KEY));
String value = entry.getValue(); assertEquals(TEST_VALUE_UPDATED, getValueFromBackEndStorate(TEST_KEY));
if (key.equals("org.eclipse.cdt.templateengine.project.HelloWorld.basename")) { //$NON-NLS-1$
entry.setValue("Astala Vista"); //$NON-NLS-1$
sharedDefaults.updateToBackEndStorage("org.eclipse.cdt.templateengine.project.HelloWorld.basename", value); //$NON-NLS-1$
break;
}
}
Map<String, String> expectedSharedDefaults=sharedDefaults.getSharedDefaultsMap();
assertEquals("Contents are different :", //$NON-NLS-1$
expectedSharedDefaults,
actualSharedDefaults);
} }
/** /**
* This tests the deleteBackEndStorage of SharedDefaults * This tests the deleteBackEndStorage of SharedDefaults
* to verify whether the key-value pair gets deleted at the backend * to verify whether the key-value pair gets deleted at the backend
*/ */
public void testDeleteBackEndStorage() { public void testDeleteBackEndStorage() throws Exception {
Map<String, String> actualSharedDefaults= sharedDefaults.getSharedDefaultsMap(); sharedDefaults.addToBackEndStorage(TEST_KEY, TEST_VALUE);
Set<String> keySet = actualSharedDefaults.keySet(); assertTrue(sharedDefaults.getSharedDefaultsMap().containsKey(TEST_KEY));
Iterator<String> iterator = keySet.iterator(); sharedDefaults.deleteBackEndStorage(new String[] { TEST_KEY });
String keyName = null; assertFalse(sharedDefaults.getSharedDefaultsMap().containsKey(TEST_KEY));
assertNull(getValueFromBackEndStorate(TEST_KEY));
while (iterator.hasNext()) {
String key = iterator.next();
keyName = key;
if (keyName.equals("org.eclipse.cdt.templateengine.project.HelloWorld.basename")) { //$NON-NLS-1$
actualSharedDefaults.remove(keyName);
break;
}
}
sharedDefaults.deleteBackEndStorage(new String[] { keyName });
Map<String, String> expectedSharedDefaults= sharedDefaults.getSharedDefaultsMap();
assertEquals("Contents are different :", //$NON-NLS-1$
expectedSharedDefaults,
actualSharedDefaults);
} }
} }