Skip to content

Commit ccb682d

Browse files
committed
Added tests for proto serdes
1 parent c140cbc commit ccb682d

File tree

3 files changed

+54
-0
lines changed

3 files changed

+54
-0
lines changed

kafka-streams-serdes/build.gradle.kts

+9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
`java-library`
33
jacoco
4+
id("com.google.protobuf") version "0.9.3"
45
id("org.hypertrace.avro-plugin")
56
id("org.hypertrace.publish-plugin")
67
id("org.hypertrace.jacoco-report-plugin")
@@ -24,3 +25,11 @@ dependencies {
2425
tasks.named<org.hypertrace.gradle.avro.CheckAvroCompatibility>("avroCompatibilityCheck") {
2526
enabled = false
2627
}
28+
29+
sourceSets {
30+
test {
31+
java {
32+
srcDirs("src/test/proto") // Generated Proto classes
33+
}
34+
}
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package org.hypertrace.core.kafkastreams.framework.serdes;
2+
3+
import org.apache.kafka.common.serialization.Deserializer;
4+
import org.apache.kafka.common.serialization.Serializer;
5+
import org.hypertrace.core.kafkastreams.framework.serdes.proto.ProtoDeserializer;
6+
import org.hypertrace.core.kafkastreams.framework.serdes.proto.ProtoSerializer;
7+
import org.junit.jupiter.api.Assertions;
8+
import org.junit.jupiter.api.Test;
9+
import proto.TestProtoRecordOuterClass.TestProtoRecord;
10+
11+
public class ProtoSerdeTest {
12+
13+
private static final String TEST_TOPIC = "test-topic";
14+
15+
// Subclass for testing with proto deserialization
16+
public static class TestProtoRecordDeserializer extends ProtoDeserializer<TestProtoRecord> {
17+
public TestProtoRecordDeserializer() {
18+
super(TestProtoRecord.parser());
19+
}
20+
}
21+
22+
@Test
23+
public void testSerialize() {
24+
Serializer<TestProtoRecord> serializer = new ProtoSerializer<>();
25+
26+
Deserializer<TestProtoRecord> deserializer = new TestProtoRecordDeserializer();
27+
TestProtoRecord message = TestProtoRecord.newBuilder().setId("id").build();
28+
29+
byte[] serializedData = serializer.serialize(TEST_TOPIC, message);
30+
31+
Assertions.assertNotNull(serializedData);
32+
Assertions.assertTrue(serializedData.length > 0);
33+
34+
TestProtoRecord deserializedMessage = deserializer.deserialize(TEST_TOPIC, serializedData);
35+
36+
Assertions.assertEquals(message.getId(), deserializedMessage.getId());
37+
}
38+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
syntax = "proto3";
2+
3+
package proto;
4+
5+
message TestProtoRecord {
6+
string id = 1;
7+
}

0 commit comments

Comments
 (0)