use of com.marklogic.client.document.DocumentManager in project components by Talend.
the class MarkLogicWriterTest method prepareDocManagerText.
private DocumentManager prepareDocManagerText(MarkLogicOutputProperties.Action action, MarkLogicOutputProperties.DocType docType, Object docContent) throws IOException {
MarkLogicSink sink = new MarkLogicSink();
MarkLogicOutputProperties properties = new MarkLogicOutputProperties("outputProperties");
properties.init();
properties.connection.referencedComponent.componentInstanceId.setValue("Not null value");
properties.docType.setValue(docType);
properties.action.setValue(action);
sink.ioProperties = properties;
RuntimeContainer mockedContainer = mock(RuntimeContainer.class);
DatabaseClient mockedClient = mock(DatabaseClient.class);
Mockito.when(mockedContainer.getComponentData(anyString(), anyString())).thenReturn(mockedClient);
DocumentManager markLogicDocMngrMock = mock(DocumentManager.class);
writer = sink.createWriteOperation().createWriter(mockedContainer);
GenericData.Record indexedRecord = new GenericData.Record(properties.datasetProperties.main.schema.getValue());
indexedRecord.put(0, "docId");
indexedRecord.put(1, docContent);
writer.open("123");
writer.docMgr = markLogicDocMngrMock;
writer.write(indexedRecord);
return markLogicDocMngrMock;
}
use of com.marklogic.client.document.DocumentManager in project components by Talend.
the class MarkLogicWriterTest method testFailedUpsert.
@Test
public void testFailedUpsert() throws IOException {
DocumentManager markLogicDocMngrMock = prepareDocManagerText(MarkLogicOutputProperties.Action.UPSERT, MarkLogicOutputProperties.DocType.BINARY, new Object());
verifyZeroInteractions(markLogicDocMngrMock);
}
use of com.marklogic.client.document.DocumentManager in project components by Talend.
the class MarkLogicWriterTest method testMarkLogicPatchJSON.
@Test
public void testMarkLogicPatchJSON() throws IOException {
DocumentManager markLogicDocMngrMock = prepareDocManagerText(MarkLogicOutputProperties.Action.PATCH, MarkLogicOutputProperties.DocType.JSON);
verify(markLogicDocMngrMock).patch(anyString(), (DocumentPatchHandle) anyObject());
}
use of com.marklogic.client.document.DocumentManager in project components by Talend.
the class MarkLogicWriterTest method testMarkLogicFailPatch.
@Test
public void testMarkLogicFailPatch() throws IOException {
DocumentManager markLogicDocMngrMock = prepareDocManagerText(MarkLogicOutputProperties.Action.PATCH, MarkLogicOutputProperties.DocType.BINARY);
verifyZeroInteractions(markLogicDocMngrMock);
assertFalse(((Collection<IndexedRecord>) writer.getRejectedWrites()).isEmpty());
}
use of com.marklogic.client.document.DocumentManager in project components by Talend.
the class MarkLogicWriterTest method testUpsertWithAutoGenerateDocId.
@Test
public void testUpsertWithAutoGenerateDocId() throws IOException {
MarkLogicSink sink = new MarkLogicSink();
MarkLogicOutputProperties properties = new MarkLogicOutputProperties("outputProperties");
properties.init();
properties.connection.referencedComponent.componentInstanceId.setValue("Not null value");
properties.docType.setValue(MarkLogicOutputProperties.DocType.BINARY);
properties.action.setValue(MarkLogicOutputProperties.Action.UPSERT);
properties.autoGenerateDocId.setValue(true);
properties.docIdPrefix.setValue("somePrefix");
sink.ioProperties = properties;
RuntimeContainer mockedContainer = mock(RuntimeContainer.class);
DatabaseClient mockedClient = mock(DatabaseClient.class);
Mockito.when(mockedContainer.getComponentData(anyString(), anyString())).thenReturn(mockedClient);
DocumentManager markLogicDocMngrMock = mock(DocumentManager.class);
DocumentUriTemplate uriTemplateMock = mock(DocumentUriTemplate.class);
DocumentDescriptor descriptorMock = mock(DocumentDescriptor.class);
when(markLogicDocMngrMock.newDocumentUriTemplate(anyString())).thenReturn(uriTemplateMock);
when(markLogicDocMngrMock.create(any(DocumentUriTemplate.class), any(AbstractWriteHandle.class))).thenReturn(descriptorMock);
when(descriptorMock.getUri()).thenReturn("somePrefix/docId");
MarkLogicWriter writer = sink.createWriteOperation().createWriter(mockedContainer);
GenericData.Record indexedRecord = new GenericData.Record(properties.datasetProperties.main.schema.getValue());
indexedRecord.put(0, "docId");
File docContent = new File("someFile");
indexedRecord.put(1, docContent);
writer.open("123");
writer.docMgr = markLogicDocMngrMock;
writer.write(indexedRecord);
verify(markLogicDocMngrMock).write(eq("somePrefix/docId"), any(FileHandle.class));
assertFalse(((Collection<IndexedRecord>) writer.getSuccessfulWrites()).isEmpty());
}
Aggregations