From 464d9619593fc8dfa49d0d70927c66a6b0aa3be0 Mon Sep 17 00:00:00 2001 From: Marc-Andre Laperle Date: Sun, 28 Jul 2013 01:26:17 -0400 Subject: [PATCH] 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. --- .../templateengine/TestSharedDefaults.java | 108 +++++++++--------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/templateengine/TestSharedDefaults.java b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/templateengine/TestSharedDefaults.java index 583bbf1d1f4..91318334137 100644 --- a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/templateengine/TestSharedDefaults.java +++ b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/tests/templateengine/TestSharedDefaults.java @@ -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 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 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 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 actualSharedDefaults = sharedDefaults.getSharedDefaultsMap(); - - for (Map.Entry 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 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 actualSharedDefaults= sharedDefaults.getSharedDefaultsMap(); - Set keySet = actualSharedDefaults.keySet(); - Iterator 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 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)); } }