Skip to content

Commit 0c0ad67

Browse files
add map of strings and ints to unit test
1 parent 729f453 commit 0c0ad67

File tree

1 file changed

+44
-5
lines changed

1 file changed

+44
-5
lines changed

src/test/java/at/grahsl/kafka/connect/mongodb/converter/RecordConverterTest.java

+44-5
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import java.util.Arrays;
3535
import java.util.HashMap;
3636
import java.util.LinkedHashMap;
37+
import java.util.List;
3738
import java.util.Map;
3839

3940
import static org.junit.jupiter.api.Assertions.*;
@@ -45,7 +46,8 @@ public class RecordConverterTest {
4546
public static Schema OBJ_SCHEMA_1;
4647
public static Struct OBJ_STRUCT_1;
4748
public static Map OBJ_MAP_1;
48-
public static BsonDocument EXPECTED_BSON_DOC_BYTES_1;
49+
public static BsonDocument EXPECTED_BSON_DOC_OBJ_STRUCT_1;
50+
public static BsonDocument EXPECTED_BSON_DOC_OBJ_MAP_1;
4951
public static BsonDocument EXPECTED_BSON_DOC_RAW_1;
5052

5153
@BeforeAll
@@ -82,6 +84,8 @@ public static void initializeTestData() {
8284
.build())
8385
)
8486
.field("mySubDoc2", SchemaBuilder.map(Schema.STRING_SCHEMA, Schema.INT32_SCHEMA).build())
87+
.field( "myMapOfStrings", SchemaBuilder.map(Schema.STRING_SCHEMA, SchemaBuilder.array(Schema.STRING_SCHEMA).build()).build())
88+
.field( "myMapOfInts", SchemaBuilder.map(Schema.STRING_SCHEMA, SchemaBuilder.array(Schema.INT32_SCHEMA).build()).build())
8589
.field("myBytes", Schema.BYTES_SCHEMA)
8690
.field("myDate", Date.SCHEMA)
8791
.field("myTimestamp", Timestamp.SCHEMA)
@@ -108,6 +112,16 @@ public static void initializeTestData() {
108112
)
109113
)
110114
.put("mySubDoc2",new HashMap<String,Integer>(){{ put("k1",9); put("k2",8); put("k3",7);}})
115+
.put("myMapOfStrings", new HashMap<String, List<String>>(){{
116+
put("k1", Arrays.asList("v1-a", "v1-b"));
117+
put("k2", Arrays.asList("v2-a"));
118+
put("k3", Arrays.asList("v3-a", "v3-b", "v3-c"));
119+
}})
120+
.put("myMapOfInts", new HashMap<String, List<Integer>>(){{
121+
put("k1", Arrays.asList(11, 12));
122+
put("k2", Arrays.asList(21));
123+
put("k3", Arrays.asList(31, 32, 33));
124+
}})
111125
.put("myBytes", new byte[]{75, 97, 102, 107, 97, 32, 114, 111, 99, 107, 115, 33})
112126
.put("myDate", java.util.Date.from(ZonedDateTime.of(
113127
LocalDate.of(2017,3,17), LocalTime.MIDNIGHT, ZoneOffset.systemDefault()
@@ -154,7 +168,7 @@ public static void initializeTestData() {
154168
// thus I'm cheating a little by using a Decimal128 here...
155169
OBJ_MAP_1.put("myDecimal", Decimal128.parse("12345.6789"));
156170

157-
EXPECTED_BSON_DOC_BYTES_1 = new BsonDocument()
171+
BsonDocument commonMapAndStructFields = new BsonDocument()
158172
.append("_id", new BsonString("1234567890"))
159173
.append("myString", new BsonString("some foo bla text"))
160174
.append("myInt", new BsonInt32(42))
@@ -192,7 +206,32 @@ public static void initializeTestData() {
192206
))
193207
.append("myDecimal", new BsonDecimal128(new Decimal128(new BigDecimal("12345.6789"))));
194208

195-
EXPECTED_BSON_DOC_RAW_1 = EXPECTED_BSON_DOC_BYTES_1.clone();
209+
EXPECTED_BSON_DOC_OBJ_STRUCT_1 = commonMapAndStructFields.clone()
210+
.append("myMapOfStrings", new BsonDocument("k1", new BsonInt32(9))
211+
.append("k1", new BsonArray(Arrays.asList(
212+
new BsonString("v1-a"),
213+
new BsonString("v1-b"))))
214+
.append("k2", new BsonArray(Arrays.asList(
215+
new BsonString("v2-a"))))
216+
.append("k3", new BsonArray(Arrays.asList(
217+
new BsonString("v3-a"),
218+
new BsonString("v3-b"),
219+
new BsonString("v3-c"))))
220+
).append("myMapOfInts", new BsonDocument("k1", new BsonInt32(9))
221+
.append("k1", new BsonArray(Arrays.asList(
222+
new BsonInt32(11),
223+
new BsonInt32(12))))
224+
.append("k2", new BsonArray(Arrays.asList(
225+
new BsonInt32(21))))
226+
.append("k3", new BsonArray(Arrays.asList(
227+
new BsonInt32(31),
228+
new BsonInt32(32),
229+
new BsonInt32(33))))
230+
);
231+
232+
EXPECTED_BSON_DOC_OBJ_MAP_1 = commonMapAndStructFields.clone();
233+
234+
EXPECTED_BSON_DOC_RAW_1 = commonMapAndStructFields.clone();
196235
EXPECTED_BSON_DOC_RAW_1.replace("myBytes",new BsonString("S2Fma2Egcm9ja3Mh"));
197236
EXPECTED_BSON_DOC_RAW_1.replace("myDate",new BsonInt64(1489705200000L));
198237
EXPECTED_BSON_DOC_RAW_1.replace("myTimestamp",new BsonInt64(1489705200000L));
@@ -216,7 +255,7 @@ public void testJsonRawStringConversion() {
216255
public void testAvroOrJsonWithSchemaConversion() {
217256
RecordConverter converter = new AvroJsonSchemafulRecordConverter();
218257
assertAll("",
219-
() -> assertEquals(EXPECTED_BSON_DOC_BYTES_1, converter.convert(OBJ_SCHEMA_1, OBJ_STRUCT_1)),
258+
() -> assertEquals(EXPECTED_BSON_DOC_OBJ_STRUCT_1, converter.convert(OBJ_SCHEMA_1, OBJ_STRUCT_1)),
220259
() -> assertThrows(DataException.class, () -> converter.convert(OBJ_SCHEMA_1,null)),
221260
() -> assertThrows(DataException.class, () -> converter.convert(null, OBJ_STRUCT_1)),
222261
() -> assertThrows(DataException.class, () -> converter.convert(null,null))
@@ -228,7 +267,7 @@ public void testAvroOrJsonWithSchemaConversion() {
228267
public void testJsonObjectConversion() {
229268
RecordConverter converter = new JsonSchemalessRecordConverter();
230269
assertAll("",
231-
() -> assertEquals(EXPECTED_BSON_DOC_BYTES_1, converter.convert(null, OBJ_MAP_1)),
270+
() -> assertEquals(EXPECTED_BSON_DOC_OBJ_MAP_1, converter.convert(null, OBJ_MAP_1)),
232271
() -> assertThrows(DataException.class, () -> converter.convert(null,null))
233272
);
234273
}

0 commit comments

Comments
 (0)