/* Copyright (C) 2008-2010 by Claas Wilke (claas.wilke@tu-dresden.de) This file is part of the OCL 2 Java Code Generator of Dresden OCL. Dresden OCL 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 OCL 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 OCL. If not, see <http://www.gnu.org/licenses/>. */ package org.dresdenocl.tools.codegen.ocl2java.types.test.util.test; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import org.junit.Test; import org.dresdenocl.tools.codegen.ocl2java.types.OclInvalidException; import org.dresdenocl.tools.codegen.ocl2java.types.util.OclOrderedSets; /** * <p> * Provides test cases to test the methods of the class {@link OclOrderedSets}. * </p> * * @author Claas Wilke */ public class OclOrderedSetsTest { @Test public void testAppend01() { List<String> col1 = null; assertEquals(1, OclOrderedSets.append(col1, null).size()); assertEquals(1, OclOrderedSets.append(col1, "1").size()); col1 = new ArrayList<String>(); assertEquals(1, OclOrderedSets.append(col1, null).size()); assertEquals(1, OclOrderedSets.append(col1, "1").size()); col1.add("1"); assertEquals(1, OclOrderedSets.append(col1, "1").size()); assertEquals(2, OclOrderedSets.append(col1, "2").size()); assertEquals("1", OclOrderedSets.append(col1, "2").get(0)); assertEquals("2", OclOrderedSets.append(col1, "2").get(1)); } @Test public void testAppend02() { String[] col1 = null; assertEquals(1, OclOrderedSets.append(col1, null).size()); assertEquals(1, OclOrderedSets.append(col1, "1").size()); col1 = new String[] {}; assertEquals(1, OclOrderedSets.append(col1, null).size()); assertEquals(1, OclOrderedSets.append(col1, "1").size()); col1 = new String[] { "1" }; assertEquals(1, OclOrderedSets.append(col1, "1").size()); assertEquals(2, OclOrderedSets.append(col1, "2").size()); assertEquals("1", OclOrderedSets.append(col1, "2").get(0)); assertEquals("2", OclOrderedSets.append(col1, "2").get(1)); } @Test public void testAsBag01() { List<String> col1 = null; String elem1 = "1"; String elem2 = "2"; assertEquals(0, OclOrderedSets.asBag(col1).size()); col1 = new ArrayList<String>(); assertEquals(0, OclOrderedSets.asBag(col1).size()); col1.add(elem1); assertEquals(1, OclOrderedSets.asBag(col1).size()); assertEquals(elem1, OclOrderedSets.asBag(col1).get(0)); col1.add(elem1); assertEquals(1, OclOrderedSets.asBag(col1).size()); assertEquals(elem1, OclOrderedSets.asBag(col1).get(0)); col1.add(elem2); assertEquals(2, OclOrderedSets.asBag(col1).size()); assertEquals(elem1, OclOrderedSets.asBag(col1).get(0)); assertEquals(elem2, OclOrderedSets.asBag(col1).get(1)); } @Test public void testAsBag02() { String[] col1 = null; String elem1 = "1"; String elem2 = "2"; assertEquals(0, OclOrderedSets.asBag(col1).size()); col1 = new String[] {}; assertEquals(0, OclOrderedSets.asBag(col1).size()); col1 = new String[] { elem1 }; assertEquals(1, OclOrderedSets.asBag(col1).size()); assertEquals(elem1, OclOrderedSets.asBag(col1).get(0)); col1 = new String[] { elem1, elem1 }; assertEquals(1, OclOrderedSets.asBag(col1).size()); assertEquals(elem1, OclOrderedSets.asBag(col1).get(0)); col1 = new String[] { elem1, elem1, elem2 }; assertEquals(2, OclOrderedSets.asBag(col1).size()); assertEquals(elem1, OclOrderedSets.asBag(col1).get(0)); assertEquals(elem2, OclOrderedSets.asBag(col1).get(1)); } @Test public void testAsOrderedSet01() { List<String> col1 = null; String elem1 = "1"; String elem2 = "2"; assertEquals(0, OclOrderedSets.asOrderedSet(col1).size()); col1 = new ArrayList<String>(); assertEquals(0, OclOrderedSets.asOrderedSet(col1).size()); col1.add(elem1); assertEquals(1, OclOrderedSets.asOrderedSet(col1).size()); col1.add(elem1); assertEquals(1, OclOrderedSets.asOrderedSet(col1).size()); col1.add(elem2); assertEquals(2, OclOrderedSets.asOrderedSet(col1).size()); assertEquals(elem1, OclOrderedSets.asOrderedSet(col1).get(0)); assertEquals(elem2, OclOrderedSets.asOrderedSet(col1).get(1)); } @Test public void testAsOrderedSet02() { String[] col1 = null; String elem1 = "1"; String elem2 = "2"; assertEquals(0, OclOrderedSets.asOrderedSet(col1).size()); col1 = new String[] {}; assertEquals(0, OclOrderedSets.asOrderedSet(col1).size()); col1 = new String[] { elem1 }; assertEquals(1, OclOrderedSets.asOrderedSet(col1).size()); col1 = new String[] { elem1, elem1 }; assertEquals(1, OclOrderedSets.asOrderedSet(col1).size()); col1 = new String[] { elem1, elem1, elem2 }; assertEquals(2, OclOrderedSets.asOrderedSet(col1).size()); assertEquals(elem1, OclOrderedSets.asOrderedSet(col1).get(0)); assertEquals(elem2, OclOrderedSets.asOrderedSet(col1).get(1)); } @Test public void testAsSequence01() { List<String> col1 = null; String elem1 = "1"; String elem2 = "2"; assertEquals(0, OclOrderedSets.asSequence(col1).size()); col1 = new ArrayList<String>(); assertEquals(0, OclOrderedSets.asSequence(col1).size()); col1.add(elem1); assertEquals(1, OclOrderedSets.asSequence(col1).size()); assertEquals(elem1, OclOrderedSets.asSequence(col1).get(0)); col1.add(elem1); assertEquals(1, OclOrderedSets.asSequence(col1).size()); assertEquals(elem1, OclOrderedSets.asSequence(col1).get(0)); col1.add(elem2); assertEquals(2, OclOrderedSets.asSequence(col1).size()); assertEquals(elem1, OclOrderedSets.asSequence(col1).get(0)); assertEquals(elem2, OclOrderedSets.asSequence(col1).get(1)); } @Test public void testAsSequence02() { String[] col1 = null; String elem1 = "1"; String elem2 = "2"; assertEquals(0, OclOrderedSets.asSequence(col1).size()); col1 = new String[] {}; assertEquals(0, OclOrderedSets.asSequence(col1).size()); col1 = new String[] { elem1 }; assertEquals(1, OclOrderedSets.asSequence(col1).size()); assertEquals(elem1, OclOrderedSets.asSequence(col1).get(0)); col1 = new String[] { elem1, elem1 }; assertEquals(1, OclOrderedSets.asSequence(col1).size()); assertEquals(elem1, OclOrderedSets.asSequence(col1).get(0)); col1 = new String[] { elem1, elem1, elem2 }; assertEquals(2, OclOrderedSets.asSequence(col1).size()); assertEquals(elem1, OclOrderedSets.asSequence(col1).get(0)); assertEquals(elem2, OclOrderedSets.asSequence(col1).get(1)); } @Test public void testAsSet01() { List<String> col1 = null; String elem1 = "1"; String elem2 = "2"; assertEquals(0, OclOrderedSets.asSet(col1).size()); col1 = new ArrayList<String>(); assertEquals(0, OclOrderedSets.asSet(col1).size()); col1.add(elem1); assertEquals(1, OclOrderedSets.asSet(col1).size()); col1.add(elem1); assertEquals(1, OclOrderedSets.asSet(col1).size()); col1.add(elem2); assertEquals(2, OclOrderedSets.asSet(col1).size()); } @Test public void testAsSet02() { String[] col1 = null; String elem1 = "1"; String elem2 = "2"; assertEquals(0, OclOrderedSets.asSet(col1).size()); col1 = new String[0]; assertEquals(0, OclOrderedSets.asSet(col1).size()); col1 = new String[] { elem1 }; assertEquals(1, OclOrderedSets.asSet(col1).size()); col1 = new String[] { elem1, elem1 }; assertEquals(1, OclOrderedSets.asSet(col1).size()); col1 = new String[] { elem1, elem1, elem2 }; assertEquals(2, OclOrderedSets.asSet(col1).size()); } @Test public void testAt01() { List<String> col1 = new ArrayList<String>(); col1.add("1"); assertEquals("1", OclOrderedSets.at(col1, 1)); col1.add("2"); assertEquals("2", OclOrderedSets.at(col1, 2)); } @Test public void testAt02() { String[] col1 = new String[] { "1" }; assertEquals("1", OclOrderedSets.at(col1, 1)); col1 = new String[] { "1", "2" }; assertEquals("2", OclOrderedSets.at(col1, 2)); } @Test(expected = OclInvalidException.class) public void testAt03() { List<String> col1 = new ArrayList<String>(); OclOrderedSets.at(col1, 1); } @Test(expected = OclInvalidException.class) public void testAt04() { String[] col1 = new String[] {}; OclOrderedSets.at(col1, 1); } @Test(expected = OclInvalidException.class) public void testAt05() { List<String> col1 = new ArrayList<String>(); col1.add("1"); OclOrderedSets.at(col1, 0); } @Test(expected = OclInvalidException.class) public void testAt06() { String[] col1 = new String[] { "1" }; OclOrderedSets.at(col1, 0); } @Test(expected = OclInvalidException.class) public void testAt07() { List<String> col1 = new ArrayList<String>(); col1.add("1"); OclOrderedSets.at(col1, 2); } @Test(expected = OclInvalidException.class) public void testAt08() { String[] col1 = new String[] { "1" }; OclOrderedSets.at(col1, 2); } @Test public void testFirst01() { List<String> col1 = new ArrayList<String>(); col1.add("1"); col1.add("2"); assertEquals("1", OclOrderedSets.first(col1)); } @Test public void testFirst02() { String[] col1 = new String[] { "1", "2" }; assertEquals("1", OclOrderedSets.first(col1)); } @Test(expected = OclInvalidException.class) public void testFirst03() { List<String> col1 = new ArrayList<String>(); OclOrderedSets.first(col1); } @Test(expected = OclInvalidException.class) public void testFirst04() { String[] col1 = new String[] {}; OclOrderedSets.first(col1); } @Test(expected = OclInvalidException.class) public void testFirst05() { String[] col1 = null; OclOrderedSets.first(col1); } @Test(expected = OclInvalidException.class) public void testFirst06() { List<String> col1 = null; OclOrderedSets.first(col1); } @Test public void testIndexOf01() { List<String> col1 = new ArrayList<String>(); col1.add("1"); col1.add("2"); assertEquals(new Integer(1), OclOrderedSets.indexOf(col1, "1")); assertEquals(new Integer(2), OclOrderedSets.indexOf(col1, "2")); } @Test public void testIndexOf02() { String[] col1 = new String[] { "1", "2" }; assertEquals(new Integer(1), OclOrderedSets.indexOf(col1, "1")); assertEquals(new Integer(2), OclOrderedSets.indexOf(col1, "2")); } @Test(expected = OclInvalidException.class) public void testIndexOf03() { List<String> col1 = new ArrayList<String>(); OclOrderedSets.indexOf(col1, "1"); } @Test(expected = OclInvalidException.class) public void testIndexOf04() { String[] col1 = new String[] {}; OclOrderedSets.indexOf(col1, "1"); } @Test(expected = OclInvalidException.class) public void testIndexOf05() { List<String> col1 = new ArrayList<String>(); col1.add("2"); OclOrderedSets.indexOf(col1, "1"); } @Test(expected = OclInvalidException.class) public void testIndexOf06() { String[] col1 = new String[] { "2" }; OclOrderedSets.indexOf(col1, "1"); } @Test(expected = OclInvalidException.class) public void testIndexOf07() { List<String> col1 = null; OclOrderedSets.indexOf(col1, "1"); } @Test(expected = OclInvalidException.class) public void testIndexOf08() { String[] col1 = null; OclOrderedSets.indexOf(col1, "1"); } @Test public void testInsertAt01() { List<String> col1 = null; assertEquals(1, OclOrderedSets.insertAt(col1, 1, null).size()); assertEquals(1, OclOrderedSets.insertAt(col1, 1, "1").size()); col1 = new ArrayList<String>(); assertEquals(1, OclOrderedSets.insertAt(col1, 1, null).size()); assertEquals(1, OclOrderedSets.insertAt(col1, 1, "1").size()); col1.add("1"); assertEquals(1, OclOrderedSets.insertAt(col1, 1, "1").size()); assertEquals(2, OclOrderedSets.insertAt(col1, 1, "2").size()); assertEquals("1", OclOrderedSets.insertAt(col1, 1, "2").get(1)); assertEquals("2", OclOrderedSets.insertAt(col1, 1, "2").get(0)); } @Test public void testInsertAt02() { String[] col1 = null; assertEquals(1, OclOrderedSets.insertAt(col1, 1, null).size()); assertEquals(1, OclOrderedSets.insertAt(col1, 1, "1").size()); col1 = new String[] {}; assertEquals(1, OclOrderedSets.insertAt(col1, 1, null).size()); assertEquals(1, OclOrderedSets.insertAt(col1, 1, "1").size()); col1 = new String[] { "1" }; assertEquals(1, OclOrderedSets.insertAt(col1, 1, "1").size()); assertEquals(2, OclOrderedSets.insertAt(col1, 1, "2").size()); assertEquals("1", OclOrderedSets.insertAt(col1, 1, "2").get(1)); assertEquals("2", OclOrderedSets.insertAt(col1, 1, "2").get(0)); } @Test(expected = OclInvalidException.class) public void testInsertAt03() { List<String> col1 = new ArrayList<String>(); OclOrderedSets.insertAt(col1, 0, "1"); } @Test(expected = OclInvalidException.class) public void testInsertAt04() { String[] col1 = new String[] {}; OclOrderedSets.insertAt(col1, 0, "1"); } @Test(expected = OclInvalidException.class) public void testInsertAt05() { List<String> col1 = new ArrayList<String>(); OclOrderedSets.insertAt(col1, 2, "1"); } @Test(expected = OclInvalidException.class) public void testInsertAt06() { String[] col1 = new String[] {}; OclOrderedSets.insertAt(col1, 2, "1"); } @Test public void testLast01() { List<String> col1 = new ArrayList<String>(); col1.add("1"); col1.add("2"); assertEquals("2", OclOrderedSets.last(col1)); } @Test public void testLast02() { String[] col1 = new String[] { "1", "2" }; assertEquals("2", OclOrderedSets.last(col1)); } @Test(expected = OclInvalidException.class) public void testLast03() { List<String> col1 = new ArrayList<String>(); OclOrderedSets.last(col1); } @Test(expected = OclInvalidException.class) public void testLast04() { String[] col1 = new String[] {}; OclOrderedSets.last(col1); } @Test(expected = OclInvalidException.class) public void testLast05() { String[] col1 = null; OclOrderedSets.last(col1); } @Test(expected = OclInvalidException.class) public void testLast06() { List<String> col1 = null; OclOrderedSets.last(col1); } @Test public void testPrepend01() { List<String> col1 = null; assertEquals(1, OclOrderedSets.prepend(col1, null).size()); assertEquals(1, OclOrderedSets.prepend(col1, "1").size()); col1 = new ArrayList<String>(); assertEquals(1, OclOrderedSets.prepend(col1, null).size()); assertEquals(1, OclOrderedSets.prepend(col1, "1").size()); col1.add("1"); assertEquals(1, OclOrderedSets.prepend(col1, "1").size()); assertEquals(2, OclOrderedSets.prepend(col1, "2").size()); assertEquals("1", OclOrderedSets.prepend(col1, "2").get(1)); assertEquals("2", OclOrderedSets.prepend(col1, "2").get(0)); } @Test public void testPrepend02() { String[] col1 = null; assertEquals(1, OclOrderedSets.prepend(col1, null).size()); assertEquals(1, OclOrderedSets.prepend(col1, "1").size()); col1 = new String[] {}; assertEquals(1, OclOrderedSets.prepend(col1, null).size()); assertEquals(1, OclOrderedSets.prepend(col1, "1").size()); col1 = new String[] { "1" }; assertEquals(1, OclOrderedSets.prepend(col1, "1").size()); assertEquals(2, OclOrderedSets.prepend(col1, "2").size()); assertEquals("1", OclOrderedSets.prepend(col1, "2").get(1)); assertEquals("2", OclOrderedSets.prepend(col1, "2").get(0)); } @Test public void testReverse01() { List<String> col1 = null; assertEquals(0, OclOrderedSets.reverse(col1).size()); col1 = new ArrayList<String>(); assertEquals(0, OclOrderedSets.reverse(col1).size()); col1.add("1"); assertEquals(1, OclOrderedSets.reverse(col1).size()); assertEquals("1", OclOrderedSets.reverse(col1).get(0)); col1.add("2"); assertEquals(2, OclOrderedSets.reverse(col1).size()); assertEquals("2", OclOrderedSets.reverse(col1).get(0)); assertEquals("1", OclOrderedSets.reverse(col1).get(1)); } @Test public void testReverse02() { String[] col1 = null; assertEquals(0, OclOrderedSets.reverse(col1).size()); col1 = new String[] {}; assertEquals(0, OclOrderedSets.reverse(col1).size()); col1 = new String[] { "1" }; assertEquals(1, OclOrderedSets.reverse(col1).size()); assertEquals("1", OclOrderedSets.reverse(col1).get(0)); col1 = new String[] { "1", "2" }; assertEquals(2, OclOrderedSets.reverse(col1).size()); assertEquals("2", OclOrderedSets.reverse(col1).get(0)); assertEquals("1", OclOrderedSets.reverse(col1).get(1)); } @Test public void testSubOrderedSet01() { List<String> col1 = new ArrayList<String>(); col1.add("1"); assertEquals(1, OclOrderedSets.subOrderedSet(col1, 1, 1).size()); col1.add("2"); assertEquals(2, OclOrderedSets.subOrderedSet(col1, 1, 2).size()); assertEquals(1, OclOrderedSets.subOrderedSet(col1, 1, 1).size()); assertEquals(1, OclOrderedSets.subOrderedSet(col1, 2, 2).size()); } @Test public void testSubOrderedSet02() { String[] col1 = new String[] { "1" }; assertEquals(1, OclOrderedSets.subOrderedSet(col1, 1, 1).size()); col1 = new String[] { "1", "2" }; assertEquals(2, OclOrderedSets.subOrderedSet(col1, 1, 2).size()); assertEquals(1, OclOrderedSets.subOrderedSet(col1, 1, 1).size()); assertEquals(1, OclOrderedSets.subOrderedSet(col1, 2, 2).size()); } @Test(expected = OclInvalidException.class) public void testSubOrderedSet03() { List<String> col1 = new ArrayList<String>(); OclOrderedSets.subOrderedSet(col1, 1, 1); } @Test(expected = OclInvalidException.class) public void testSubOrderedSet04() { String[] col1 = new String[] {}; OclOrderedSets.subOrderedSet(col1, 1, 1); } @Test(expected = OclInvalidException.class) public void testSubOrderedSet05() { List<String> col1 = new ArrayList<String>(); col1.add("1"); OclOrderedSets.subOrderedSet(col1, 0, 1); } @Test(expected = OclInvalidException.class) public void testSubOrderedSet06() { String[] col1 = new String[] { "1" }; OclOrderedSets.subOrderedSet(col1, 0, 1); } @Test(expected = OclInvalidException.class) public void testSubOrderedSet07() { List<String> col1 = new ArrayList<String>(); col1.add("1"); OclOrderedSets.subOrderedSet(col1, 1, 2); } @Test(expected = OclInvalidException.class) public void testSubOrderedSet08() { String[] col1 = new String[] { "1" }; OclOrderedSets.subOrderedSet(col1, 1, 2); } @Test(expected = OclInvalidException.class) public void testSubOrderedSet09() { List<String> col1 = new ArrayList<String>(); col1.add("1"); col1.add("2"); OclOrderedSets.subOrderedSet(col1, 2, 1); } @Test(expected = OclInvalidException.class) public void testSubOrderedSet10() { String[] col1 = new String[] { "1", "2" }; OclOrderedSets.subOrderedSet(col1, 2, 1); } }