2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021. Nordix Foundation.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.apex.service.engine.event.impl.filecarrierplugin;
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.assertj.core.api.Assertions.assertThatThrownBy;
25 import static org.junit.Assume.assumeTrue;
28 import java.io.IOException;
30 import java.util.Random;
31 import org.apache.commons.lang3.RandomStringUtils;
32 import org.junit.After;
33 import org.junit.Before;
34 import org.junit.Test;
35 import org.onap.policy.common.parameters.ParameterRuntimeException;
36 import org.onap.policy.common.parameters.ValidationResult;
38 public class FileCarrierTechnologyParametersTest {
39 private final Random random = new Random();
40 private static final String APEX_RELATIVE_FILE_ROOT = "APEX_RELATIVE_FILE_ROOT";
41 private final String defaultApesRelativeFileRoot = System.getProperty(APEX_RELATIVE_FILE_ROOT);
42 private FileCarrierTechnologyParameters parameters;
43 private File tempFile;
46 public void setUp() throws Exception {
47 parameters = new FileCarrierTechnologyParameters();
51 * Cleaning after testing.
54 public void tearDown() {
55 if (tempFile != null) {
58 if (defaultApesRelativeFileRoot != null) {
59 System.setProperty(APEX_RELATIVE_FILE_ROOT, defaultApesRelativeFileRoot);
61 System.clearProperty(APEX_RELATIVE_FILE_ROOT);
66 public void getSetFileName() {
67 final String fileName = RandomStringUtils.random(10);
68 parameters.setFileName(fileName);
69 assertThat(parameters.getFileName())
74 public void isStandardIo() {
75 assertThat(parameters.isStandardIo()).isFalse();
79 public void isStandardError() {
80 assertThat(parameters.isStandardError()).isFalse();
84 public void isStreamingMode() {
85 assertThat(parameters.isStreamingMode()).isFalse();
89 public void setStandardIo() {
90 final boolean standardIo = random.nextBoolean();
91 parameters.setStandardIo(standardIo);
92 assertThat(parameters.isStandardIo()).isEqualTo(standardIo);
96 public void setStandardError() {
97 final boolean standardError = random.nextBoolean();
98 parameters.setStandardError(standardError);
99 assertThat(parameters.isStandardError()).isEqualTo(standardError);
103 public void getStartDelay() {
104 assertThat(parameters.getStartDelay()).isEqualTo(0L);
108 public void setStartDelay() {
109 final long delay = random.nextInt();
110 parameters.setStartDelay(delay);
111 assertThat(parameters.getStartDelay()).isEqualTo(delay);
115 public void getLabel() {
116 final String label = RandomStringUtils.random(10);
117 parameters.setLabel(label);
118 assertThat(parameters.getLabel()).isEqualTo(label);
122 public void setName() {
123 final String name = RandomStringUtils.random(10);
124 assertThatThrownBy(() -> parameters.setName(name)).isInstanceOf(ParameterRuntimeException.class);
128 public void getName() {
129 final String label = RandomStringUtils.random(10);
130 parameters.setLabel(label);
131 assertThat(parameters.getName()).isEqualTo(label);
135 public void getStreamingMode() {
136 assertThat(parameters.isStreamingMode()).isFalse();
140 public void setStreamingMode() {
141 final boolean streamingMode = random.nextBoolean();
142 parameters.setStreamingMode(streamingMode);
143 assertThat(parameters.isStreamingMode()).isEqualTo(streamingMode);
147 public void validateFileNameNull() {
148 final ValidationResult result = parameters.validate();
149 assertThat(result.isValid()).isFalse();
153 public void validateFileNameAbsolutePath() throws IOException {
154 tempFile = File.createTempFile("test_", ".tmp");
155 parameters.setFileName(tempFile.getAbsolutePath());
156 final ValidationResult result = parameters.validate();
157 assertThat(result.isValid()).isTrue();
161 public void validateFileNameAbsolutePathNotExisting() {
162 parameters.setFileName(RandomStringUtils.randomAlphabetic(5) + ".tmp");
163 System.setProperty(APEX_RELATIVE_FILE_ROOT, System.getProperty("user.home"));
164 final ValidationResult result = parameters.validate();
165 assertThat(result.isValid()).isTrue();
169 public void validateDirectoryName() {
170 parameters.setFileName(System.getProperty("user.dir"));
171 final ValidationResult result = parameters.validate();
172 assertThat(result.isValid()).isFalse();
176 public void validateParentNotDirectory() {
177 final URL resource = FileCarrierTechnologyParameters.class
178 .getResource("FileCarrierTechnologyParameters.class");
179 assumeTrue(resource != null && "file".equalsIgnoreCase(resource.getProtocol()));
180 final String fileParentPath = resource.getPath();
181 final String fileName = RandomStringUtils.randomAlphabetic(5);
182 final String absolutePath = new File(fileParentPath, fileName).getAbsolutePath();
183 parameters.setFileName(absolutePath);
184 final ValidationResult result = parameters.validate();
185 assertThat(result.isValid()).isFalse();
189 public void validateParentDoesNOtExists() {
190 final File fileParent = new File(System.getProperty("user.home"), RandomStringUtils.randomAlphabetic(6));
191 final String fileName = RandomStringUtils.randomAlphabetic(5);
192 final String absolutePath = new File(fileParent, fileName).getAbsolutePath();
193 parameters.setFileName(absolutePath);
194 final ValidationResult result = parameters.validate();
195 assertThat(result.isValid()).isFalse();
199 public void validateDirectorNoSystemVariableSet() {
200 final ValidationResult result = parameters.validate();
201 assertThat(result.isValid()).isFalse();
205 public void validateStandardIo() {
206 parameters.setStandardIo(true);
207 final ValidationResult result = parameters.validate();
208 assertThat(result.isValid()).isTrue();
212 public void validateStandardError() {
213 parameters.setStandardError(true);
214 final ValidationResult result = parameters.validate();
215 assertThat(result.isValid()).isTrue();
219 public void validateNegativeDelay() {
220 final long delay = random.nextInt() * -1;
221 parameters.setStartDelay(delay);
222 final ValidationResult result = parameters.validate();
223 assertThat(result.isValid()).isFalse();