@@ -454,6 +454,83 @@ class DatasetServiceIntegrationTest : CsmRedisTestBase() {
454454 assertEquals(
455455 2 , countEntities(subDatasetWithQuery.twingraphId!! , " MATCH ()-[r]-() RETURN count(r)" ))
456456 }
457+ @Test
458+ fun `should not change parent connector parameters on subdataset creation` () {
459+ logger.info(" Create a Graph with a ZIP Entry" )
460+ logger.info(
461+ " loading nodes: Double=2, Single=1, Users=9 & relationships: Double=2, Single=1, Follows=2" )
462+ val file = this ::class .java.getResource(" /integrationTest.zip" )?.file
463+ val resource = ByteArrayResource (File (file!! ).readBytes())
464+ organizationSaved = organizationApiService.registerOrganization(organization)
465+ dataset = makeDatasetWithRole()
466+ datasetSaved = datasetApiService.createDataset(organizationSaved.id!! , dataset)
467+ datasetApiService.updateDataset(
468+ organizationSaved.id!! ,
469+ datasetSaved.id!! ,
470+ datasetSaved.copy(sourceType = DatasetSourceType .File ))
471+
472+ val fileUploadValidation =
473+ datasetApiService.uploadTwingraph(organizationSaved.id!! , datasetSaved.id!! , resource)
474+ assertEquals(
475+ FileUploadValidation (
476+ mutableListOf (
477+ FileUploadMetadata (" Double" , 90 ),
478+ FileUploadMetadata (" Single" , 54 ),
479+ FileUploadMetadata (" Users" , 749 ),
480+ ),
481+ mutableListOf (
482+ FileUploadMetadata (" Double" , 214 ),
483+ FileUploadMetadata (" Follows" , 47 ),
484+ FileUploadMetadata (" SingleEdge" , 59 ),
485+ )),
486+ fileUploadValidation)
487+
488+ // add timout for while loop
489+ val timeout = Instant .now()
490+ while (datasetApiService.getDatasetTwingraphStatus(organizationSaved.id!! , datasetSaved.id!! ) !=
491+ Dataset .IngestionStatus .SUCCESS .value) {
492+ if (Instant .now().minusSeconds(10 ).isAfter(timeout)) {
493+ throw Exception (" Timeout while waiting for dataset twingraph to be ready" )
494+ }
495+ Thread .sleep(500 )
496+ }
497+ datasetSaved = datasetApiService.findDatasetById(organizationSaved.id!! , datasetSaved.id!! )
498+ do {
499+ Thread .sleep(50L )
500+ val datasetStatus =
501+ datasetApiService.getDatasetTwingraphStatus(organizationSaved.id!! , datasetSaved.id!! )
502+ } while (datasetStatus == Dataset .IngestionStatus .PENDING .value)
503+ assertEquals(12 , countEntities(datasetSaved.twingraphId!! , " MATCH (n) RETURN count(n)" ))
504+ assertEquals(5 , countEntities(datasetSaved.twingraphId!! , " MATCH ()-[r]-() RETURN count(r)" ))
505+ assertEquals(
506+ datasetSaved.connector!! .parametersValues!! [" TWIN_CACHE_NAME" ], datasetSaved.twingraphId)
507+
508+ val subDatasetParams =
509+ SubDatasetGraphQuery (
510+ name = " subDataset" ,
511+ description = " subDataset description" ,
512+ )
513+ val subDataset =
514+ datasetApiService.createSubDataset(
515+ organizationSaved.id!! , datasetSaved.id!! , subDatasetParams)
516+ do {
517+ Thread .sleep(50L )
518+ val datasetStatus =
519+ datasetApiService.getDatasetTwingraphStatus(organizationSaved.id!! , subDataset.id!! )
520+ } while (datasetStatus == Dataset .IngestionStatus .PENDING .value)
521+
522+ // get parent after sub dataset creation
523+ datasetSaved = datasetApiService.findDatasetById(organizationSaved.id!! , datasetSaved.id!! )
524+
525+ assertEquals(" subDataset" , subDataset.name)
526+ assertEquals(" subDataset description" , subDataset.description)
527+ assertEquals(12 , countEntities(subDataset.twingraphId!! , " MATCH (n) RETURN count(n)" ))
528+ assertEquals(5 , countEntities(subDataset.twingraphId!! , " MATCH ()-[r]-() RETURN count(r)" ))
529+ assertEquals(
530+ datasetSaved.connector!! .parametersValues!! [" TWIN_CACHE_NAME" ], datasetSaved.twingraphId)
531+ assertEquals(
532+ subDataset.connector!! .parametersValues!! [" TWIN_CACHE_NAME" ], subDataset.twingraphId)
533+ }
457534
458535 fun countEntities (twingraphId : String , query : String ): Int {
459536 val resultSet = redisGraph.query(twingraphId, query)
0 commit comments