@Test
public void testSerdeWithLatestSerdeVersion() throws UnknownVersionException {
MetricDef brokerMetricDef = KafkaMetricDef.brokerMetricDef();
BrokerMetricSample sample = new BrokerMetricSample("host", 0, BrokerMetricSample.LATEST_SUPPORTED_VERSION);
double value = 1.0;
for (MetricInfo metricInfo : brokerMetricDef.all()) {
sample.record(metricInfo, value);
value += 1;
}
sample.close((long) value);
byte[] bytes = sample.toBytes();
assertEquals(461, bytes.length);
BrokerMetricSample deserializedSample = BrokerMetricSample.fromBytes(bytes);
assertEquals("host", deserializedSample.entity().host());
assertEquals(0, deserializedSample.entity().brokerId());
assertEquals(BrokerMetricSample.LATEST_SUPPORTED_VERSION, deserializedSample.deserializationVersion());
int expectedNumRecords = 1;
expectedNumRecords += RawMetricType.brokerMetricTypesDiffByVersion().entrySet().stream()
.mapToInt(entry -> entry.getValue().size()).sum();
assertEquals(expectedNumRecords, deserializedSample.allMetricValues().size());
value = 1.0;
for (MetricInfo metricInfo : brokerMetricDef.all()) {
assertEquals(value, deserializedSample.metricValue(metricInfo.id()), 0.0);
value += 1;
}
assertEquals(value, deserializedSample.sampleTime(), 0.0);
}