/* Copyright (C) 2010 by Claas Wilke (claaswilke@gmx.net) This file is part of the OCL 2 Java Code Generator of Dresden OCL2 for Eclipse. Dresden OCL2 for Eclipse is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Dresden OCL2 for Eclipse is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Dresden OCL2 for Eclipse. If not, see <http://www.gnu.org/licenses/>. */ package org.dresdenocl.tools.codegen.ocl2java.test.aspectj.standardlibrary; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; import org.junit.Test; import testpackage.Class1; /** * <p> * Tests generated code for boolean operations of the OCL Standard Library. * </p> * * @author Claas Wilke */ public class TestSequence { /** * <p> * Tests the generated code for the method <code>Sequence.append()</code> . * </p> */ @Test public void testAppend01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(2); assertEquals(3, class1.testSequenceAppend(sequence01, 1).size()); assertEquals(1, class1.testSequenceAppend(sequence01, 1).get(2)); assertEquals(3, class1.testSequenceAppend(sequence01, 3).size()); assertEquals(3, class1.testSequenceAppend(sequence01, 3).get(2)); } /** * <p> * Tests the generated code for the method <code>Sequence.asBag()</code> . * </p> */ @Test public void testAsBag01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(1); sequence01.add(2); assertEquals(3, class1.testSequenceAsBag(sequence01).size()); } /** * <p> * Tests the generated code for the method * <code>Sequence.asOrderedSet()</code> . * </p> */ @Test public void testAsOrderedSet01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(1); sequence01.add(2); assertEquals(2, class1.testSequenceAsOrderedSet(sequence01).size()); } /** * <p> * Tests the generated code for the method * <code>Sequence.asSequence()</code> . * </p> */ @Test public void testAsSequence01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(1); sequence01.add(2); assertEquals(3, class1.testSequenceAsSequence(sequence01).size()); } /** * <p> * Tests the generated code for the method <code>Sequence.asSet()</code> . * </p> */ @Test public void testAsSet01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(1); sequence01.add(2); assertEquals(2, class1.testSequenceAsSet(sequence01).size()); } /** * <p> * Tests the generated code for the method <code>Sequence.at()</code> . * </p> */ @Test public void testAt01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(2); sequence01.add(3); assertEquals(new Integer(1), class1.testSequenceAt(sequence01, 1)); assertEquals(new Integer(2), class1.testSequenceAt(sequence01, 2)); assertEquals(new Integer(3), class1.testSequenceAt(sequence01, 3)); } /** * <p> * Tests the generated code for the method <code>Sequence.count()</code> . * </p> */ @Test public void testCount01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(1); sequence01.add(2); assertEquals(new Integer(2), class1.testSequenceCount01(sequence01, 1)); assertEquals(new Integer(1), class1.testSequenceCount01(sequence01, 2)); } /** * <p> * Tests the generated code for the method <code>Sequence.=(Sequence)</code> * . * </p> */ @Test public void testEquals01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(1); sequence01.add(2); List<Object> sequence02; sequence02 = new ArrayList<Object>(); sequence02.add(1); sequence02.add(2); sequence02.add(2); assertTrue(class1.testSequenceEquals01(sequence01, sequence01)); assertFalse(class1.testSequenceEquals01(sequence01, sequence02)); } /** * <p> * Tests the generated code for the method * <code>Sequence.excluding(T)</code>. * </p> */ @Test public void testExcluding01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(1); sequence01.add(2); List<Object> sequence02; sequence02 = new ArrayList<Object>(); sequence02.add(1); sequence02.add(1); List<Object> sequence03; sequence03 = new ArrayList<Object>(); sequence03.add(2); assertEquals(sequence01, class1.testSequenceExcluding01(sequence01, 0)); assertEquals(sequence03, class1.testSequenceExcluding01(sequence01, 1)); assertEquals(sequence02, class1.testSequenceExcluding01(sequence01, 2)); assertEquals(sequence01, class1.testSequenceExcluding01(sequence01, 3)); } /** * <p> * Tests the generated code for the method <code>Sequence.first()</code> . * </p> */ @Test public void testFirst01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(2); sequence01.add(3); assertEquals(new Integer(1), class1.testSequenceFirst(sequence01)); } /** * <p> * Tests the generated code for the method <code>Sequence.flatten()</code> . * </p> */ @Test public void testFlatten01() { Class1 class1; class1 = new Class1(); Set<Object> containedSet01; containedSet01 = new HashSet<Object>(); containedSet01.add(1); containedSet01.add(2); Set<Object> containedSet02; containedSet02 = new HashSet<Object>(); containedSet02.add(1); containedSet02.add(3); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(containedSet01); sequence01.add(containedSet02); Collection<?> flattenedCollection; flattenedCollection = class1.testSequenceFlatten(sequence01); int countOfOne = 0; for (Object elem : flattenedCollection) { if (elem.equals(1)) countOfOne++; } // end for. assertEquals(2, countOfOne); assertTrue(flattenedCollection.contains(2)); assertTrue(flattenedCollection.contains(3)); } /** * <p> * Tests the generated code for the method * <code>Sequence.including(T)</code>. * </p> */ @Test public void testIncluding01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(1); sequence01.add(2); List<Object> sequence02; sequence02 = new ArrayList<Object>(); sequence02.add(1); sequence02.add(1); sequence02.add(2); sequence02.add(2); List<Object> sequence03; sequence03 = new ArrayList<Object>(); sequence03.add(1); sequence03.add(1); sequence03.add(2); sequence03.add(1); assertEquals(sequence03, class1.testSequenceIncluding01(sequence01, 1)); assertEquals(sequence02, class1.testSequenceIncluding01(sequence01, 2)); } /** * <p> * Tests the generated code for the method <code>Sequence.indexOf(T)</code> * . * </p> */ @Test public void testIndexOf01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(2); sequence01.add(3); assertEquals(new Integer(1), class1 .testSequenceIndexOf01(sequence01, 1)); assertEquals(new Integer(2), class1 .testSequenceIndexOf01(sequence01, 2)); assertEquals(new Integer(3), class1 .testSequenceIndexOf01(sequence01, 3)); } /** * <p> * Tests the generated code for the method * <code>Sequence.insertAt(Integer, T)</code> . * </p> */ @Test public void testInsertAt01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(2); sequence01.add(3); assertEquals(4, class1.testSequenceInsertAt(sequence01, 1, 1).size()); assertEquals(4, class1.testSequenceInsertAt(sequence01, 1, 0).size()); } /** * <p> * Tests the generated code for the method <code>Sequence.last()</code> . * </p> */ @Test public void testLast01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(2); sequence01.add(3); assertEquals(new Integer(3), class1.testSequenceLast(sequence01)); } /** * <p> * Tests the generated code for the method <code>Sequence.prepend()</code> . * </p> */ @Test public void testPrepend01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(2); assertEquals(3, class1.testSequencePrepend(sequence01, 1).size()); assertEquals(1, class1.testSequencePrepend(sequence01, 1).get(0)); assertEquals(3, class1.testSequencePrepend(sequence01, 3).size()); assertEquals(3, class1.testSequencePrepend(sequence01, 3).get(0)); } /** * <p> * Tests the generated code for the method <code>Sequence.reverse()</code> . * </p> */ @Test public void testReverse01() { Class1 class1; class1 = new Class1(); List<Object> oclSequence01; oclSequence01 = new ArrayList<Object>(); oclSequence01.add("1"); oclSequence01.add("2"); oclSequence01.add("3"); List<Object> oclSequence02; oclSequence02 = new ArrayList<Object>(); oclSequence02.add("3"); oclSequence02.add("2"); oclSequence02.add("1"); assertEquals(oclSequence02, class1.testSequenceReverse(oclSequence01)); } /** * <p> * Tests the generated code for the method * <code>Sequence.subSequence(Sequence(T))</code>. * </p> */ @Test public void testSubSequence01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(2); sequence01.add(3); List<Object> sequence02; sequence02 = new ArrayList<Object>(); sequence02.add(1); sequence02.add(2); List<Object> sequence03; sequence03 = new ArrayList<Object>(); sequence03.add(2); sequence03.add(3); assertEquals(sequence02, class1.testSequenceSubSequence(sequence01, 1, 2)); assertEquals(sequence03, class1.testSequenceSubSequence(sequence01, 2, 3)); } /** * <p> * Tests the generated code for the method * <code>Sequence.union(Set(T))</code>. * </p> */ @Test public void testUnion01() { Class1 class1; class1 = new Class1(); List<Object> sequence01; sequence01 = new ArrayList<Object>(); sequence01.add(1); sequence01.add(2); List<Object> sequence02; sequence02 = new ArrayList<Object>(); sequence02.add(1); sequence02.add(3); List<Object> sequence03; sequence03 = new ArrayList<Object>(); sequence03.add(1); sequence03.add(2); sequence03.add(1); sequence03.add(3); assertEquals(sequence03, class1.testSequenceUnion01(sequence01, sequence02)); } }