() -> { ReplaceOneModel<BsonDocument> rom = (ReplaceOneModel<BsonDocument>)wm; assertTrue(rom.getOptions().isUpsert(), "replacement expected to be done in upsert mode"); BsonDocument filter = rom.getFilter().toBsonDocument(BsonDocument.class,null); assertEquals(1,filter.size(),"filter document should only contain "+DBCollection.ID_FIELD_NAME);
() -> { ReplaceOneModel<BsonDocument> rom = (ReplaceOneModel<BsonDocument>)wm; assertTrue(rom.getOptions().isUpsert(), "replacement expected to be done in upsert mode"); BsonDocument filter = rom.getFilter().toBsonDocument(BsonDocument.class,null); assertEquals(new BsonDocument("_id",
assertTrue(wm instanceof ReplaceOneModel); ReplaceOneModel<BsonDocument> rom = (ReplaceOneModel<BsonDocument>)wm; assertTrue(rom.getOptions().isUpsert(), "replacement expected to be done in upsert mode"); BsonDocument filter = rom.getFilter().toBsonDocument(BsonDocument.class,null); assertEquals(new BsonDocument("_id",
assertTrue(wm instanceof ReplaceOneModel); ReplaceOneModel<BsonDocument> rom = (ReplaceOneModel<BsonDocument>)wm; assertTrue(rom.getOptions().isUpsert(), "replacement expected to be done in upsert mode"); BsonDocument filter = rom.getFilter().toBsonDocument(BsonDocument.class,null); assertEquals(new BsonDocument("_id",
@Test @DisplayName("when valid doc replace cdc event then correct ReplaceOneModel") public void testValidSinkDocumentForReplacement() { BsonDocument keyDoc = new BsonDocument("id",new BsonString("1004")); BsonDocument valueDoc = new BsonDocument("op",new BsonString("u")) .append("patch",new BsonString(REPLACEMENT_DOC.toJson())); WriteModel<BsonDocument> result = MONGODB_UPDATE.perform(new SinkDocument(keyDoc,valueDoc)); assertTrue(result instanceof ReplaceOneModel, () -> "result expected to be of type ReplaceOneModel"); ReplaceOneModel<BsonDocument> writeModel = (ReplaceOneModel<BsonDocument>) result; assertEquals(REPLACEMENT_DOC,writeModel.getReplacement(), ()-> "replacement doc not matching what is expected"); assertTrue(writeModel.getFilter() instanceof BsonDocument, () -> "filter expected to be of type BsonDocument"); assertEquals(FILTER_DOC,writeModel.getFilter()); assertTrue(writeModel.getOptions().isUpsert(), () -> "replacement expected to be done in upsert mode"); }
@Test @DisplayName("when valid cdc event then correct ReplaceOneModel") public void testValidSinkDocument() { BsonDocument keyDoc = new BsonDocument("id",new BsonString("1004")); BsonDocument valueDoc = new BsonDocument("op",new BsonString("c")) .append("after",new BsonString(REPLACEMENT_DOC.toJson())); WriteModel<BsonDocument> result = MONGODB_INSERT.perform(new SinkDocument(keyDoc,valueDoc)); assertTrue(result instanceof ReplaceOneModel, () -> "result expected to be of type ReplaceOneModel"); ReplaceOneModel<BsonDocument> writeModel = (ReplaceOneModel<BsonDocument>) result; assertEquals(REPLACEMENT_DOC,writeModel.getReplacement(), ()-> "replacement doc not matching what is expected"); assertTrue(writeModel.getFilter() instanceof BsonDocument, () -> "filter expected to be of type BsonDocument"); assertEquals(FILTER_DOC,writeModel.getFilter()); assertTrue(writeModel.getOptions().isUpsert(), () -> "replacement expected to be done in upsert mode"); }
@Test @DisplayName("when sink document is valid for ReplaceOneDefaultStrategy then correct ReplaceOneModel") public void testReplaceOneDefaultStrategyWithValidSinkDocument() { BsonDocument valueDoc = new BsonDocument(DBCollection.ID_FIELD_NAME,new BsonInt32(1004)) .append("first_name",new BsonString("Anne")) .append("last_name",new BsonString("Kretchmar")) .append("email",new BsonString("annek@noanswer.org")); WriteModel<BsonDocument> result = REPLACE_ONE_DEFAULT_STRATEGY.createWriteModel(new SinkDocument(null,valueDoc)); assertTrue(result instanceof ReplaceOneModel, () -> "result expected to be of type ReplaceOneModel"); ReplaceOneModel<BsonDocument> writeModel = (ReplaceOneModel<BsonDocument>) result; assertEquals(REPLACEMENT_DOC_DEFAULT,writeModel.getReplacement(), ()-> "replacement doc not matching what is expected"); assertTrue(writeModel.getFilter() instanceof BsonDocument, () -> "filter expected to be of type BsonDocument"); assertEquals(FILTER_DOC_REPLACE_DEFAULT,writeModel.getFilter()); assertTrue(writeModel.getOptions().isUpsert(), () -> "replacement expected to be done in upsert mode"); }
@Test @DisplayName("when sink document is valid for ReplaceOneBusinessKeyStrategy then correct ReplaceOneModel") public void testReplaceOneBusinessKeyStrategyWithValidSinkDocument() { BsonDocument valueDoc = new BsonDocument(DBCollection.ID_FIELD_NAME, new BsonDocument("first_name",new BsonString("Anne")) .append("last_name",new BsonString("Kretchmar"))) .append("first_name",new BsonString("Anne")) .append("last_name",new BsonString("Kretchmar")) .append("email",new BsonString("annek@noanswer.org")) .append("age", new BsonInt32(23)) .append("active", new BsonBoolean(true)); WriteModel<BsonDocument> result = REPLACE_ONE_BUSINESS_KEY_STRATEGY.createWriteModel(new SinkDocument(null,valueDoc)); assertTrue(result instanceof ReplaceOneModel, () -> "result expected to be of type ReplaceOneModel"); ReplaceOneModel<BsonDocument> writeModel = (ReplaceOneModel<BsonDocument>) result; assertEquals(REPLACEMENT_DOC_BUSINESS_KEY,writeModel.getReplacement(), ()-> "replacement doc not matching what is expected"); assertTrue(writeModel.getFilter() instanceof BsonDocument, () -> "filter expected to be of type BsonDocument"); assertEquals(FILTER_DOC_REPLACE_BUSINESS_KEY,writeModel.getFilter()); assertTrue(writeModel.getOptions().isUpsert(), () -> "replacement expected to be done in upsert mode"); }
assertTrue(writeModel.getOptions().isUpsert(), () -> "replacement expected to be done in upsert mode");
assertTrue(writeModel.getOptions().isUpsert(), () -> "replacement expected to be done in upsert mode");
assertTrue(writeModel.getOptions().isUpsert(), () -> "replacement expected to be done in upsert mode");
assertTrue(writeModel.getOptions().isUpsert(), () -> "replacement expected to be done in upsert mode");
assertTrue(writeModel.getOptions().isUpsert(), () -> "replacement expected to be done in upsert mode");
assertTrue(writeModel.getOptions().isUpsert(), () -> "replacement expected to be done in upsert mode");