1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.collections4.multiset;
18
19 import static org.junit.jupiter.api.Assertions.assertSame;
20 import static org.junit.jupiter.api.Assertions.assertThrows;
21 import static org.junit.jupiter.api.Assertions.assertTrue;
22
23 import java.util.Arrays;
24
25 import org.apache.commons.collections4.MultiSet;
26 import org.apache.commons.collections4.Unmodifiable;
27 import org.junit.jupiter.api.Test;
28
29
30
31
32
33 public class UnmodifiableMultiSetTest<E> extends AbstractMultiSetTest<E> {
34
35 public UnmodifiableMultiSetTest() {
36 super(UnmodifiableMultiSetTest.class.getSimpleName());
37 }
38
39 @Override
40 public MultiSet<E> getCollection() {
41 return super.getCollection();
42 }
43
44 @Override
45 public String getCompatibilityVersion() {
46 return "4.1";
47 }
48
49 @Override
50 protected int getIterationBehaviour() {
51 return UNORDERED;
52 }
53
54 @Override
55 public boolean isAddSupported() {
56 return false;
57 }
58
59 @Override
60 public boolean isNullSupported() {
61 return false;
62 }
63
64 @Override
65 public boolean isRemoveSupported() {
66 return false;
67 }
68
69 @Override
70 public MultiSet<E> makeFullCollection() {
71 final MultiSet<E> multiset = new HashMultiSet<>();
72 multiset.addAll(Arrays.asList(getFullElements()));
73 return UnmodifiableMultiSet.unmodifiableMultiSet(multiset);
74 }
75
76 @Override
77 public MultiSet<E> makeObject() {
78 return UnmodifiableMultiSet.unmodifiableMultiSet(new HashMultiSet<>());
79 }
80
81 @Test
82 public void testAdd() {
83 final MultiSet<E> multiset = makeFullCollection();
84 final MultiSet<E> unmodifiableMultiSet = UnmodifiableMultiSet.unmodifiableMultiSet(multiset);
85 assertThrows(UnsupportedOperationException.class, () -> unmodifiableMultiSet.add((E) "One", 1));
86 }
87
88 @Test
89 public void testDecorateFactory() {
90 final MultiSet<E> multiset = makeFullCollection();
91 assertSame(multiset, UnmodifiableMultiSet.unmodifiableMultiSet(multiset));
92
93 assertThrows(NullPointerException.class, () -> UnmodifiableMultiSet.unmodifiableMultiSet(null));
94 }
95
96 @Test
97 public void testEntrySet() {
98 final MultiSet<E> multiset = makeFullCollection();
99 final MultiSet<E> unmodifiableMultiSet = UnmodifiableMultiSet.unmodifiableMultiSet(multiset);
100 assertSame( unmodifiableMultiSet.entrySet().size(), multiset.entrySet().size());
101 }
102
103 @Test
104 public void testRemove() {
105 final MultiSet<E> multiset = makeFullCollection();
106 final MultiSet<E> unmodifiableMultiSet = UnmodifiableMultiSet.unmodifiableMultiSet(multiset);
107 assertThrows(UnsupportedOperationException.class, () -> unmodifiableMultiSet.remove("One", 1));
108 }
109
110 @Test
111 public void testSetCount() {
112 final MultiSet<E> multiset = makeFullCollection();
113 final MultiSet<E> unmodifiableMultiSet = UnmodifiableMultiSet.unmodifiableMultiSet(multiset);
114 assertThrows(UnsupportedOperationException.class, () -> unmodifiableMultiSet.setCount((E) "One", 2));
115 }
116
117 @Test
118 public void testUnmodifiable() {
119 assertTrue(makeObject() instanceof Unmodifiable);
120 assertTrue(makeFullCollection() instanceof Unmodifiable);
121 }
122
123
124
125
126
127
128
129
130 }