@Test
public void testUtf8CharSequenceSetImmutable() {
List<Utf8> colors = Lists.newArrayList(
new Utf8("orange"), new Utf8("green"), new Utf8("blue"),
new Utf8("red"), new Utf8("purple"), new Utf8("red"));
final ImmutableCharSequenceSet set = new ImmutableCharSequenceSet(colors);
TestHelpers.assertThrows("Should reject additions to the set",
UnsupportedOperationException.class, new Runnable() {
@Override
public void run() {
set.add(new Utf8("white"));
}
});
TestHelpers.assertThrows("Should reject bulk additions to the set",
UnsupportedOperationException.class, new Runnable() {
@Override
public void run() {
set.addAll(Lists.newArrayList(new Utf8("white"), new Utf8("black")));
}
});
TestHelpers.assertThrows("Should reject removals from the set",
UnsupportedOperationException.class, new Runnable() {
@Override
public void run() {
set.remove(new Utf8("purple"));
}
});
TestHelpers.assertThrows("Should reject bulk removals from the set",
UnsupportedOperationException.class, new Runnable() {
@Override
public void run() {
set.removeAll(Lists.newArrayList(new Utf8("purple"), new Utf8("red")));
}
});
}