package com.michaelthomas.set.hashset; /** * @author Michael Thomas (www.michael-thomas.com) michael@michael-thomas.com * */ import static org.junit.Assert.*; import java.util.HashSet; import java.util.List; import java.util.Set; import org.junit.Before; import org.junit.Test; import com.michaelthomas.collection.MyCollectionTraverse; public class MyHashSetTest { private MyCollectionTraverse myCollectionTraverse = new MyCollectionTraverse(); MyHashSet myObj = new MyHashSet(); Set mySetObjPlay = new HashSet(); private Set set1; private Set set2; private Set setNulls; private List list; @Before public void setUp() throws Exception { set1 = myObj.buildHashSetCarVendors1(); set2 = myObj.buildHashSetCarVendors2(); setNulls = myObj.buildHashSetWithNulls(); list = myObj.buildListDuplicateCarVendors(); } @Test public void testBuildSetCarVendors1() { assertEquals(3, set1.size()); assertEquals(set1.toString(),set1.toString()); //WARNING: No order guaranteed! } @Test public void testBuildSetCarVendors2() { assertEquals(3, set2.size()); assertEquals(set2.toString(),set2.toString()); //WARNING: No order guaranteed! } @Test public void testHashSetWithNulls() { assertEquals(2, setNulls.size()); } @Test public void testBuildNoDuplicates() { mySetObjPlay.add("One"); mySetObjPlay.add("Two"); mySetObjPlay.add("Three"); assertEquals(3, set1.size()); assertFalse(mySetObjPlay.add("Three")); //No duplicates allowed. assertEquals(3, set1.size()); mySetObjPlay.add("Four"); assertEquals(3, set1.size()); } @Test public void testIterateForLoopExample() { String setString = myCollectionTraverse.iterateForLoopExample(set1); assertEquals(setString, setString ); //WARNING: No order guaranteed! } @Test public void testRemoveDupsFromAList() { assertEquals(4, list.size()); List uniqueList = myObj.removeDupsFromAList(list); assertEquals(3, uniqueList.size()); //Removed 1 duplicate (Toyota)! } @Test public void testReturnDupsFrom2Sets() { Set dups = myObj.returnDups(set1, set2); assertEquals(1, dups.size()); assertEquals("BMW", myCollectionTraverse.iterateForLoopExample(dups)); //Warning: Can't guarantee order of a Set. } @Test public void testReturnDupsFrom2Lists() { List dups = myObj.returnDups(myObj.buildListDuplicateCarVendors(), myObj.buildListDuplicateCarVendors2()); assertEquals(2, dups.size()); assertTrue(dups.contains("BMW")); //Warning: Can't guarantee order of a Set used to hold dups. assertTrue(dups.contains("Toyota")); //Warning: Can't guarantee order of a Set used to hold dups. } @Test public void testReturnItemsInBothSets() { Set set = myObj.ReturnItemsInBothSets(set1, set2); assertEquals(1, set.size()); assertTrue(set.contains("BMW")); } @Test public void testReturnItemsNotInBothSets() { Set set = myObj.ReturnItemsNotInBothSets(set1, set2); assertEquals(4, set.size()); assertTrue(! set.contains("BMW")); assertTrue(set.contains("Toyota")); //Warning: Can't guarantee order of a Set used to hold dups. } }