1 package com.github.davidmoten.guavamini; 2 3 import static org.junit.Assert.assertEquals; 4 import static org.junit.Assert.assertTrue; 5 6 import java.util.HashMap; 7 import java.util.LinkedHashMap; 8 import java.util.Map; 9 import java.util.TreeMap; 10 11 import org.junit.Test; 12 13 import com.github.davidmoten.junit.Asserts; 14 15 public class MapsTest { 16 17 @Test 18 public void isUtilityClass() { 19 Asserts.assertIsUtilityClass(Maps.class); 20 } 21 22 @Test 23 public void testHashMapSize1() { 24 Map<Integer, String> map = Maps.put(1, "hi").build(); 25 assertEquals("hi", map.get(1)); 26 assertEquals(1, map.size()); 27 assertTrue(map instanceof HashMap); 28 } 29 30 @Test 31 public void testHashMapSize2() { 32 Map<Integer, String> map = Maps.put(1, "hi").put(2, "there").build(); 33 assertEquals("hi", map.get(1)); 34 assertEquals("there", map.get(2)); 35 assertEquals(2, map.size()); 36 } 37 38 @Test 39 public void testHashMapEmpty() { 40 Map<Integer, String> map = Maps.empty(); 41 assertTrue(map.isEmpty()); 42 } 43 44 @Test(expected = UnsupportedOperationException.class) 45 public void testHashMapImmutable() { 46 Map<Integer, String> map = Maps.put(1, "hi").buildImmutable(); 47 assertEquals("hi", map.get(1)); 48 assertEquals(1, map.size()); 49 map.put(2, "there"); 50 } 51 52 @Test 53 public void testHashMapWithInitialSize() { 54 Map<Integer, String> map = Maps.hashMap().initialSize(4).put(1, "hi").build(); 55 assertEquals("hi", map.get(1)); 56 assertEquals(1, map.size()); 57 assertTrue(map instanceof HashMap); 58 } 59 60 @Test 61 public void testCustomMapWithInitialSize() { 62 Map<Integer, String> map = Maps.factory(size -> new HashMap<Object, Object>(size)) 63 .initialSize(4).put(1, "hi").build(); 64 assertEquals("hi", map.get(1)); 65 assertEquals(1, map.size()); 66 assertTrue(map instanceof HashMap); 67 } 68 69 @Test 70 public void testTreeMapSize1() { 71 Map<Integer, String> map = Maps.treeMap().put(1, "hi").build(); 72 assertEquals("hi", map.get(1)); 73 assertEquals(1, map.size()); 74 assertTrue(map instanceof TreeMap); 75 } 76 77 @Test 78 public void testLinkedHashMapMapSize1() { 79 Map<Integer, String> map = Maps.linkedHashMap().put(1, "hi").build(); 80 assertEquals("hi", map.get(1)); 81 assertEquals(1, map.size()); 82 assertTrue(map instanceof LinkedHashMap); 83 } 84 85 @Test(expected = IllegalArgumentException.class) 86 public void testMapWithInitialSizeInvalid() { 87 Maps.hashMap().initialSize(0); 88 } 89 90 }