1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +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
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -10,11 +10,17 @@
*******************************************************************************/
package org.eclipse.cdt.ui.tests.templateengine;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.io.File;
import java.util.List;
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.TemplateEngine;
import org.eclipse.cdt.core.templateengine.TemplateEngineHelper;
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 {
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()
@ -40,22 +49,40 @@ public class TestSharedDefaults extends BaseTestCase {
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
* New data gets persisted in SharedDefault XML file
*/
public void testAddToBackEndStorage() {
Map<String, String> actualSharedDefaults= sharedDefaults.getSharedDefaultsMap();
public void testAddToBackEndStorage() throws Exception {
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$
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);
assertEquals(TEST_VALUE, getValueFromBackEndStorate(TEST_KEY));
}
/**
@ -63,50 +90,23 @@ public class TestSharedDefaults extends BaseTestCase {
* to verify whether the key-value pair gets updated with new value
* New data gets persisted in SharedDefault XML file
*/
public void testUpdateToBackEndStorage() {
Map<String, String> actualSharedDefaults = sharedDefaults.getSharedDefaultsMap();
for (Map.Entry<String, String> entry : actualSharedDefaults.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
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);
public void testUpdateToBackEndStorage() throws Exception {
sharedDefaults.addToBackEndStorage(TEST_KEY, TEST_VALUE);
assertTrue(sharedDefaults.getSharedDefaultsMap().containsKey(TEST_KEY));
sharedDefaults.updateToBackEndStorage(TEST_KEY, TEST_VALUE_UPDATED);
assertEquals(TEST_VALUE_UPDATED, sharedDefaults.getSharedDefaultsMap().get(TEST_KEY));
assertEquals(TEST_VALUE_UPDATED, getValueFromBackEndStorate(TEST_KEY));
}
/**
* This tests the deleteBackEndStorage of SharedDefaults
* to verify whether the key-value pair gets deleted at the backend
*/
public void testDeleteBackEndStorage() {
Map<String, String> actualSharedDefaults= sharedDefaults.getSharedDefaultsMap();
Set<String> keySet = actualSharedDefaults.keySet();
Iterator<String> iterator = keySet.iterator();
String keyName = null;
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);
public void testDeleteBackEndStorage() throws Exception {
sharedDefaults.addToBackEndStorage(TEST_KEY, TEST_VALUE);
assertTrue(sharedDefaults.getSharedDefaultsMap().containsKey(TEST_KEY));
sharedDefaults.deleteBackEndStorage(new String[] { TEST_KEY });
assertFalse(sharedDefaults.getSharedDefaultsMap().containsKey(TEST_KEY));
assertNull(getValueFromBackEndStorate(TEST_KEY));
}
}