+ @Test\r
+ void testImportTask_FullFlow() throws Exception {\r
+ try (MockedStatic<AAIConfig> mockedAAIConfig = mockStatic(AAIConfig.class);\r
+ MockedStatic<DataImportTasks> mockedDataImportTasks = mockStatic(DataImportTasks.class)) {\r
+\r
+ mockedAAIConfig.when(() -> AAIConfig.get("aai.dataimport.enable"))\r
+ .thenReturn("true");\r
+\r
+ Path inputDir = Files.createTempDirectory("withGoodPayload");\r
+ mockedAAIConfig.when(() -> AAIConfig.get("aai.dataimport.input.location"))\r
+ .thenReturn(inputDir.toString());\r
+\r
+ // create a "payload" tar.gz file\r
+ Path fakePayload = inputDir.resolve("fullPayload.tar.gz");\r
+ Files.createFile(fakePayload);\r
+\r
+ // stub static methods\r
+ mockedDataImportTasks.when(() -> DataImportTasks.findExportedPayload())\r
+ .thenReturn(fakePayload.toFile());\r
+\r
+ mockedDataImportTasks.when(() -> DataImportTasks.unpackPayloadFile(fakePayload.toString()))\r
+ .thenReturn(true);\r
+\r
+ mockedDataImportTasks.when(() -> DataImportTasks.runAddManualDataScript(new String[] {\r
+ AAIConstants.AAI_HOME + AAIConstants.AAI_FILESEP + "bin"\r
+ + AAIConstants.AAI_FILESEP + "install"\r
+ + AAIConstants.AAI_FILESEP + "addManualData.sh",\r
+ "tenant_isolation"\r
+ })).thenAnswer(invocation -> null); // no-op\r
+\r
+ DataImportTasks task = new DataImportTasks();\r
+\r
+ assertDoesNotThrow(task::importTask);\r
+\r
+ // verify cleanup\r
+ assert !fakePayload.toFile().exists();\r
+ }\r
+ }\r
+\r
+ @Test\r
+ void testRunAddManualDataScript_WithValidCommand() throws Exception {\r
+ Method method = DataImportTasks.class.getDeclaredMethod(\r
+ "runAddManualDataScript", String[].class\r
+ );\r
+ method.setAccessible(true);\r
+\r
+ // Using a harmless command that exists on most systems\r
+ assertDoesNotThrow(() -> \r
+ method.invoke(null, (Object) new String[]{"echo", "hello"})\r
+ );\r
+ }\r
+\r
+ @Test\r
+ void testRunAddManualDataScript_WithInvalidCommand() throws Exception {\r
+ Method method = DataImportTasks.class.getDeclaredMethod(\r
+ "runAddManualDataScript", String[].class\r
+ );\r
+ method.setAccessible(true);\r
+\r
+ // Invalid command to trigger the catch block\r
+ assertDoesNotThrow(() -> \r
+ method.invoke(null, (Object) new String[]{"nonexistent-command-xyz"})\r
+ );\r
+ }\r