2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
19 * SPDX-License-Identifier: Apache-2.0
20 * ============LICENSE_END=========================================================
23 package org.onap.policy.api.main.startstop;
25 import static org.assertj.core.api.Assertions.assertThatThrownBy;
27 import java.io.IOException;
28 import java.nio.file.Files;
29 import java.nio.file.Path;
30 import java.nio.file.Paths;
31 import java.nio.file.attribute.FileAttribute;
32 import java.nio.file.attribute.PosixFilePermission;
33 import java.nio.file.attribute.PosixFilePermissions;
36 import org.junit.Test;
37 import org.onap.policy.api.main.exception.PolicyApiException;
38 import org.onap.policy.api.main.exception.PolicyApiRuntimeException;
40 public class TestApiCommandLineArguments {
41 private ApiCommandLineArguments apiCmdArgs = new ApiCommandLineArguments();
43 @Test(expected = PolicyApiRuntimeException.class)
44 public void testApiCommandLineArgumentsStringArray() {
45 String [] args = {"---d"};
46 ApiCommandLineArguments apiCmdArgs1 = new ApiCommandLineArguments(args);
50 public void testNonExistentFileValidateReadableFile() {
51 apiCmdArgs.setConfigurationFilePath("src/test/resources/filetest/nonexist.json ");
55 .isInstanceOf(PolicyApiException.class)
56 .hasMessageContaining("file \"src/test/resources/filetest/nonexist.json \" does not exist");
60 public void testEmptyFileNameValidateReadableFile() {
61 apiCmdArgs.setConfigurationFilePath("");
65 .isInstanceOf(PolicyApiException.class)
66 .hasMessageContaining("policy api configuration file was not specified as an argument");
70 public void testInvalidUrlValidateReadableFile() {
71 apiCmdArgs.setConfigurationFilePath("src/test\\resources/filetest\\n");
75 .isInstanceOf(PolicyApiException.class)
76 .hasMessageContaining(
77 "policy api configuration file \"src/test\\resources/filetest\\n\" does not exist");
81 public void testDirectoryValidateReadableFile() {
82 apiCmdArgs.setConfigurationFilePath("src/test/resources/");
86 .isInstanceOf(PolicyApiException.class)
87 .hasMessageContaining("file \"src/test/resources/\" is not a normal file");
91 public void testReadPermissionValidateReadableFile() throws IOException {
92 String filepath = "src/test/resources/unreadablefile.json";
93 Set<PosixFilePermission> notReadable = PosixFilePermissions.fromString("-wx-wx-wx");
94 FileAttribute<?> permissions = PosixFilePermissions.asFileAttribute(notReadable);
95 Path pathObj = Paths.get(filepath);
96 Files.createFile(pathObj, permissions);
97 apiCmdArgs.setConfigurationFilePath(filepath);
101 .isInstanceOf(PolicyApiException.class)
102 .hasMessageContaining(
103 "file \"src/test/resources/unreadablefile.json\" is ureadable");
104 Files.deleteIfExists(pathObj);