package org.dresdenocl.standardlibrary.java.test.tests; import static org.junit.Assert.assertTrue; import java.util.List; import org.eclipse.emf.common.util.UniqueEList; import org.junit.Before; import org.junit.Test; import org.dresdenocl.essentialocl.EssentialOclPlugin; import org.dresdenocl.essentialocl.standardlibrary.OclInteger; import org.dresdenocl.essentialocl.standardlibrary.OclOrderedSet; import org.dresdenocl.essentialocl.standardlibrary.OclReal; import org.dresdenocl.essentialocl.standardlibrary.factory.IStandardLibraryFactory; public class JavaOclOrderedSetTest { private final IStandardLibraryFactory myStandardLibraryFactory = TestPerformer.getInstance().getSLFactory(); private final OclOrderedSet<OclReal> emptyOrderedSet = myStandardLibraryFactory.createOclOrderedSet(new UniqueEList<OclReal>(), EssentialOclPlugin.getOclLibraryProvider().getOclLibrary().getOclAny()); /** * OrderedSet { 0.5 } */ private OclOrderedSet<OclReal> oclOrderedSet; /** * OrderedSet { 0.5, 1.5, null } */ private OclOrderedSet<OclReal> oclOrderedSet2; /** * OrderedSet { 0.5, 1.5, 2.5, null } */ private OclOrderedSet<OclReal> oclOrderedSet3; private final OclReal oclReal0_5 = myStandardLibraryFactory.createOclReal(0.5); private final OclReal oclReal1_5 = myStandardLibraryFactory.createOclReal(1.5); private final OclReal oclReal2_5 = myStandardLibraryFactory.createOclReal(2.5); private final OclInteger integer0 = myStandardLibraryFactory.createOclInteger(0L); private final OclInteger integer1 = myStandardLibraryFactory.createOclInteger(1L); private final OclInteger integer2 = myStandardLibraryFactory.createOclInteger(2L); private final OclInteger integer3 = myStandardLibraryFactory.createOclInteger(3L); private final OclInteger integer4 = myStandardLibraryFactory.createOclInteger(4L); private final OclReal undefined = (OclReal) myStandardLibraryFactory.createOclUndefined(EssentialOclPlugin.getOclLibraryProvider().getOclLibrary().getOclReal(), "undefined value"); @Before public void init() { List<OclReal> realOrderedSet = new UniqueEList<OclReal>(); realOrderedSet.add(oclReal0_5); oclOrderedSet = myStandardLibraryFactory.createOclOrderedSet(realOrderedSet, EssentialOclPlugin.getOclLibraryProvider().getOclLibrary().getOclReal()); realOrderedSet.add(oclReal1_5); realOrderedSet.add(undefined); oclOrderedSet2 = myStandardLibraryFactory.createOclOrderedSet(realOrderedSet, EssentialOclPlugin.getOclLibraryProvider().getOclLibrary().getOclReal()); List<OclReal> realOrderedSet2 = new UniqueEList<OclReal>(); realOrderedSet2.add(oclReal0_5); realOrderedSet2.add(oclReal1_5); realOrderedSet2.add(oclReal2_5); realOrderedSet2.add(undefined); oclOrderedSet3 = myStandardLibraryFactory.createOclOrderedSet(realOrderedSet2, EssentialOclPlugin.getOclLibraryProvider().getOclLibrary().getOclReal()); } @Test public void testAppend() { assertTrue(emptyOrderedSet.append(oclReal0_5).isEqualTo(oclOrderedSet) .isTrue()); assertTrue(emptyOrderedSet.isEmpty().isTrue()); assertTrue(oclOrderedSet.append(oclReal1_5).append(undefined).isEqualTo( oclOrderedSet2).isTrue()); assertTrue(oclOrderedSet.size().isEqualTo(integer1).isTrue()); assertTrue(oclOrderedSet.append(oclReal0_5).isEqualTo(oclOrderedSet) .isTrue()); } @Test public void testIncluding() { assertTrue(emptyOrderedSet.including(oclReal0_5).isEqualTo(oclOrderedSet) .isTrue()); assertTrue(emptyOrderedSet.isEmpty().isTrue()); assertTrue(oclOrderedSet.including(oclReal1_5).including(undefined) .isEqualTo(oclOrderedSet2).isTrue()); assertTrue(oclOrderedSet.size().isEqualTo(integer1).isTrue()); assertTrue(oclOrderedSet.including(oclReal0_5).isEqualTo(oclOrderedSet) .isTrue()); } @Test public void testExluding() { assertTrue(emptyOrderedSet.excluding(oclReal0_5).isEqualTo(emptyOrderedSet) .isTrue()); assertTrue(oclOrderedSet.excluding(oclReal1_5).isEqualTo(oclOrderedSet) .isTrue()); assertTrue(oclOrderedSet.excluding(oclReal0_5).isEqualTo(emptyOrderedSet) .isTrue()); assertTrue(oclOrderedSet.size().isEqualTo(integer1).isTrue()); assertTrue(oclOrderedSet3.excluding(oclReal1_5).excluding(oclReal2_5) .excluding(undefined).isEqualTo(oclOrderedSet).isTrue()); assertTrue(oclOrderedSet3.size().isEqualTo(integer4).isTrue()); } @Test public void testInsertAt() { assertTrue(emptyOrderedSet.insertAt(integer1, oclReal0_5).isEqualTo( oclOrderedSet).isTrue()); assertTrue(emptyOrderedSet.isEmpty().isTrue()); assertTrue(emptyOrderedSet.insertAt(integer0, oclReal0_5).oclIsInvalid() .isTrue()); assertTrue(emptyOrderedSet.isEmpty().isTrue()); assertTrue(oclOrderedSet.insertAt(integer2, undefined).insertAt(integer2, oclReal1_5).insertAt(integer3, oclReal2_5).insertAt(integer2, oclReal0_5).isEqualTo(oclOrderedSet3).isTrue()); assertTrue(oclOrderedSet.size().isEqualTo(integer1).isTrue()); assertTrue(oclOrderedSet.insertAt(integer1, oclReal0_5).insertAt(integer4, oclReal1_5).oclIsInvalid().isTrue()); } @Test public void testPrepend() { assertTrue(emptyOrderedSet.prepend(oclReal0_5).isEqualTo(oclOrderedSet) .isTrue()); assertTrue(emptyOrderedSet.isEmpty().isTrue()); assertTrue(oclOrderedSet2.prepend(oclReal0_5).prepend(undefined).prepend( oclReal0_5).isEqualTo(oclOrderedSet2).isTrue()); assertTrue(oclOrderedSet2.size().isEqualTo(integer3).isTrue()); } @Test public void testSubOrderedSet() { assertTrue(emptyOrderedSet.subOrderedSet(integer1, integer1).oclIsInvalid() .isTrue()); assertTrue(oclOrderedSet.subOrderedSet(integer1, integer1).isEqualTo( oclOrderedSet).isTrue()); assertTrue(oclOrderedSet2.subOrderedSet(integer1, integer1).isEqualTo( oclOrderedSet).isTrue()); assertTrue(oclOrderedSet2.subOrderedSet(integer1, integer3).isEqualTo( oclOrderedSet2).isTrue()); assertTrue(oclOrderedSet2.subOrderedSet(integer2, integer1).oclIsInvalid() .isTrue()); assertTrue(oclOrderedSet2.subOrderedSet(integer1, integer4).oclIsInvalid() .isTrue()); } }