@@ -2,11 +2,16 @@ package com.marklogic.gradle.task
22
33import com.marklogic.client.DatabaseClientFactory
44import com.marklogic.client.ext.modulesloader.ssl.SimpleX509TrustManager
5+ import com.marklogic.client.io.DOMHandle
6+ import com.marklogic.client.io.DocumentMetadataHandle
7+ import com.marklogic.hub.HubConfig
58import org.gradle.testkit.runner.UnexpectedBuildFailure
69
710import javax.net.ssl.SSLContext
811import javax.net.ssl.TrustManager
912
13+ import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual
14+ import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual
1015import static org.gradle.testkit.runner.TaskOutcome.SUCCESS
1116
1217
@@ -68,18 +73,18 @@ class SslTest extends BaseTest {
6873 manageClient.putJson("/manage/v2/servers/Admin/properties?group-id=Default", '{"ssl-certificate-template": ""}')
6974 manageClient.putJson("/manage/v2/servers/App-Services/properties?group-id=Default", '{"ssl-certificate-template": ""}')
7075 manageClient.putJson("/manage/v2/servers/Manage/properties?group-id=Default", '{"ssl-certificate-template": ""}')
71-
76+
7277 def adminConfig = getProject().property("mlAdminConfig")
7378 adminConfig.setScheme("http")
7479 adminConfig.setConfigureSimpleSsl(false)
7580 def adminManager = new com.marklogic.mgmt.admin.AdminManager(adminConfig)
7681 adminManager.waitForRestart()
77-
82+
7883 def manageConfig = getProject().property("mlManageConfig")
7984 manageConfig.setScheme("http")
8085 manageConfig.setConfigureSimpleSsl(false)
8186 def mgClient = new com.marklogic.mgmt.ManageClient(manageConfig)
82-
87+
8388 def certManager = new com.marklogic.mgmt.resource.security.CertificateTemplateManager(mgClient)
8489 certManager.delete(adminCert())
8590 }
@@ -192,4 +197,85 @@ class SslTest extends BaseTest {
192197 modCount == 83 || modCount == 63
193198 result. task(" :mlDeploy" ). outcome == SUCCESS
194199 }
200+
201+ def " runHarmonizeFlow with default src and dest" () {
202+ given :
203+ println (runTask(' hubCreateHarmonizeFlow' , ' -PentityName=my-new-entity' , ' -PflowName=my-new-harmonize-flow' , ' -PdataFormat=xml' , ' -PpluginFormat=xqy' ). getOutput())
204+ println (runTask(' mlReLoadModules' ))
205+
206+ def newSslContext = SSLContext . getInstance(" TLSv1.2" )
207+ newSslContext. init(null , [new SimpleX509TrustManager ()] as TrustManager [], null )
208+ hubConfig(). stagingSslContext = newSslContext
209+ hubConfig(). stagingSslHostnameVerifier = DatabaseClientFactory.SSLHostnameVerifier . ANY
210+ hubConfig(). finalSslContext = newSslContext
211+ hubConfig(). finalSslHostnameVerifier = DatabaseClientFactory.SSLHostnameVerifier . ANY
212+
213+ clearDatabases(HubConfig . DEFAULT_STAGING_NAME , HubConfig . DEFAULT_FINAL_NAME )
214+
215+ assert (getStagingDocCount() == 0 )
216+ assert (getFinalDocCount() == 0 )
217+
218+ DocumentMetadataHandle meta = new DocumentMetadataHandle ();
219+ meta. getCollections(). add(" my-new-entity" );
220+ installStagingDoc(" /employee1.xml" , meta, new File (" src/test/resources/run-flow-test/employee1.xml" ). text)
221+ installStagingDoc(" /employee2.xml" , meta, new File (" src/test/resources/run-flow-test/employee2.xml" ). text)
222+ assert (getStagingDocCount() == 2 )
223+ assert (getFinalDocCount() == 0 )
224+
225+ installModule(" /entities/my-new-entity/harmonize/my-new-harmonize-flow/content/content.xqy" , " run-flow-test/content.xqy" )
226+
227+ when :
228+ println (runTask(' hubRunFlow' , ' -PentityName=my-new-entity' , ' -PflowName=my-new-harmonize-flow' , ' -i' ). getOutput())
229+
230+ then :
231+ notThrown(UnexpectedBuildFailure )
232+ getStagingDocCount() == 2
233+ getFinalDocCount() == 2
234+ assertXMLEqual(getXmlFromResource(" run-flow-test/harmonized1.xml" ), hubConfig(). newFinalClient(). newDocumentManager(). read(" /employee1.xml" ). next(). getContent(new DOMHandle ()). get())
235+ assertXMLEqual(getXmlFromResource(" run-flow-test/harmonized2.xml" ), hubConfig(). newFinalClient(). newDocumentManager(). read(" /employee2.xml" ). next(). getContent(new DOMHandle ()). get())
236+ }
237+
238+ def " runHarmonizeFlow with swapped src and dest" () {
239+ given :
240+ println (runTask(' hubCreateHarmonizeFlow' , ' -PentityName=my-new-entity' , ' -PflowName=my-new-harmonize-flow' , ' -PdataFormat=xml' , ' -PpluginFormat=xqy' ). getOutput())
241+ println (runTask(' mlReLoadModules' ))
242+
243+ def newSslContext = SSLContext . getInstance(" TLSv1.2" )
244+ newSslContext. init(null , [new SimpleX509TrustManager ()] as TrustManager [], null )
245+ hubConfig(). stagingSslContext = newSslContext
246+ hubConfig(). stagingSslHostnameVerifier = DatabaseClientFactory.SSLHostnameVerifier . ANY
247+ hubConfig(). finalSslContext = newSslContext
248+ hubConfig(). finalSslHostnameVerifier = DatabaseClientFactory.SSLHostnameVerifier . ANY
249+
250+ clearDatabases(HubConfig . DEFAULT_STAGING_NAME , HubConfig . DEFAULT_FINAL_NAME )
251+ assert (getStagingDocCount() == 0 )
252+ assert (getFinalDocCount() == 0 )
253+
254+ DocumentMetadataHandle meta = new DocumentMetadataHandle ();
255+ meta. getCollections(). add(" my-new-entity" );
256+ installFinalDoc(" /employee1.xml" , meta, new File (" src/test/resources/run-flow-test/employee1.xml" ). text)
257+ installFinalDoc(" /employee2.xml" , meta, new File (" src/test/resources/run-flow-test/employee2.xml" ). text)
258+
259+ assert (getStagingDocCount() == 0 )
260+ assert (getFinalDocCount() == 2 )
261+ installModule(" /entities/my-new-entity/harmonize/my-new-harmonize-flow/content/content.xqy" , " run-flow-test/content.xqy" )
262+
263+ when :
264+ println (runTask(
265+ ' hubRunFlow' ,
266+ ' -PentityName=my-new-entity' ,
267+ ' -PflowName=my-new-harmonize-flow' ,
268+ ' -PsourceDB=data-hub-FINAL' ,
269+ ' -PdestDB=data-hub-STAGING' ,
270+ ' -i'
271+ ). getOutput())
272+
273+ then :
274+ notThrown(UnexpectedBuildFailure )
275+ getStagingDocCount() == 2
276+ getFinalDocCount() == 2
277+
278+ assertXMLEqual(getXmlFromResource(" run-flow-test/harmonized1.xml" ), hubConfig(). newStagingClient(). newDocumentManager(). read(" /employee1.xml" ). next(). getContent(new DOMHandle ()). get())
279+ assertXMLEqual(getXmlFromResource(" run-flow-test/harmonized2.xml" ), hubConfig(). newStagingClient(). newDocumentManager(). read(" /employee2.xml" ). next(). getContent(new DOMHandle ()). get())
280+ }
195281}
0 commit comments