|
17 | 17 |
|
18 | 18 | package org.apache.seatunnel.connectors.cdc.debezium.row;
|
19 | 19 |
|
| 20 | +import org.apache.seatunnel.api.table.type.ArrayType; |
20 | 21 | import org.apache.seatunnel.api.table.type.BasicType;
|
21 | 22 | import org.apache.seatunnel.api.table.type.SeaTunnelDataType;
|
22 | 23 | import org.apache.seatunnel.api.table.type.SeaTunnelRow;
|
23 | 24 | import org.apache.seatunnel.api.table.type.SeaTunnelRowType;
|
| 25 | +import org.apache.seatunnel.connectors.cdc.debezium.DebeziumDeserializationConverter; |
24 | 26 | import org.apache.seatunnel.connectors.cdc.debezium.DebeziumDeserializationConverterFactory;
|
25 | 27 | import org.apache.seatunnel.connectors.cdc.debezium.MetadataConverter;
|
26 | 28 |
|
|
34 | 36 |
|
35 | 37 | import java.time.ZoneId;
|
36 | 38 | import java.util.ArrayList;
|
| 39 | +import java.util.Arrays; |
37 | 40 | import java.util.HashMap;
|
38 | 41 |
|
39 | 42 | public class SeaTunnelRowDebeziumDeserializationConvertersTest {
|
@@ -75,4 +78,53 @@ void testDefaultValueNotUsed() throws Exception {
|
75 | 78 | Assertions.assertEquals(row.getField(0), 1);
|
76 | 79 | Assertions.assertNull(row.getField(1));
|
77 | 80 | }
|
| 81 | + |
| 82 | + @Test |
| 83 | + void testArrayConverter() throws Exception { |
| 84 | + DebeziumDeserializationConverter converter; |
| 85 | + // bool array converter |
| 86 | + converter = |
| 87 | + SeaTunnelRowDebeziumDeserializationConverters.createArrayConverter( |
| 88 | + ArrayType.BOOLEAN_ARRAY_TYPE); |
| 89 | + Boolean[] booleans = new Boolean[] {false, true}; |
| 90 | + Assertions.assertTrue( |
| 91 | + Arrays.equals( |
| 92 | + booleans, (Boolean[]) (converter.convert(Arrays.asList(booleans), null)))); |
| 93 | + // smallInt array converter |
| 94 | + converter = |
| 95 | + SeaTunnelRowDebeziumDeserializationConverters.createArrayConverter( |
| 96 | + ArrayType.SHORT_ARRAY_TYPE); |
| 97 | + Short[] shorts = new Short[] {(short) 1, (short) 2}; |
| 98 | + Assertions.assertTrue( |
| 99 | + Arrays.equals(shorts, (Short[]) (converter.convert(Arrays.asList(shorts), null)))); |
| 100 | + // int array converter |
| 101 | + converter = |
| 102 | + SeaTunnelRowDebeziumDeserializationConverters.createArrayConverter( |
| 103 | + ArrayType.INT_ARRAY_TYPE); |
| 104 | + Integer[] ints = new Integer[] {1, 2}; |
| 105 | + Assertions.assertTrue( |
| 106 | + Arrays.equals(ints, (Integer[]) (converter.convert(Arrays.asList(ints), null)))); |
| 107 | + // long array converter |
| 108 | + converter = |
| 109 | + SeaTunnelRowDebeziumDeserializationConverters.createArrayConverter( |
| 110 | + ArrayType.LONG_ARRAY_TYPE); |
| 111 | + Long[] longs = new Long[] {1L, 2L}; |
| 112 | + Assertions.assertTrue( |
| 113 | + Arrays.equals(longs, (Long[]) (converter.convert(Arrays.asList(longs), null)))); |
| 114 | + // float array converter |
| 115 | + converter = |
| 116 | + SeaTunnelRowDebeziumDeserializationConverters.createArrayConverter( |
| 117 | + ArrayType.FLOAT_ARRAY_TYPE); |
| 118 | + Float[] floats = new Float[] {1.0f, 2.0f}; |
| 119 | + Assertions.assertTrue( |
| 120 | + Arrays.equals(floats, (Float[]) (converter.convert(Arrays.asList(floats), null)))); |
| 121 | + // double array converter |
| 122 | + converter = |
| 123 | + SeaTunnelRowDebeziumDeserializationConverters.createArrayConverter( |
| 124 | + ArrayType.DOUBLE_ARRAY_TYPE); |
| 125 | + Double[] doubles = new Double[] {1.0, 2.0}; |
| 126 | + Assertions.assertTrue( |
| 127 | + Arrays.equals( |
| 128 | + doubles, (Double[]) (converter.convert(Arrays.asList(doubles), null)))); |
| 129 | + } |
78 | 130 | }
|
0 commit comments