@@ -2386,6 +2386,94 @@ class DatasetServiceIntegrationTest() : CsmTestBase() {
23862386 constructFilePathForDatasetPart(updatedDataset, 0 )))
23872387 }
23882388
2389+ @Test
2390+ fun `test updateDataset with empty body` () {
2391+
2392+ // Create a Dataset with dataset Part
2393+ val datasetPartName = " Customers list"
2394+ val datasetPartDescription = " List of customers"
2395+ val datasetPartTags = mutableListOf (" part" , " public" , " customers" )
2396+ val datasetPartAdditionalData =
2397+ mutableMapOf (" part" to " data" , " complex" to mutableMapOf (" nested" to " data" ))
2398+ val datasetPartCreateRequest =
2399+ DatasetPartCreateRequest (
2400+ name = datasetPartName,
2401+ sourceName = CUSTOMER_SOURCE_FILE_NAME ,
2402+ description = datasetPartDescription,
2403+ tags = datasetPartTags,
2404+ additionalData = datasetPartAdditionalData,
2405+ type = DatasetPartTypeEnum .File )
2406+
2407+ val datasetName = " Customer Dataset"
2408+ val datasetDescription = " Dataset for customers"
2409+ val datasetTags = mutableListOf (" dataset" , " public" , " customers" )
2410+ val datasetAdditionalData =
2411+ mutableMapOf (" dataset" to " data" , " complex" to mutableMapOf (" nested" to " data" ))
2412+ val datasetCreateRequest =
2413+ DatasetCreateRequest (
2414+ name = datasetName,
2415+ description = datasetDescription,
2416+ tags = datasetTags,
2417+ additionalData = datasetAdditionalData,
2418+ parts = mutableListOf (datasetPartCreateRequest))
2419+
2420+ val resourceTestFile = resourceLoader.getResource(" classpath:/$CUSTOMER_SOURCE_FILE_NAME " ).file
2421+
2422+ val fileToSend = FileInputStream (resourceTestFile)
2423+
2424+ val mockMultipartFile =
2425+ MockMultipartFile (
2426+ " files" ,
2427+ CUSTOMER_SOURCE_FILE_NAME ,
2428+ MediaType .MULTIPART_FORM_DATA_VALUE ,
2429+ IOUtils .toByteArray(fileToSend))
2430+
2431+ val createdDataset =
2432+ datasetApiService.createDataset(
2433+ organizationSaved.id,
2434+ workspaceSaved.id,
2435+ datasetCreateRequest,
2436+ arrayOf(mockMultipartFile))
2437+
2438+ // Update dataset with an empty body
2439+ val updatedDataset =
2440+ datasetApiService.updateDataset(
2441+ organizationSaved.id,
2442+ workspaceSaved.id,
2443+ createdDataset.id,
2444+ DatasetUpdateRequest (),
2445+ arrayOf())
2446+
2447+ // check Dataset file data after update
2448+ val datasetPartFilePath = constructFilePathForDatasetPart(createdDataset, 0 )
2449+ assertTrue(s3Template.objectExists(csmPlatformProperties.s3.bucketName, datasetPartFilePath))
2450+ val downloadFile = s3Template.download(csmPlatformProperties.s3.bucketName, datasetPartFilePath)
2451+
2452+ val expectedText = FileInputStream (resourceTestFile).bufferedReader().use { it.readText() }
2453+ val retrievedText =
2454+ InputStreamResource (downloadFile).inputStream.bufferedReader().use { it.readText() }
2455+
2456+ assertEquals(expectedText, retrievedText)
2457+ // check Dataset simple data after update
2458+ assertNotNull(updatedDataset)
2459+ assertEquals(datasetName, updatedDataset.name)
2460+ assertEquals(datasetDescription, updatedDataset.description)
2461+ assertEquals(datasetTags, updatedDataset.tags)
2462+ assertEquals(createdDataset.createInfo, updatedDataset.createInfo)
2463+ assertEquals(createdDataset.updateInfo.userId, updatedDataset.updateInfo.userId)
2464+ assertTrue(createdDataset.updateInfo.timestamp < updatedDataset.updateInfo.timestamp)
2465+ assertEquals(datasetAdditionalData, updatedDataset.additionalData)
2466+ assertEquals(1 , updatedDataset.parts.size)
2467+ val updatedDatasetPart = updatedDataset.parts[0 ]
2468+ assertNotNull(updatedDatasetPart)
2469+ assertEquals(datasetPartName, updatedDatasetPart.name)
2470+ assertEquals(datasetPartDescription, updatedDatasetPart.description)
2471+ assertEquals(datasetPartTags, updatedDatasetPart.tags)
2472+ assertEquals(datasetPartAdditionalData, updatedDatasetPart.additionalData)
2473+ assertEquals(CUSTOMER_SOURCE_FILE_NAME , updatedDatasetPart.sourceName)
2474+ assertEquals(DatasetPartTypeEnum .File , updatedDatasetPart.type)
2475+ }
2476+
23892477 @Test
23902478 fun `test updateDataset with two dataset parts and same multipart file name` () {
23912479
0 commit comments