Search in sources :

Example 1 with Schema

use of org.apache.kafka.connect.data.Schema in project kafka by apache.

the class JsonConverterTest method dateToConnectOptionalWithDefaultValue.

@Test
public void dateToConnectOptionalWithDefaultValue() {
    java.util.Date reference = new java.util.Date(0);
    Schema schema = Date.builder().optional().defaultValue(reference).schema();
    String msg = "{ \"schema\": { \"type\": \"int32\", \"name\": \"org.apache.kafka.connect.data.Date\", \"version\": 1, \"optional\": true, \"default\": 0 }, \"payload\": null }";
    SchemaAndValue schemaAndValue = converter.toConnectData(TOPIC, msg.getBytes());
    assertEquals(schema, schemaAndValue.schema());
    assertEquals(reference, schemaAndValue.value());
}
Also used : Schema(org.apache.kafka.connect.data.Schema) Date(org.apache.kafka.connect.data.Date) SchemaAndValue(org.apache.kafka.connect.data.SchemaAndValue) Test(org.junit.Test)

Example 2 with Schema

use of org.apache.kafka.connect.data.Schema in project kafka by apache.

the class JsonConverterTest method arrayToJson.

@Test
public void arrayToJson() {
    Schema int32Array = SchemaBuilder.array(Schema.INT32_SCHEMA).build();
    JsonNode converted = parse(converter.fromConnectData(TOPIC, int32Array, Arrays.asList(1, 2, 3)));
    validateEnvelope(converted);
    assertEquals(parse("{ \"type\": \"array\", \"items\": { \"type\": \"int32\", \"optional\": false }, \"optional\": false }"), converted.get(JsonSchema.ENVELOPE_SCHEMA_FIELD_NAME));
    assertEquals(JsonNodeFactory.instance.arrayNode().add(1).add(2).add(3), converted.get(JsonSchema.ENVELOPE_PAYLOAD_FIELD_NAME));
}
Also used : Schema(org.apache.kafka.connect.data.Schema) JsonNode(com.fasterxml.jackson.databind.JsonNode) Test(org.junit.Test)

Example 3 with Schema

use of org.apache.kafka.connect.data.Schema in project kafka by apache.

the class JsonConverterTest method timeToConnectWithDefaultValue.

@Test
public void timeToConnectWithDefaultValue() {
    java.util.Date reference = new java.util.Date(0);
    Schema schema = Time.builder().defaultValue(reference).schema();
    String msg = "{ \"schema\": { \"type\": \"int32\", \"name\": \"org.apache.kafka.connect.data.Time\", \"version\": 1, \"default\": 0 }, \"payload\": null }";
    SchemaAndValue schemaAndValue = converter.toConnectData(TOPIC, msg.getBytes());
    assertEquals(schema, schemaAndValue.schema());
    assertEquals(reference, schemaAndValue.value());
}
Also used : Schema(org.apache.kafka.connect.data.Schema) Date(org.apache.kafka.connect.data.Date) SchemaAndValue(org.apache.kafka.connect.data.SchemaAndValue) Test(org.junit.Test)

Example 4 with Schema

use of org.apache.kafka.connect.data.Schema in project kafka by apache.

the class JsonConverterTest method dateToConnectOptional.

@Test
public void dateToConnectOptional() {
    Schema schema = Date.builder().optional().schema();
    String msg = "{ \"schema\": { \"type\": \"int32\", \"name\": \"org.apache.kafka.connect.data.Date\", \"version\": 1, \"optional\": true }, \"payload\": null }";
    SchemaAndValue schemaAndValue = converter.toConnectData(TOPIC, msg.getBytes());
    assertEquals(schema, schemaAndValue.schema());
    assertNull(schemaAndValue.value());
}
Also used : Schema(org.apache.kafka.connect.data.Schema) SchemaAndValue(org.apache.kafka.connect.data.SchemaAndValue) Test(org.junit.Test)

Example 5 with Schema

use of org.apache.kafka.connect.data.Schema in project kafka by apache.

the class JsonConverterTest method timestampToConnectOptionalWithDefaultValue.

@Test
public void timestampToConnectOptionalWithDefaultValue() {
    Schema schema = Timestamp.builder().optional().defaultValue(new java.util.Date(42)).schema();
    String msg = "{ \"schema\": { \"type\": \"int64\", \"name\": \"org.apache.kafka.connect.data.Timestamp\", \"version\": 1,  \"optional\": true, \"default\": 42 }, \"payload\": null }";
    SchemaAndValue schemaAndValue = converter.toConnectData(TOPIC, msg.getBytes());
    assertEquals(schema, schemaAndValue.schema());
    assertEquals(new java.util.Date(42), schemaAndValue.value());
}
Also used : Schema(org.apache.kafka.connect.data.Schema) Date(org.apache.kafka.connect.data.Date) SchemaAndValue(org.apache.kafka.connect.data.SchemaAndValue) Test(org.junit.Test)

Aggregations

Schema (org.apache.kafka.connect.data.Schema)34 Test (org.junit.Test)26 SchemaAndValue (org.apache.kafka.connect.data.SchemaAndValue)17 Struct (org.apache.kafka.connect.data.Struct)12 Date (org.apache.kafka.connect.data.Date)9 JsonNode (com.fasterxml.jackson.databind.JsonNode)6 HashMap (java.util.HashMap)6 BigInteger (java.math.BigInteger)5 BigDecimal (java.math.BigDecimal)4 ConnectSchema (org.apache.kafka.connect.data.ConnectSchema)4 Field (org.apache.kafka.connect.data.Field)4 GregorianCalendar (java.util.GregorianCalendar)3 DataException (org.apache.kafka.connect.errors.DataException)3 SinkRecord (org.apache.kafka.connect.sink.SinkRecord)3 Requirements.requireStruct (org.apache.kafka.connect.transforms.util.Requirements.requireStruct)3 ArrayNode (com.fasterxml.jackson.databind.node.ArrayNode)2 Date (java.util.Date)2 Map (java.util.Map)2 SchemaBuilder (org.apache.kafka.connect.data.SchemaBuilder)2 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)1