+ @Test
+ void addArtifactsToDefaultImportsTest_existingAdditionalTypesImport() throws IOException {
+ var modelName = "model";
+ final Path testResourcePath = Path.of("src/test/resources/modelOperation");
+
+ final var dataTypesPath = testResourcePath.resolve(Path.of("input-artifact_types.yaml"));
+ final var dataTypes = Files.readString(dataTypesPath);
+
+ final Path import1RelativePath = Path.of("original-import-3.yaml");
+ final Path import1Path = testResourcePath.resolve(import1RelativePath);
+
+ var toscaImportByModel1 = new ToscaImportByModel();
+ toscaImportByModel1.setModelId(modelName);
+ toscaImportByModel1.setFullPath(import1RelativePath.toString());
+ toscaImportByModel1.setContent(Files.readString(import1Path));
+
+ var originalAdditionalTypesImport = new ToscaImportByModel();
+ originalAdditionalTypesImport.setModelId(modelName);
+ originalAdditionalTypesImport.setFullPath(ADDITIONAL_TYPE_DEFINITIONS_PATH.toString());
+ final Path originalAdditionalTypesImportPath = testResourcePath.resolve(Path.of("original-additional_types-2.yaml"));
+ originalAdditionalTypesImport.setContent(Files.readString(originalAdditionalTypesImportPath));
+
+ final List<ToscaImportByModel> modelImports = new ArrayList<>();
+ modelImports.add(toscaImportByModel1);
+ modelImports.add(originalAdditionalTypesImport);
+ when(toscaModelImportCassandraDao.findAllByModel(modelName)).thenReturn(modelImports);
+
+ modelOperation.addTypesToDefaultImports(ElementTypeEnum.ARTIFACT_TYPE, dataTypes, modelName);
+ ArgumentCaptor<List<ToscaImportByModel>> importListArgumentCaptor = ArgumentCaptor.forClass(List.class);
+ verify(toscaModelImportCassandraDao).saveAll(eq(modelName), importListArgumentCaptor.capture());
+
+ final List<ToscaImportByModel> actualImportList = importListArgumentCaptor.getValue();
+ assertEquals(2, actualImportList.size());
+ assertTrue(actualImportList.contains(toscaImportByModel1));
+
+ var expectedAdditionalTypesImport = new ToscaImportByModel();
+ expectedAdditionalTypesImport.setModelId(modelName);
+ expectedAdditionalTypesImport.setFullPath(ADDITIONAL_TYPE_DEFINITIONS_PATH.toString());
+ expectedAdditionalTypesImport.setContent(Files.readString(testResourcePath.resolve(Path.of("expected-additional_types-3.yaml"))));
+ final ToscaImportByModel actualAdditionalTypesImport =
+ actualImportList.stream().filter(expectedAdditionalTypesImport::equals).findFirst().orElse(null);
+ assertNotNull(actualAdditionalTypesImport);
+ assertEquals(expectedAdditionalTypesImport.getContent(), actualAdditionalTypesImport.getContent());
+
+ var expectedImport1 = new ToscaImportByModel();
+ expectedImport1.setModelId(modelName);
+ expectedImport1.setFullPath(import1RelativePath.toString());
+ expectedImport1.setContent(Files.readString(testResourcePath.resolve(Path.of("expected-import-3.yaml"))));
+ final ToscaImportByModel actualImport1 = actualImportList.stream().filter(expectedImport1::equals).findFirst().orElse(null);
+ assertNotNull(actualImport1);
+ assertEquals(expectedImport1.getContent(), actualImport1.getContent());
+
+ }
+