+ @ParameterizedTest
+ @MethodSource("getInvalidCsarPackage")
+ void testCsarPackageValidationFailure(MultipartFile multipartFile) {
+ System.out.println(multipartFile.getOriginalFilename());
+ RappHandlerException exception = assertThrows(RappHandlerException.class,
+ () -> rappCsarConfigurationHandler.isValidRappPackage(multipartFile));
+ assertEquals(HttpStatus.BAD_REQUEST, exception.getStatusCode());
+ }
+
+
+ private static Stream<Arguments> getInvalidCsarPackage() throws IOException {
+ String validCsarFileLocation = "src/test/resources";
+ String rappCsarPath = validCsarFileLocation + File.separator + "invalid-rapp-package.csar";
+ MultipartFile multipartFile =
+ new MockMultipartFile(rappCsarPath, rappCsarPath, ContentType.MULTIPART_FORM_DATA.getMimeType(),
+ new FileInputStream(rappCsarPath));
+ String rappCsarPathNoTosca = validCsarFileLocation + File.separator + "invalid-rapp-package-no-tosca.csar";
+ MultipartFile multipartFileNoTosca = new MockMultipartFile(rappCsarPathNoTosca, rappCsarPathNoTosca,
+ ContentType.MULTIPART_FORM_DATA.getMimeType(), new FileInputStream(rappCsarPathNoTosca));
+ String rappCsarPathNoAsdYaml = validCsarFileLocation + File.separator + "invalid-rapp-package-no-asd-yaml.csar";
+ MultipartFile multipartFileNoAsdYaml = new MockMultipartFile(rappCsarPathNoAsdYaml, rappCsarPathNoAsdYaml,
+ ContentType.MULTIPART_FORM_DATA.getMimeType(), new FileInputStream(rappCsarPathNoAsdYaml));
+ String rappCsarPathMissingArtifact =
+ validCsarFileLocation + File.separator + "invalid-rapp-package-missing-artifact.csar";
+ MultipartFile multipartFileMissingArtifact =
+ new MockMultipartFile(rappCsarPathMissingArtifact, rappCsarPathMissingArtifact,
+ ContentType.MULTIPART_FORM_DATA.getMimeType(),
+ new FileInputStream(rappCsarPathMissingArtifact));
+ String rappCsarPathNoComposition =
+ validCsarFileLocation + File.separator + "invalid-rapp-package-no-acm-composition.csar";
+ MultipartFile multipartFileNoComposition =
+ new MockMultipartFile(rappCsarPathNoComposition, rappCsarPathNoComposition,
+ ContentType.MULTIPART_FORM_DATA.getMimeType(), new FileInputStream(rappCsarPathNoComposition));
+ return Stream.of(Arguments.of(multipartFile), Arguments.of(multipartFileNoTosca),
+ Arguments.of(multipartFileNoAsdYaml), Arguments.of(multipartFileMissingArtifact),
+ Arguments.of(multipartFileNoComposition));
+ }
+
+ @Test
+ void testCsarPackageValidationFailureWithoutOrginalName() {
+ MultipartFile multipartFile = mock(MultipartFile.class);
+ assertEquals(Boolean.FALSE, rappCsarConfigurationHandler.isValidRappPackage(multipartFile));
+ }
+
+ @Test
+ void testInvalidCsarFileExist() {
+ MultipartFile multipartFile = mock(MultipartFile.class);
+ RappHandlerException exception = assertThrows(RappHandlerException.class,
+ () -> rappCsarConfigurationHandler.isFileExistsInCsar(multipartFile, "INVALID_LOCATION"));
+ assertEquals(HttpStatus.BAD_REQUEST, exception.getStatusCode());
+ }
+
+ @Test
+ void testCsarContainsValidAsdFile() throws IOException {
+ String rappCsarPath = validCsarFileLocation + File.separator + validRappFile;
+ MultipartFile multipartFile =
+ new MockMultipartFile(rappCsarPath, rappCsarPath, ContentType.MULTIPART_FORM_DATA.getMimeType(),
+ new FileInputStream(rappCsarPath));
+ assertTrue(rappCsarConfigurationHandler.containsValidArtifactDefinition(multipartFile));
+ }
+