|
53 | 53 | import java.util.Arrays;
|
54 | 54 | import java.util.Collection;
|
55 | 55 | import java.util.Collections;
|
| 56 | +import java.util.EnumSet; |
56 | 57 | import java.util.HashMap;
|
57 | 58 | import java.util.HashSet;
|
58 | 59 | import java.util.LinkedHashMap;
|
@@ -354,6 +355,32 @@ private <T> void runWriteReadCollectionTest(
|
354 | 355 | }
|
355 | 356 | }
|
356 | 357 |
|
| 358 | + public void testOptionalEnumSet() throws IOException { |
| 359 | + EnumSet<TestEnum> enumSet = EnumSet.allOf(TestEnum.class); |
| 360 | + BytesStreamOutput out = new BytesStreamOutput(); |
| 361 | + out.writeOptionalEnumSet(enumSet); |
| 362 | + EnumSet<TestEnum> targetSet = getStreamInput(out.bytes()).readOptionalEnumSet(TestEnum.class); |
| 363 | + assertEquals(enumSet, targetSet); |
| 364 | + |
| 365 | + enumSet = EnumSet.of(TestEnum.A, TestEnum.C, TestEnum.E); |
| 366 | + out = new BytesStreamOutput(); |
| 367 | + out.writeOptionalEnumSet(enumSet); |
| 368 | + targetSet = getStreamInput(out.bytes()).readOptionalEnumSet(TestEnum.class); |
| 369 | + assertEquals(enumSet, targetSet); |
| 370 | + |
| 371 | + enumSet = EnumSet.noneOf(TestEnum.class); |
| 372 | + out = new BytesStreamOutput(); |
| 373 | + out.writeOptionalEnumSet(enumSet); |
| 374 | + targetSet = getStreamInput(out.bytes()).readOptionalEnumSet(TestEnum.class); |
| 375 | + assertEquals(enumSet, targetSet); |
| 376 | + |
| 377 | + enumSet = null; |
| 378 | + out = new BytesStreamOutput(); |
| 379 | + out.writeOptionalEnumSet(enumSet); |
| 380 | + targetSet = getStreamInput(out.bytes()).readOptionalEnumSet(TestEnum.class); |
| 381 | + assertEquals(EnumSet.noneOf(TestEnum.class), targetSet); |
| 382 | + } |
| 383 | + |
357 | 384 | public void testSetOfLongs() throws IOException {
|
358 | 385 | final int size = randomIntBetween(0, 6);
|
359 | 386 | final Set<Long> sourceSet = new HashSet<>(size);
|
@@ -540,4 +567,8 @@ private void assertGenericRoundtrip(Object original) throws IOException {
|
540 | 567 | });
|
541 | 568 | }
|
542 | 569 |
|
| 570 | + |
| 571 | + private enum TestEnum { |
| 572 | + A, B, C, D, E; |
| 573 | + } |
543 | 574 | }
|
0 commit comments