@Test public void testEncodeDecodeCommonStats() throws IOException { CommonStatsFlags flags = new CommonStatsFlags(); Flag[] values = CommonStatsFlags.Flag.values(); assertThat(flags.anySet(), equalTo(true)); for (Flag flag : values) { flags.set(flag, false); } assertThat(flags.anySet(), equalTo(false)); for (Flag flag : values) { flags.set(flag, true); } assertThat(flags.anySet(), equalTo(true)); Random random = getRandom(); flags.set(values[random.nextInt(values.length)], false); assertThat(flags.anySet(), equalTo(true)); { BytesStreamOutput out = new BytesStreamOutput(); flags.writeTo(out); out.close(); BytesReference bytes = out.bytes(); CommonStatsFlags readStats = CommonStatsFlags.readCommonStatsFlags(new BytesStreamInput(bytes)); for (Flag flag : values) { assertThat(flags.isSet(flag), equalTo(readStats.isSet(flag))); } } { for (Flag flag : values) { flags.set(flag, random.nextBoolean()); } BytesStreamOutput out = new BytesStreamOutput(); flags.writeTo(out); out.close(); BytesReference bytes = out.bytes(); CommonStatsFlags readStats = CommonStatsFlags.readCommonStatsFlags(new BytesStreamInput(bytes)); for (Flag flag : values) { assertThat(flags.isSet(flag), equalTo(readStats.isSet(flag))); } } }
@Override public void writeTo(StreamOutput out) throws IOException { super.writeTo(out); flags.writeTo(out); }