/* Licensed under Apache-2.0 */ package cricket.jmoore.kafka.connect.transforms; import static org.junit.jupiter.api.Assertions.*; import org.apache.kafka.connect.data.Schema; import org.apache.kafka.connect.data.SchemaBuilder; import org.junit.jupiter.api.Test; public class SchemaTest { @Test public void testBytesSchema() { assertTrue(ConnectSchemaUtil.isBytesSchema(Schema.BYTES_SCHEMA)); assertTrue(ConnectSchemaUtil.isBytesSchema(Schema.OPTIONAL_BYTES_SCHEMA)); } @Test public void testNullIsNotBytes() { assertFalse(ConnectSchemaUtil.isBytesSchema(null)); } @Test public void testNonByteTypeSchemas() { Schema[] schemas = new Schema[]{ // Boolean Schema.BOOLEAN_SCHEMA, Schema.OPTIONAL_BOOLEAN_SCHEMA, // Integers Schema.INT8_SCHEMA, Schema.INT16_SCHEMA, Schema.INT32_SCHEMA, Schema.INT64_SCHEMA, Schema.OPTIONAL_INT8_SCHEMA, Schema.OPTIONAL_INT16_SCHEMA, Schema.OPTIONAL_INT32_SCHEMA, Schema.OPTIONAL_INT64_SCHEMA, // Floats Schema.FLOAT32_SCHEMA, Schema.FLOAT64_SCHEMA, Schema.OPTIONAL_FLOAT32_SCHEMA, Schema.OPTIONAL_FLOAT64_SCHEMA, // String Schema.STRING_SCHEMA, Schema.OPTIONAL_STRING_SCHEMA, // Struct with a field of bytes SchemaBuilder.struct().name("record"). field("foo", Schema.BYTES_SCHEMA) .build(), SchemaBuilder.struct().name("record"). field("foo", Schema.OPTIONAL_BYTES_SCHEMA) .build(), // map<bytes, bytes> SchemaBuilder.map(Schema.BYTES_SCHEMA, Schema.OPTIONAL_BYTES_SCHEMA).build(), // array<bytes> SchemaBuilder.array(Schema.OPTIONAL_BYTES_SCHEMA).build() }; for (Schema s : schemas) { assertFalse(ConnectSchemaUtil.isBytesSchema(s)); } } }