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 @Override
36 public MultiSet<E> getCollection() {
37 return super.getCollection();
38 }
39
40 @Override
41 public String getCompatibilityVersion() {
42 return "4.1";
43 }
44
45 @Override
46 protected int getIterationBehaviour() {
47 return UNORDERED;
48 }
49
50 @Override
51 public boolean isAddSupported() {
52 return false;
53 }
54
55 @Override
56 public boolean isNullSupported() {
57 return false;
58 }
59
60 @Override
61 public boolean isRemoveSupported() {
62 return false;
63 }
64
65 @Override
66 public MultiSet<E> makeFullCollection() {
67 final MultiSet<E> multiset = new HashMultiSet<>();
68 multiset.addAll(Arrays.asList(getFullElements()));
69 return UnmodifiableMultiSet.unmodifiableMultiSet(multiset);
70 }
71
72 @Override
73 public MultiSet<E> makeObject() {
74 return UnmodifiableMultiSet.unmodifiableMultiSet(new HashMultiSet<>());
75 }
76
77 @Test
78 public void testAdd() {
79 final MultiSet<E> multiset = makeFullCollection();
80 final MultiSet<E> unmodifiableMultiSet = UnmodifiableMultiSet.unmodifiableMultiSet(multiset);
81 assertThrows(UnsupportedOperationException.class, () -> unmodifiableMultiSet.add((E) "One", 1));
82 }
83
84 @Test
85 public void testDecorateFactory() {
86 final MultiSet<E> multiset = makeFullCollection();
87 assertSame(multiset, UnmodifiableMultiSet.unmodifiableMultiSet(multiset));
88
89 assertThrows(NullPointerException.class, () -> UnmodifiableMultiSet.unmodifiableMultiSet(null));
90 }
91
92 @Test
93 public void testEntrySet() {
94 final MultiSet<E> multiset = makeFullCollection();
95 final MultiSet<E> unmodifiableMultiSet = UnmodifiableMultiSet.unmodifiableMultiSet(multiset);
96 assertSame(unmodifiableMultiSet.entrySet().size(), multiset.entrySet().size());
97 }
98
99 @Test
100 public void testRemove() {
101 final MultiSet<E> multiset = makeFullCollection();
102 final MultiSet<E> unmodifiableMultiSet = UnmodifiableMultiSet.unmodifiableMultiSet(multiset);
103 assertThrows(UnsupportedOperationException.class, () -> unmodifiableMultiSet.remove("One", 1));
104 }
105
106 @Test
107 public void testSetCount() {
108 final MultiSet<E> multiset = makeFullCollection();
109 final MultiSet<E> unmodifiableMultiSet = UnmodifiableMultiSet.unmodifiableMultiSet(multiset);
110 assertThrows(UnsupportedOperationException.class, () -> unmodifiableMultiSet.setCount((E) "One", 2));
111 }
112
113 @Test
114 public void testUnmodifiable() {
115 assertTrue(makeObject() instanceof Unmodifiable);
116 assertTrue(makeFullCollection() instanceof Unmodifiable);
117 }
118
119
120
121
122
123
124
125
126 }