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)); } }