@Test public void testBinaryCompatibility() { KafkaCheckpointLogKey logKey1 = new KafkaCheckpointLogKey(KafkaCheckpointLogKey.CHECKPOINT_KEY_TYPE, new TaskName("Partition 0"), GroupByPartitionFactory.class.getCanonicalName()); KafkaCheckpointLogKeySerde checkpointSerde = new KafkaCheckpointLogKeySerde(); byte[] bytes = ("{\"systemstreampartition-grouper-factory\"" + ":\"org.apache.samza.container.grouper.stream.GroupByPartitionFactory\",\"taskName\":\"Partition 0\"," + "\"type\":\"checkpoint\"}").getBytes(); // test that the checkpoints returned by the Serde are byte-wise identical to an actual checkpoint in Kafka Assert.assertEquals(true, Arrays.equals(bytes, checkpointSerde.toBytes(logKey1))); }
/** * Creates a new checkpoint envelope for the provided task, ssp and offset */ private IncomingMessageEnvelope newCheckpointEnvelope(TaskName taskName, SystemStreamPartition ssp, String offset) { KafkaCheckpointLogKey checkpointKey = new KafkaCheckpointLogKey("checkpoint", taskName, GROUPER_FACTORY_CLASS); KafkaCheckpointLogKeySerde checkpointKeySerde = new KafkaCheckpointLogKeySerde(); Checkpoint checkpointMsg = new Checkpoint(ImmutableMap.of(ssp, offset)); CheckpointSerde checkpointMsgSerde = new CheckpointSerde(); return new IncomingMessageEnvelope(CHECKPOINT_SSP, offset, checkpointKeySerde.toBytes(checkpointKey), checkpointMsgSerde.toBytes(checkpointMsg)); }
@Test public void testSerde() { KafkaCheckpointLogKey key = new KafkaCheckpointLogKey(KafkaCheckpointLogKey.CHECKPOINT_KEY_TYPE, new TaskName("Partition 0"), GroupByPartitionFactory.class.getCanonicalName()); KafkaCheckpointLogKeySerde checkpointSerde = new KafkaCheckpointLogKeySerde(); // test that deserialize(serialize(k)) == k Assert.assertEquals(key, checkpointSerde.fromBytes(checkpointSerde.toBytes(key))); } }