use of org.talend.components.marklogic.tmarklogicoutput.MarkLogicOutputProperties in project components by Talend.
the class MarkLogicWriterTest method testInitDocManagerXML.
@Test
public void testInitDocManagerXML() 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.XML);
sink.ioProperties = properties;
RuntimeContainer mockedContainer = mock(RuntimeContainer.class);
DatabaseClient mockedClient = mock(DatabaseClient.class);
Mockito.when(mockedContainer.getComponentData(anyString(), anyString())).thenReturn(mockedClient);
writer = sink.createWriteOperation().createWriter(mockedContainer);
writer.open("123");
verify(mockedClient).newXMLDocumentManager();
}
use of org.talend.components.marklogic.tmarklogicoutput.MarkLogicOutputProperties in project components by Talend.
the class MarkLogicWriterTest method testInitDocManagerMixed.
@Test
public void testInitDocManagerMixed() throws IOException {
MarkLogicSink sink = new MarkLogicSink();
MarkLogicOutputProperties properties = new MarkLogicOutputProperties("outputProperties");
properties.init();
properties.connection.referencedComponent.componentInstanceId.setValue("Not null value");
sink.ioProperties = properties;
RuntimeContainer mockedContainer = mock(RuntimeContainer.class);
DatabaseClient mockedClient = mock(DatabaseClient.class);
Mockito.when(mockedContainer.getComponentData(anyString(), anyString())).thenReturn(mockedClient);
writer = sink.createWriteOperation().createWriter(mockedContainer);
writer.open("123");
verify(mockedClient).newDocumentManager();
}
use of org.talend.components.marklogic.tmarklogicoutput.MarkLogicOutputProperties 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());
}
use of org.talend.components.marklogic.tmarklogicoutput.MarkLogicOutputProperties in project components by Talend.
the class MarkLogicWriterTest method testWriteNull.
@Test
public void testWriteNull() throws IOException {
DocumentManager markLogicDocMngrMock = mock(DocumentManager.class);
MarkLogicSink someSink = new MarkLogicSink();
someSink.ioProperties = new MarkLogicOutputProperties("outputProps");
writer = someSink.createWriteOperation().createWriter(null);
writer.docMgr = markLogicDocMngrMock;
writer.write(null);
verifyZeroInteractions(markLogicDocMngrMock);
}
use of org.talend.components.marklogic.tmarklogicoutput.MarkLogicOutputProperties in project components by Talend.
the class MarkLogicSourceTest method testValidateWrongProperties.
@Test
public void testValidateWrongProperties() {
MarkLogicOutputProperties wrongProperties = new MarkLogicOutputProperties("notInputProps");
wrongProperties.init();
source.initialize(null, wrongProperties);
ValidationResult result = source.validate(null);
assertEquals(ValidationResult.Result.ERROR, result.getStatus());
}
Aggregations