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 }