| /******************************************************************************* |
| * Copyright (c) 2017 1C-Soft LLC. |
| * |
| * This program and the accompanying materials are made available under |
| * the terms of the Eclipse Public License 2.0 which is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Vladimir Piskarev (1C) - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.handly.internal.examples.jmodel; |
| |
| import org.eclipse.handly.examples.jmodel.IJavaElementDelta; |
| import org.eclipse.handly.examples.jmodel.IJavaModel; |
| import org.eclipse.handly.examples.jmodel.IJavaProject; |
| import org.eclipse.handly.examples.jmodel.JavaModelCore; |
| |
| import junit.framework.TestCase; |
| |
| /** |
| * <code>JavaElementDelta</code> tests. |
| */ |
| public class JavaElementDeltaTest |
| extends TestCase |
| { |
| private IJavaModel jm = JavaModelCore.getJavaModel(); |
| private IJavaProject a = jm.getJavaProject("a"); |
| private IJavaProject b = jm.getJavaProject("b"); |
| private IJavaProject c = jm.getJavaProject("c"); |
| private IJavaProject d = jm.getJavaProject("d"); |
| private IJavaProject e = jm.getJavaProject("e"); |
| private IJavaElementDelta delta; |
| |
| @Override |
| protected void setUp() throws Exception |
| { |
| super.setUp(); |
| JavaElementDelta.Builder builder = new JavaElementDelta.Builder( |
| new JavaElementDelta(jm)); |
| builder.added(a); |
| builder.removed(b); |
| builder.changed(c, IJavaElementDelta.F_CHILDREN); |
| builder.movedFrom(d, e); |
| builder.movedTo(e, d); |
| delta = (IJavaElementDelta)builder.getDelta(); |
| } |
| |
| public void test1() |
| { |
| assertEquals(jm, delta.getElement()); |
| assertEquals(IJavaElementDelta.CHANGED, delta.getKind()); |
| assertEquals(IJavaElementDelta.F_CHILDREN, delta.getFlags()); |
| |
| IJavaElementDelta[] affectedChildren = delta.getAffectedChildren(); |
| assertEquals(5, affectedChildren.length); |
| |
| assertEquals(a, affectedChildren[0].getElement()); |
| assertEquals(IJavaElementDelta.ADDED, affectedChildren[0].getKind()); |
| assertEquals(0, affectedChildren[0].getFlags()); |
| |
| assertEquals(b, affectedChildren[1].getElement()); |
| assertEquals(IJavaElementDelta.REMOVED, affectedChildren[1].getKind()); |
| assertEquals(0, affectedChildren[1].getFlags()); |
| |
| assertEquals(c, affectedChildren[2].getElement()); |
| assertEquals(IJavaElementDelta.CHANGED, affectedChildren[2].getKind()); |
| assertEquals(IJavaElementDelta.F_CHILDREN, |
| affectedChildren[2].getFlags()); |
| |
| assertEquals(d, affectedChildren[3].getElement()); |
| assertEquals(IJavaElementDelta.REMOVED, affectedChildren[3].getKind()); |
| assertEquals(IJavaElementDelta.F_MOVED_TO, |
| affectedChildren[3].getFlags()); |
| assertEquals(e, affectedChildren[3].getMovedToElement()); |
| assertNull(affectedChildren[3].getMovedFromElement()); |
| |
| assertEquals(e, affectedChildren[4].getElement()); |
| assertEquals(IJavaElementDelta.ADDED, affectedChildren[4].getKind()); |
| assertEquals(IJavaElementDelta.F_MOVED_FROM, |
| affectedChildren[4].getFlags()); |
| assertEquals(d, affectedChildren[4].getMovedFromElement()); |
| assertNull(affectedChildren[4].getMovedToElement()); |
| |
| IJavaElementDelta[] addedChildren = delta.getAddedChildren(); |
| assertEquals(2, addedChildren.length); |
| assertSame(affectedChildren[0], addedChildren[0]); |
| assertSame(affectedChildren[4], addedChildren[1]); |
| |
| IJavaElementDelta[] removedChildren = delta.getRemovedChildren(); |
| assertEquals(2, removedChildren.length); |
| assertSame(affectedChildren[1], removedChildren[0]); |
| assertSame(affectedChildren[3], removedChildren[1]); |
| |
| IJavaElementDelta[] changedChildren = delta.getChangedChildren(); |
| assertEquals(1, changedChildren.length); |
| assertSame(affectedChildren[2], changedChildren[0]); |
| |
| assertSame(delta, delta.findDelta(jm)); |
| assertSame(affectedChildren[0], delta.findDelta(a)); |
| assertSame(affectedChildren[1], delta.findDelta(b)); |
| assertSame(affectedChildren[2], delta.findDelta(c)); |
| assertSame(affectedChildren[3], delta.findDelta(d)); |
| assertSame(affectedChildren[4], delta.findDelta(e)); |
| } |
| } |