20ba1291fd0afd5eed1231102f11023126dec7fb
[policy/apex-pdp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2020 Nordix Foundation. All rights reserved.
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
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
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.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.apex.plugins.executor.javascript;
22
23 import static org.assertj.core.api.Assertions.assertThatCode;
24 import static org.assertj.core.api.Assertions.assertThatThrownBy;
25
26 import org.junit.Test;
27 import org.onap.policy.apex.core.engine.executor.exception.StateMachineException;
28 import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
29
30 public class JavascriptExecutorTest {
31
32     @Test
33     public void testReturnOK() throws StateMachineException {
34         JavascriptExecutor executor = new JavascriptExecutor(
35             new AxArtifactKey("TestTask:0.0.1"), "true;");
36         assertThatCode(() -> executor.execute(new Object())).doesNotThrowAnyException();
37     }
38
39     @Test
40     public void testReturnNonBoolean() throws StateMachineException {
41         JavascriptExecutor executor = new JavascriptExecutor(
42             new AxArtifactKey("TestTask:0.0.1"), "var a = 1; a;");
43         assertThatThrownBy(() -> executor.execute(new Object()))
44             .hasMessageContaining("logic for TestTask:0.0.1 returned a non-boolean value");
45     }
46
47     @Test
48     public void testBlankLogic() {
49         assertThatThrownBy(() -> new JavascriptExecutor(
50             new AxArtifactKey("TestTask:0.0.1"), " "))
51             .hasMessageContaining("no logic specified for TestTask:0.0.1");
52     }
53
54     @Test
55     public void testCompileFailed() {
56         assertThatThrownBy(() -> new JavascriptExecutor(
57             new AxArtifactKey("TestTask:0.0.1"), "return boolean;"))
58             .hasMessageContaining("logic failed to compile for TestTask:0.0.1");
59     }
60 }