package net.israfil.foundation.collections.nspace; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import org.testng.Assert; import org.testng.SkipException; import org.testng.annotations.Test; /** * @author cgruber * * To change this generated comment edit the template variable "typecomment": * Window>Preferences>Java>Templates. * To enable and disable the creation of type comments go to * Window>Preferences>Java>Code Generation. */ @Test public class SimpleDimensionTest { Object o1 = "TestValue1"; String d1Name = "TestDimension1"; String ordinal1 = "TestOrdinal1"; String ordinal2 = "TestOrdinal2"; String ordinal3 = "TestOrdinal3"; /** * test {@link Dimension.Dimension(String,String) Dimension(String,String)} */ public void testConstructor_String_String() { Dimension d = new SimpleDimension(d1Name, ordinal1); Assert.assertEquals(d1Name,d.getName(),"Name doesn't equal provided string."); Assert.assertTrue(d.size() == 1,"Size is not equal to 1"); } /** * test {@link Dimension.getName() getName()} */ public void testGetName() { Dimension d = new SimpleDimension(d1Name, ordinal1); Assert.assertEquals(d1Name,d.getName()); } /** * test {@link Dimension.register(NSpace) register(NSpace)} */ public void testRegister_NSpace() { throw new SkipException("Unimplemented Test"); } /** * test {@link Dimension.deregister(NSpace) deregister(NSpace)} */ public void testDeregister_NSpace() { throw new SkipException("Unimplemented Test"); } /** * test {@link Dimension.register(NSpace[]) register(NSpace[])} */ public void testRegister_NSpaceArray() { throw new SkipException("Unimplemented Test"); } /** * test {@link Dimension.deregister(NSpace[]) deregister(NSpace[])} */ public void testDeregister_NSpaceArray() { throw new SkipException("Unimplemented Test"); } /** * test {@link Dimension.add(Object) add(Object)} */ public void testAdd_Object() { Dimension d = new SimpleDimension(d1Name,ordinal1); d.add(ordinal2); Assert.assertTrue(d.contains(ordinal2),"Dimension doesn't contain added position."); } /** * test {@link Dimension.addAll(Collection) addAll(Collection)} */ public void testAddAll_Collection() { Dimension d = new SimpleDimension(d1Name,ordinal1); Collection c = new HashSet(); c.add(ordinal2); c.add(ordinal3); d.addAll(c); Assert.assertTrue(d.contains(ordinal2),"Dimension doesn't contain added position."); Assert.assertTrue(d.contains(ordinal3),"Dimension doesn't contain added position."); } @Test(expectedExceptions={UnsupportedOperationException.class}) public void testClear() { new SimpleDimension(d1Name,ordinal1).clear(); } /** * test {@link Dimension.containsAll(Collection) containsAll(Collection)} */ public void testContainsAll_Collection() { Dimension d = new SimpleDimension(d1Name,ordinal1); d.add(ordinal2); Collection c = new HashSet(); c.add(ordinal1); c.add(ordinal2); Assert.assertTrue(d.containsAll(c),"Dimension doesn't contain added positions."); d = new SimpleDimension(d1Name,ordinal1); Assert.assertFalse(d.containsAll(c),"Dimension claims to contain positions it shouldn't."); } @Test(expectedExceptions={UnsupportedOperationException.class}) public void testIsEmpty() { new SimpleDimension(d1Name,ordinal1).isEmpty(); } /** * test {@link Dimension.iterator() iterator()} */ public void testIterator() { Dimension d = new SimpleDimension(d1Name,ordinal1); Iterator i = d.iterator(); Assert.assertEquals(ordinal1,i.next()); Assert.assertFalse(i.hasNext()); } /** * test (@link Dimension.remove(Object) remove(Object)} */ public void testRemove_Object() { String toBeRemoved = ordinal2; Dimension d = new SimpleDimension(d1Name,ordinal1) .addPosition(toBeRemoved); Assert.assertTrue(d.contains(toBeRemoved)); d.remove(toBeRemoved); Assert.assertFalse(d.contains(toBeRemoved)); } /** * test {@link Dimension.removeAll(Collection) removeAll(Collection)} * TODO: This should test removing every position */ public void testRemoveAll_Collection() { Dimension d = new SimpleDimension(d1Name,ordinal1) .addPosition(ordinal2) .addPosition(ordinal3); Assert.assertTrue(d.contains(ordinal2)); Assert.assertTrue(d.contains(ordinal3)); Collection c = new HashSet(); c.add(ordinal2); c.add(ordinal3); d.removeAll(c); Assert.assertEquals(d.size(),1); } /** * test {@link Dimension.retainAll(Collection) retainAll(Collection)} */ public void testRetainAll_Collection() { Dimension d = new SimpleDimension(d1Name,ordinal1) .addPosition(ordinal2) .addPosition(ordinal3); Assert.assertTrue(d.contains(ordinal2)); Assert.assertTrue(d.contains(ordinal3)); Collection c = new HashSet(); c.add(ordinal2); c.add(ordinal3); d.retainAll(c); Assert.assertEquals(d.size(),2); } /** * test {@link Dimensions.size() size()} */ public void testSize() { Dimension d = new SimpleDimension(d1Name,ordinal1) .addPosition(ordinal2) .addPosition(ordinal3); Assert.assertEquals(d.size(),3); } /** * test {@link Dimensions.toArray() toArray()} */ public void testToArray() { Dimension d = new SimpleDimension(d1Name,ordinal1); String[] sa = (String[])d.toArray(); Assert.assertEquals(sa[0],ordinal1); } /** * test {@link Dimension.toArray(Object[]) toArray(Object[])} */ public void testToArray_ObjectArray() { Dimension d = new SimpleDimension(d1Name,ordinal1); String[] sa = (String[])d.toArray(new String[d.size()]); Assert.assertEquals(sa[0],ordinal1); } }