Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/model/tests/ElementDeltaTests.java')
-rw-r--r--core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/model/tests/ElementDeltaTests.java284
1 files changed, 0 insertions, 284 deletions
diff --git a/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/model/tests/ElementDeltaTests.java b/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/model/tests/ElementDeltaTests.java
deleted file mode 100644
index 9a890b1f94e..00000000000
--- a/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/model/tests/ElementDeltaTests.java
+++ /dev/null
@@ -1,284 +0,0 @@
-package org.eclipse.cdt.core.model.tests;
-
-
-/**********************************************************************
- * Copyright (c) 2002,2003 Rational Software Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- *
- * Contributors:
- * Rational Software - Initial API and implementation
-***********************************************************************/
-
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.util.Iterator;
-import java.util.Vector;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.cdt.core.model.CModelException;
-import org.eclipse.cdt.core.model.CoreModel;
-import org.eclipse.cdt.core.model.ElementChangedEvent;
-import org.eclipse.cdt.core.model.IBuffer;
-import org.eclipse.cdt.core.model.ICElement;
-import org.eclipse.cdt.core.model.ICElementDelta;
-import org.eclipse.cdt.core.model.ICProject;
-import org.eclipse.cdt.core.model.IElementChangedListener;
-import org.eclipse.cdt.core.model.ITranslationUnit;
-import org.eclipse.cdt.core.model.IWorkingCopy;
-import org.eclipse.cdt.internal.core.model.CModelManager;
-import org.eclipse.cdt.testplugin.CProjectHelper;
-import org.eclipse.cdt.testplugin.CTestPlugin;
-import org.eclipse.cdt.testplugin.TestPluginLauncher;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-
-/**
- * Class for testing the C Element Delta Builder.
- */
-public class ElementDeltaTests extends TestCase implements IElementChangedListener {
- private ICProject fCProject;
- private IFile headerFile;
- private NullProgressMonitor monitor;
- private Vector addedElements;
- private Vector removedElements;
- private Vector changedElements;
-
- public static void main(String[] args) {
- TestPluginLauncher.run(TestPluginLauncher.getLocationFromProperties(), WorkingCopyTests.class, args);
- }
-
- public static Test suite() {
- TestSuite suite= new TestSuite(ElementDeltaTests.class.getName());
- suite.addTest(new ElementDeltaTests("testElementDeltas"));
- return suite;
- }
-
- public ElementDeltaTests(String name) {
- super(name);
- }
-
- protected void setUp() throws Exception {
- monitor = new NullProgressMonitor();
-
- fCProject= CProjectHelper.createCCProject("TestProject1", "bin");
- //Path filePath = new Path(ResourcesPlugin.getWorkspace().getRoot().getLocation().toString()+ fCProject.getPath().toString()+ "/WorkingCopyTest.h");
- headerFile = fCProject.getProject().getFile("WorkingCopyTest.h");
- if (!headerFile.exists()) {
- try{
- FileInputStream fileIn = new FileInputStream(
- CTestPlugin.getDefault().getFileInPlugin(new Path("resources/cfiles/WorkingCopyTestStart.h")));
- headerFile.create(fileIn,false, monitor);
- } catch (CoreException e) {
- e.printStackTrace();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- }
-
- // register with the model manager to listen to delta changes
- CModelManager.getDefault().addElementChangedListener(this);
- addedElements = new Vector(10);
- removedElements = new Vector(10);
- changedElements = new Vector(20);
- }
-
- protected void tearDown() {
- CProjectHelper.delete(fCProject);
- }
-
-
- public void testElementDeltas() throws Exception {
- //ITranslationUnit tu = new TranslationUnit(fCProject, headerFile);
- ICElement celement = CoreModel.getDefault().create(headerFile);
- ITranslationUnit tu = null;
- if (celement instanceof ITranslationUnit) {
- tu = (ITranslationUnit)celement;
- }
- assertNotNull (tu);
- IWorkingCopy wc = tu.getWorkingCopy();
- assertNotNull (wc);
- assertNotNull (wc.getBuffer());
- assertTrue (wc.exists());
-
- // add the class Hello
- IBuffer wcBuf = wc.getBuffer();
- wcBuf.setContents ("\n class Hello{ \n};");
- wc.reconcile();
- wc.commit(true, monitor);
- assertChangedElement(ICElement.C_MODEL, "");
- assertChangedElement(ICElement.C_PROJECT, "TestProject1");
- assertChangedElement(ICElement.C_CCONTAINER, "TestProject1");
- assertChangedElement(ICElement.C_UNIT, "WorkingCopyTest.h");
- assertAddedElement(ICElement.C_CLASS, "Hello");
- assertRemovedElement(ICElement.C_INCLUDE, "stdio.h");
- assertEmptyDelta();
-
- // add the field x
- wcBuf.setContents ("\n class Hello{\n int x; \n};");
- wc.reconcile();
- wc.commit(true, monitor);
- assertChangedElement(ICElement.C_MODEL, "");
- assertChangedElement(ICElement.C_PROJECT, "TestProject1");
- assertChangedElement(ICElement.C_CCONTAINER, "TestProject1");
- assertChangedElement(ICElement.C_UNIT, "WorkingCopyTest.h");
- assertChangedElement(ICElement.C_CLASS, "Hello");
- assertAddedElement(ICElement.C_FIELD, "x");
- assertEmptyDelta();
-
- // add the method setValue
- wcBuf.setContents ("\n class Hello{\n int x; \n void setValue(int val); \n};");
- wc.reconcile();
- wc.commit(true, monitor);
- assertChangedElement(ICElement.C_MODEL, "");
- assertChangedElement(ICElement.C_PROJECT, "TestProject1");
- assertChangedElement(ICElement.C_CCONTAINER, "TestProject1");
- assertChangedElement(ICElement.C_UNIT, "WorkingCopyTest.h");
- assertChangedElement(ICElement.C_CLASS, "Hello");
- assertAddedElement(ICElement.C_METHOD_DECLARATION, "setValue");
- assertEmptyDelta();
-
- // rename x to y
- // this is not a change, this is add and remove
- wcBuf.setContents ("\n class Hello{\n int y; \n void setValue(int val); \n};");
- wc.reconcile();
- wc.commit(true, monitor);
- assertChangedElement(ICElement.C_MODEL, "");
- assertChangedElement(ICElement.C_PROJECT, "TestProject1");
- assertChangedElement(ICElement.C_CCONTAINER, "TestProject1");
- assertChangedElement(ICElement.C_UNIT, "WorkingCopyTest.h");
- assertChangedElement(ICElement.C_CLASS, "Hello");
- assertAddedElement(ICElement.C_FIELD, "y");
- assertRemovedElement(ICElement.C_FIELD, "x");
- assertEmptyDelta();
-
- // remove the method
- wcBuf.setContents ("\n class Hello{\n String y; \n};");
- wc.reconcile();
- wc.commit(true, monitor);
- assertChangedElement(ICElement.C_MODEL, "");
- assertChangedElement(ICElement.C_PROJECT, "TestProject1");
- assertChangedElement(ICElement.C_CCONTAINER, "TestProject1");
- assertChangedElement(ICElement.C_UNIT, "WorkingCopyTest.h");
- assertChangedElement(ICElement.C_CLASS, "Hello");
- assertChangedElement(ICElement.C_FIELD, "y");
- assertRemovedElement(ICElement.C_METHOD_DECLARATION, "setValue");
- assertEmptyDelta();
-
- // remove the field
- wcBuf.setContents ("\n class Hello{ \n};");
- wc.reconcile();
- wc.commit(true, monitor);
- assertChangedElement(ICElement.C_MODEL, "");
- assertChangedElement(ICElement.C_PROJECT, "TestProject1");
- assertChangedElement(ICElement.C_CCONTAINER, "TestProject1");
- assertChangedElement(ICElement.C_UNIT, "WorkingCopyTest.h");
- assertChangedElement(ICElement.C_CLASS, "Hello");
- assertRemovedElement(ICElement.C_FIELD, "y");
- assertEmptyDelta();
-
- // remove the class
- wcBuf.setContents ("");
- wc.reconcile();
- wc.commit(true, monitor);
- assertChangedElement(ICElement.C_MODEL, "");
- assertChangedElement(ICElement.C_PROJECT, "TestProject1");
- assertChangedElement(ICElement.C_CCONTAINER, "TestProject1");
- assertChangedElement(ICElement.C_UNIT, "WorkingCopyTest.h");
- assertRemovedElement(ICElement.C_CLASS, "Hello");
- assertEmptyDelta();
-
- wc.destroy();
- assertFalse(wc.exists());
- }
-
- public void assertAddedElement(int elementType, String elementName){
- if(!isElementInList(elementType, elementName, addedElements))
- fail("Element NOT found in Added list");
- }
- public void assertRemovedElement(int elementType, String elementName){
- if(!isElementInList(elementType, elementName, removedElements))
- fail("Element NOT found in Removed list");
- }
- public void assertChangedElement(int elementType, String elementName){
- if(!isElementInList(elementType, elementName, changedElements))
- fail("Element NOT found in Changed list");
- }
- public void assertEmptyDelta() {
- assertTrue(addedElements.isEmpty());
- assertTrue(removedElements.isEmpty());
- assertTrue(changedElements.isEmpty());
- }
- public boolean isElementInList(int elementType, String elementName, Vector elementList) {
- boolean found = false;
- Iterator i = elementList.iterator();
- while( i.hasNext()){
- ICElement element = (ICElement)i.next();
-
- if ((element.getElementName().equals(elementName)) &&
- (element.getElementType() == elementType)){
- // return true;
- // just to print the whole list
- found = true;
- // Remove the element
- elementList.remove(element);
- break;
- }
- }
- //return false;
- return found;
- }
-
- public void elementChanged(ElementChangedEvent event){
- try {
- addedElements.clear();
- removedElements.clear();
- changedElements.clear();
- ICElementDelta delta = event.getDelta();
- processDelta(delta);
- } catch(CModelException e) {
- }
- }
-
- protected void processDelta(ICElementDelta delta) throws CModelException {
- // check the delta elements
- int kind= delta.getKind();
- int flags= delta.getFlags();
- ICElement element= delta.getElement();
-
- // handle open and closing of a solution or project
- if ((flags & ICElementDelta.F_CLOSED) != 0) {
- }
- if ((flags & ICElementDelta.F_OPENED) != 0) {
- }
- if (kind == ICElementDelta.REMOVED) {
- removedElements.add(element);
- }
- if (kind == ICElementDelta.ADDED) {
- addedElements.add(element);
- }
- if (kind == ICElementDelta.CHANGED) {
- changedElements.add(element);
-
- if (flags == ICElementDelta.F_MODIFIERS) {
- }
- if (flags == ICElementDelta.F_CONTENT) {
- }
- if (flags == ICElementDelta.F_CHILDREN) {
- }
- }
-
- ICElementDelta[] affectedChildren= delta.getAffectedChildren();
- for (int i= 0; i < affectedChildren.length; i++) {
- processDelta(affectedChildren[i]);
- }
- }
-
-}

Back to the top