DBZ-5015 Get the json value of a Document when parsing signaling message
This commit is contained in:
parent
7efd7c5dee
commit
1b23507504
@ -60,6 +60,7 @@ Brandon Maguire
|
||||
Brennan Vincent
|
||||
Camile Sing
|
||||
Cao Manh Dat
|
||||
Chad Marmon
|
||||
Cheng Pan
|
||||
Ching Tsai
|
||||
Chris Baumbauer
|
||||
|
@ -833,8 +833,12 @@ public Optional<String[]> parseSignallingMessage(Struct value) {
|
||||
final String[] result = new String[3];
|
||||
int idx = 0;
|
||||
for (Object fieldValue : fields.values()) {
|
||||
if (fieldValue instanceof Document) {
|
||||
result[idx++] = ((Document) fieldValue).toJson();
|
||||
} else {
|
||||
result[idx++] = fieldValue.toString();
|
||||
}
|
||||
}
|
||||
return Optional.of(result);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,30 @@
|
||||
package io.debezium.connector.mongodb;
|
||||
|
||||
import org.apache.kafka.connect.data.Schema;
|
||||
import org.apache.kafka.connect.data.SchemaBuilder;
|
||||
import org.apache.kafka.connect.data.Struct;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import java.util.Optional;
|
||||
|
||||
public class MongoDbConnectorConfigTest {
|
||||
|
||||
@Test
|
||||
public void parseSignallingMessage() {
|
||||
Schema schema = new SchemaBuilder(Schema.Type.STRUCT).field("after", Schema.STRING_SCHEMA).build();
|
||||
Struct struct = new Struct(schema);
|
||||
struct.put("after", "{\"_id\":\"test-1\"," +
|
||||
"\"type\":\"execute-snapshot\"," +
|
||||
"\"data\":{\"data-collections\":[\"database.collection\"],\"type\":\"incremental\"}}");
|
||||
MongoDbConnectorConfig mongoDbConnectorConfig = new MongoDbConnectorConfig(TestHelper.getConfiguration());
|
||||
|
||||
Optional<String[]> resultOpt = mongoDbConnectorConfig.parseSignallingMessage(struct);
|
||||
|
||||
Assert.assertTrue(resultOpt.isPresent());
|
||||
String[] result = resultOpt.get();
|
||||
Assert.assertEquals(3, result.length);
|
||||
Assert.assertEquals("test-1", result[0]);
|
||||
Assert.assertEquals("execute-snapshot", result[1]);
|
||||
Assert.assertEquals("{\"data-collections\": [\"database.collection\"], \"type\": \"incremental\"}", result[2]);
|
||||
}
|
||||
}
|
@ -127,3 +127,4 @@ nenad,Nenad Stojanovikj
|
||||
miphik,Andrey Savchuk
|
||||
narzdavid,Narz David
|
||||
LarsWerkman, Lars Werkman
|
||||
chadthman, Chad Marmon
|
||||
|
Loading…
Reference in New Issue
Block a user