|
@@ -0,0 +1,73 @@
|
|
|
+package com.provectus.kafka.ui.serdes.builtin;
|
|
|
+
|
|
|
+import static org.assertj.core.api.Assertions.assertThat;
|
|
|
+
|
|
|
+import com.provectus.kafka.ui.serde.api.DeserializeResult;
|
|
|
+import com.provectus.kafka.ui.serde.api.Serde;
|
|
|
+import com.provectus.kafka.ui.serdes.PropertyResolverImpl;
|
|
|
+import com.provectus.kafka.ui.serdes.RecordHeadersImpl;
|
|
|
+import org.junit.jupiter.api.BeforeEach;
|
|
|
+import org.junit.jupiter.params.ParameterizedTest;
|
|
|
+import org.junit.jupiter.params.provider.EnumSource;
|
|
|
+
|
|
|
+public class HexSerdeTest {
|
|
|
+
|
|
|
+ private static final byte[] TEST_BYTES = "hello world".getBytes();
|
|
|
+ private static final String TEST_BYTES_HEX_ENCODED = "68 65 6C 6C 6F 20 77 6F 72 6C 64";
|
|
|
+
|
|
|
+ private Serde hexSerde;
|
|
|
+
|
|
|
+ @BeforeEach
|
|
|
+ void init() {
|
|
|
+ hexSerde = new HexSerde();
|
|
|
+ hexSerde.configure(
|
|
|
+ PropertyResolverImpl.empty(),
|
|
|
+ PropertyResolverImpl.empty(),
|
|
|
+ PropertyResolverImpl.empty()
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ @ParameterizedTest
|
|
|
+ @EnumSource
|
|
|
+ void serializesInputAsHexString(Serde.Target type) {
|
|
|
+ var serializer = hexSerde.serializer("anyTopic", type);
|
|
|
+ byte[] bytes = serializer.serialize(TEST_BYTES_HEX_ENCODED);
|
|
|
+ assertThat(bytes).isEqualTo(TEST_BYTES);
|
|
|
+ }
|
|
|
+
|
|
|
+ @ParameterizedTest
|
|
|
+ @EnumSource
|
|
|
+ void serializesEmptyStringAsEmptyBytesArray(Serde.Target type) {
|
|
|
+ var serializer = hexSerde.serializer("anyTopic", type);
|
|
|
+ byte[] bytes = serializer.serialize("");
|
|
|
+ assertThat(bytes).isEqualTo(new byte[] {});
|
|
|
+ }
|
|
|
+
|
|
|
+ @ParameterizedTest
|
|
|
+ @EnumSource
|
|
|
+ void deserializesDataAsHexBytes(Serde.Target type) {
|
|
|
+ var deserializer = hexSerde.deserializer("anyTopic", type);
|
|
|
+ var result = deserializer.deserialize(new RecordHeadersImpl(), TEST_BYTES);
|
|
|
+ assertThat(result.getResult()).isEqualTo(TEST_BYTES_HEX_ENCODED);
|
|
|
+ assertThat(result.getType()).isEqualTo(DeserializeResult.Type.STRING);
|
|
|
+ assertThat(result.getAdditionalProperties()).isEmpty();
|
|
|
+ }
|
|
|
+
|
|
|
+ @ParameterizedTest
|
|
|
+ @EnumSource
|
|
|
+ void getSchemaReturnsEmpty(Serde.Target type) {
|
|
|
+ assertThat(hexSerde.getSchema("anyTopic", type)).isEmpty();
|
|
|
+ }
|
|
|
+
|
|
|
+ @ParameterizedTest
|
|
|
+ @EnumSource
|
|
|
+ void canDeserializeReturnsTrueForAllInputs(Serde.Target type) {
|
|
|
+ assertThat(hexSerde.canDeserialize("anyTopic", type)).isTrue();
|
|
|
+ }
|
|
|
+
|
|
|
+ @ParameterizedTest
|
|
|
+ @EnumSource
|
|
|
+ void canSerializeReturnsTrueForAllInput(Serde.Target type) {
|
|
|
+ assertThat(hexSerde.canSerialize("anyTopic", type)).isTrue();
|
|
|
+ }
|
|
|
+}
|