/******************************************************************************* * Copyright (c) 2012, 2014 Obeo. * 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 * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Obeo - initial API and implementation *******************************************************************************/ package org.eclipse.emf.compare.tests.unit; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.List; import org.eclipse.emf.compare.CompareFactory; import org.eclipse.emf.compare.Diff; import org.eclipse.emf.ecore.EStructuralFeature; import org.junit.Test; /** * Tests the behavior of the {@link Diff} class. * * @generated */ public class DiffTest extends AbstractCompareTest { /** * Tests the behavior of reference <code>requires</code>'s accessors. * * @generated */ @Test public void testRequires() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getDiff_Requires(); Diff diff = CompareFactory.eINSTANCE.createDiff(); diff.eAdapters().add(new MockEAdapter()); org.eclipse.emf.compare.Diff requiresValue = org.eclipse.emf.compare.CompareFactory.eINSTANCE .createDiff(); List<org.eclipse.emf.compare.Diff> listRequires = new ArrayList<org.eclipse.emf.compare.Diff>(1); listRequires.add(requiresValue); assertFalse(diff.eIsSet(feature)); assertTrue(diff.getRequires().isEmpty()); diff.getRequires().add(requiresValue); assertTrue(notified); notified = false; assertTrue(diff.getRequires().contains(requiresValue)); assertSame(diff.getRequires(), diff.eGet(feature)); assertSame(diff.getRequires(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(requiresValue.getRequiredBy().contains(diff)); diff.eUnset(feature); assertTrue(notified); notified = false; assertTrue(diff.getRequires().isEmpty()); assertSame(diff.getRequires(), diff.eGet(feature)); assertSame(diff.getRequires(), diff.eGet(feature, false)); assertFalse(diff.eIsSet(feature)); assertFalse(requiresValue.getRequiredBy().contains(diff)); diff.eSet(feature, listRequires); assertTrue(notified); notified = false; assertTrue(diff.getRequires().contains(requiresValue)); assertSame(diff.getRequires(), diff.eGet(feature)); assertSame(diff.getRequires(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(requiresValue.getRequiredBy().contains(diff)); } /** * Tests the behavior of reference <code>requiredBy</code>'s accessors. * * @generated */ @Test public void testRequiredBy() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getDiff_RequiredBy(); Diff diff = CompareFactory.eINSTANCE.createDiff(); diff.eAdapters().add(new MockEAdapter()); org.eclipse.emf.compare.Diff requiredByValue = org.eclipse.emf.compare.CompareFactory.eINSTANCE .createDiff(); List<org.eclipse.emf.compare.Diff> listRequiredBy = new ArrayList<org.eclipse.emf.compare.Diff>(1); listRequiredBy.add(requiredByValue); assertFalse(diff.eIsSet(feature)); assertTrue(diff.getRequiredBy().isEmpty()); diff.getRequiredBy().add(requiredByValue); assertTrue(notified); notified = false; assertTrue(diff.getRequiredBy().contains(requiredByValue)); assertSame(diff.getRequiredBy(), diff.eGet(feature)); assertSame(diff.getRequiredBy(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(requiredByValue.getRequires().contains(diff)); diff.eUnset(feature); assertTrue(notified); notified = false; assertTrue(diff.getRequiredBy().isEmpty()); assertSame(diff.getRequiredBy(), diff.eGet(feature)); assertSame(diff.getRequiredBy(), diff.eGet(feature, false)); assertFalse(diff.eIsSet(feature)); assertFalse(requiredByValue.getRequires().contains(diff)); diff.eSet(feature, listRequiredBy); assertTrue(notified); notified = false; assertTrue(diff.getRequiredBy().contains(requiredByValue)); assertSame(diff.getRequiredBy(), diff.eGet(feature)); assertSame(diff.getRequiredBy(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(requiredByValue.getRequires().contains(diff)); } /** * Tests the behavior of reference <code>refines</code>'s accessors. * * @generated */ @Test public void testRefines() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getDiff_Refines(); Diff diff = CompareFactory.eINSTANCE.createDiff(); diff.eAdapters().add(new MockEAdapter()); org.eclipse.emf.compare.Diff refinesValue = org.eclipse.emf.compare.CompareFactory.eINSTANCE .createDiff(); List<org.eclipse.emf.compare.Diff> listRefines = new ArrayList<org.eclipse.emf.compare.Diff>(1); listRefines.add(refinesValue); assertFalse(diff.eIsSet(feature)); assertTrue(diff.getRefines().isEmpty()); diff.getRefines().add(refinesValue); assertTrue(notified); notified = false; assertTrue(diff.getRefines().contains(refinesValue)); assertSame(diff.getRefines(), diff.eGet(feature)); assertSame(diff.getRefines(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(refinesValue.getRefinedBy().contains(diff)); diff.eUnset(feature); assertTrue(notified); notified = false; assertTrue(diff.getRefines().isEmpty()); assertSame(diff.getRefines(), diff.eGet(feature)); assertSame(diff.getRefines(), diff.eGet(feature, false)); assertFalse(diff.eIsSet(feature)); assertFalse(refinesValue.getRefinedBy().contains(diff)); diff.eSet(feature, listRefines); assertTrue(notified); notified = false; assertTrue(diff.getRefines().contains(refinesValue)); assertSame(diff.getRefines(), diff.eGet(feature)); assertSame(diff.getRefines(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(refinesValue.getRefinedBy().contains(diff)); } /** * Tests the behavior of reference <code>refinedBy</code>'s accessors. * * @generated */ @Test public void testRefinedBy() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getDiff_RefinedBy(); Diff diff = CompareFactory.eINSTANCE.createDiff(); diff.eAdapters().add(new MockEAdapter()); org.eclipse.emf.compare.Diff refinedByValue = org.eclipse.emf.compare.CompareFactory.eINSTANCE .createDiff(); List<org.eclipse.emf.compare.Diff> listRefinedBy = new ArrayList<org.eclipse.emf.compare.Diff>(1); listRefinedBy.add(refinedByValue); assertFalse(diff.eIsSet(feature)); assertTrue(diff.getRefinedBy().isEmpty()); diff.getRefinedBy().add(refinedByValue); assertTrue(notified); notified = false; assertTrue(diff.getRefinedBy().contains(refinedByValue)); assertSame(diff.getRefinedBy(), diff.eGet(feature)); assertSame(diff.getRefinedBy(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(refinedByValue.getRefines().contains(diff)); diff.eUnset(feature); assertTrue(notified); notified = false; assertTrue(diff.getRefinedBy().isEmpty()); assertSame(diff.getRefinedBy(), diff.eGet(feature)); assertSame(diff.getRefinedBy(), diff.eGet(feature, false)); assertFalse(diff.eIsSet(feature)); assertFalse(refinedByValue.getRefines().contains(diff)); diff.eSet(feature, listRefinedBy); assertTrue(notified); notified = false; assertTrue(diff.getRefinedBy().contains(refinedByValue)); assertSame(diff.getRefinedBy(), diff.eGet(feature)); assertSame(diff.getRefinedBy(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(refinedByValue.getRefines().contains(diff)); } /** * Tests the behavior of reference <code>match</code>'s accessors. * * @generated */ @Test public void testMatch() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getDiff_Match(); Diff diff = CompareFactory.eINSTANCE.createDiff(); diff.eAdapters().add(new MockEAdapter()); org.eclipse.emf.compare.Match matchValue = org.eclipse.emf.compare.CompareFactory.eINSTANCE .createMatch(); assertFalse(diff.eIsSet(feature)); assertNull(diff.getMatch()); diff.setMatch(matchValue); assertTrue(notified); notified = false; assertSame(matchValue, diff.getMatch()); assertSame(diff.getMatch(), diff.eGet(feature)); assertSame(diff.getMatch(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(matchValue.getDifferences().contains(diff)); diff.eUnset(feature); assertTrue(notified); notified = false; assertNull(diff.getMatch()); assertSame(diff.getMatch(), diff.eGet(feature)); assertSame(diff.getMatch(), diff.eGet(feature, false)); assertFalse(diff.eIsSet(feature)); assertFalse(matchValue.getDifferences().contains(diff)); diff.setMatch(matchValue); assertTrue(notified); notified = false; assertSame(matchValue, diff.getMatch()); assertSame(diff.getMatch(), diff.eGet(feature)); assertSame(diff.getMatch(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(matchValue.getDifferences().contains(diff)); diff.eSet(feature, matchValue); assertTrue(notified); notified = false; assertSame(matchValue, diff.getMatch()); assertSame(diff.getMatch(), diff.eGet(feature)); assertSame(diff.getMatch(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(matchValue.getDifferences().contains(diff)); diff.setMatch(null); assertTrue(notified); notified = false; assertNull(diff.getMatch()); assertSame(feature.getDefaultValue(), diff.getMatch()); assertSame(diff.getMatch(), diff.eGet(feature)); assertSame(diff.getMatch(), diff.eGet(feature, false)); assertFalse(diff.eIsSet(feature)); assertFalse(matchValue.getDifferences().contains(diff)); } /** * Tests the behavior of reference <code>equivalence</code>'s accessors. * * @generated */ @Test public void testEquivalence() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getDiff_Equivalence(); Diff diff = CompareFactory.eINSTANCE.createDiff(); diff.eAdapters().add(new MockEAdapter()); org.eclipse.emf.compare.Equivalence equivalenceValue = org.eclipse.emf.compare.CompareFactory.eINSTANCE .createEquivalence(); assertFalse(diff.eIsSet(feature)); assertNull(diff.getEquivalence()); diff.setEquivalence(equivalenceValue); assertTrue(notified); notified = false; assertSame(equivalenceValue, diff.getEquivalence()); assertSame(diff.getEquivalence(), diff.eGet(feature)); assertSame(diff.getEquivalence(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(equivalenceValue.getDifferences().contains(diff)); diff.eUnset(feature); assertTrue(notified); notified = false; assertNull(diff.getEquivalence()); assertSame(diff.getEquivalence(), diff.eGet(feature)); assertSame(diff.getEquivalence(), diff.eGet(feature, false)); assertFalse(diff.eIsSet(feature)); assertFalse(equivalenceValue.getDifferences().contains(diff)); diff.setEquivalence(equivalenceValue); assertTrue(notified); notified = false; assertSame(equivalenceValue, diff.getEquivalence()); assertSame(diff.getEquivalence(), diff.eGet(feature)); assertSame(diff.getEquivalence(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(equivalenceValue.getDifferences().contains(diff)); diff.eSet(feature, equivalenceValue); assertTrue(notified); notified = false; assertSame(equivalenceValue, diff.getEquivalence()); assertSame(diff.getEquivalence(), diff.eGet(feature)); assertSame(diff.getEquivalence(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(equivalenceValue.getDifferences().contains(diff)); diff.setEquivalence(null); assertTrue(notified); notified = false; assertNull(diff.getEquivalence()); assertSame(feature.getDefaultValue(), diff.getEquivalence()); assertSame(diff.getEquivalence(), diff.eGet(feature)); assertSame(diff.getEquivalence(), diff.eGet(feature, false)); assertFalse(diff.eIsSet(feature)); assertFalse(equivalenceValue.getDifferences().contains(diff)); } /** * Tests the behavior of reference <code>conflict</code>'s accessors. * * @generated */ @Test public void testConflict() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getDiff_Conflict(); Diff diff = CompareFactory.eINSTANCE.createDiff(); diff.eAdapters().add(new MockEAdapter()); org.eclipse.emf.compare.Conflict conflictValue = org.eclipse.emf.compare.CompareFactory.eINSTANCE .createConflict(); assertFalse(diff.eIsSet(feature)); assertNull(diff.getConflict()); diff.setConflict(conflictValue); assertTrue(notified); notified = false; assertSame(conflictValue, diff.getConflict()); assertSame(diff.getConflict(), diff.eGet(feature)); assertSame(diff.getConflict(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(conflictValue.getDifferences().contains(diff)); diff.eUnset(feature); assertTrue(notified); notified = false; assertNull(diff.getConflict()); assertSame(diff.getConflict(), diff.eGet(feature)); assertSame(diff.getConflict(), diff.eGet(feature, false)); assertFalse(diff.eIsSet(feature)); assertFalse(conflictValue.getDifferences().contains(diff)); diff.setConflict(conflictValue); assertTrue(notified); notified = false; assertSame(conflictValue, diff.getConflict()); assertSame(diff.getConflict(), diff.eGet(feature)); assertSame(diff.getConflict(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(conflictValue.getDifferences().contains(diff)); diff.eSet(feature, conflictValue); assertTrue(notified); notified = false; assertSame(conflictValue, diff.getConflict()); assertSame(diff.getConflict(), diff.eGet(feature)); assertSame(diff.getConflict(), diff.eGet(feature, false)); assertTrue(diff.eIsSet(feature)); assertTrue(conflictValue.getDifferences().contains(diff)); diff.setConflict(null); assertTrue(notified); notified = false; assertNull(diff.getConflict()); assertSame(feature.getDefaultValue(), diff.getConflict()); assertSame(diff.getConflict(), diff.eGet(feature)); assertSame(diff.getConflict(), diff.eGet(feature, false)); assertFalse(diff.eIsSet(feature)); assertFalse(conflictValue.getDifferences().contains(diff)); } /** * Tests the behavior of attribute <code>kind</code>'s accessors. * * @generated */ @Test public void testKind() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getDiff_Kind(); Diff diff = CompareFactory.eINSTANCE.createDiff(); diff.eAdapters().add(new MockEAdapter()); org.eclipse.emf.compare.DifferenceKind kindValue = (org.eclipse.emf.compare.DifferenceKind)feature .getDefaultValue(); for (org.eclipse.emf.compare.DifferenceKind aDifferenceKind : org.eclipse.emf.compare.DifferenceKind.VALUES) { if (kindValue.getValue() != aDifferenceKind.getValue()) { kindValue = aDifferenceKind; break; } } assertFalse(diff.eIsSet(feature)); assertEquals(feature.getDefaultValue(), diff.getKind()); diff.setKind(kindValue); assertTrue(notified); notified = false; assertEquals(kindValue, diff.getKind()); assertEquals(diff.getKind(), diff.eGet(feature)); assertTrue(diff.eIsSet(feature)); diff.eUnset(feature); assertTrue(notified); notified = false; assertEquals(feature.getDefaultValue(), diff.getKind()); assertEquals(diff.getKind(), diff.eGet(feature)); assertFalse(diff.eIsSet(feature)); diff.eSet(feature, kindValue); assertTrue(notified); notified = false; assertEquals(kindValue, diff.getKind()); assertEquals(diff.getKind(), diff.eGet(feature)); assertTrue(diff.eIsSet(feature)); diff.setKind(null); assertTrue(notified); notified = false; assertEquals(feature.getDefaultValue(), diff.getKind()); assertEquals(diff.getKind(), diff.eGet(feature)); assertFalse(diff.eIsSet(feature)); } /** * Tests the behavior of attribute <code>source</code>'s accessors. * * @generated */ @Test public void testSource() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getDiff_Source(); Diff diff = CompareFactory.eINSTANCE.createDiff(); diff.eAdapters().add(new MockEAdapter()); org.eclipse.emf.compare.DifferenceSource sourceValue = (org.eclipse.emf.compare.DifferenceSource)feature .getDefaultValue(); for (org.eclipse.emf.compare.DifferenceSource aDifferenceSource : org.eclipse.emf.compare.DifferenceSource.VALUES) { if (sourceValue.getValue() != aDifferenceSource.getValue()) { sourceValue = aDifferenceSource; break; } } assertFalse(diff.eIsSet(feature)); assertEquals(feature.getDefaultValue(), diff.getSource()); diff.setSource(sourceValue); assertTrue(notified); notified = false; assertEquals(sourceValue, diff.getSource()); assertEquals(diff.getSource(), diff.eGet(feature)); assertTrue(diff.eIsSet(feature)); diff.eUnset(feature); assertTrue(notified); notified = false; assertEquals(feature.getDefaultValue(), diff.getSource()); assertEquals(diff.getSource(), diff.eGet(feature)); assertFalse(diff.eIsSet(feature)); diff.eSet(feature, sourceValue); assertTrue(notified); notified = false; assertEquals(sourceValue, diff.getSource()); assertEquals(diff.getSource(), diff.eGet(feature)); assertTrue(diff.eIsSet(feature)); diff.setSource(null); assertTrue(notified); notified = false; assertEquals(feature.getDefaultValue(), diff.getSource()); assertEquals(diff.getSource(), diff.eGet(feature)); assertFalse(diff.eIsSet(feature)); } /** * Tests the behavior of attribute <code>state</code>'s accessors. * * @generated */ @Test public void testState() { EStructuralFeature feature = org.eclipse.emf.compare.ComparePackage.eINSTANCE.getDiff_State(); Diff diff = CompareFactory.eINSTANCE.createDiff(); diff.eAdapters().add(new MockEAdapter()); org.eclipse.emf.compare.DifferenceState stateValue = (org.eclipse.emf.compare.DifferenceState)feature .getDefaultValue(); for (org.eclipse.emf.compare.DifferenceState aDifferenceState : org.eclipse.emf.compare.DifferenceState.VALUES) { if (stateValue.getValue() != aDifferenceState.getValue()) { stateValue = aDifferenceState; break; } } assertFalse(diff.eIsSet(feature)); assertEquals(feature.getDefaultValue(), diff.getState()); diff.setState(stateValue); assertTrue(notified); notified = false; assertEquals(stateValue, diff.getState()); assertEquals(diff.getState(), diff.eGet(feature)); assertTrue(diff.eIsSet(feature)); diff.eUnset(feature); assertTrue(notified); notified = false; assertEquals(feature.getDefaultValue(), diff.getState()); assertEquals(diff.getState(), diff.eGet(feature)); assertFalse(diff.eIsSet(feature)); diff.eSet(feature, stateValue); assertTrue(notified); notified = false; assertEquals(stateValue, diff.getState()); assertEquals(diff.getState(), diff.eGet(feature)); assertTrue(diff.eIsSet(feature)); diff.setState(null); assertTrue(notified); notified = false; assertEquals(feature.getDefaultValue(), diff.getState()); assertEquals(diff.getState(), diff.eGet(feature)); assertFalse(diff.eIsSet(feature)); } }