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.gui.editors.apex.rest.handling;
23 import static org.assertj.core.api.Assertions.assertThat;
25 import java.io.ByteArrayOutputStream;
26 import java.io.IOException;
27 import java.io.PrintStream;
28 import java.nio.file.Files;
29 import java.nio.file.Path;
30 import java.util.Random;
31 import org.junit.Before;
32 import org.junit.BeforeClass;
33 import org.junit.Test;
34 import org.onap.policy.gui.editors.apex.rest.ApexEditorMain;
36 public class RestSessionTest {
38 private int sessionId;
39 private RestSession restSession;
42 public static void beforeClass() {
43 // Initialize ApexEditor
44 final String[] args = {"--time-to-live", "10", "--port", "12321", "--listen", "127.0.0.1"};
45 final var outBaStream = new ByteArrayOutputStream();
46 final var outStream = new PrintStream(outBaStream);
47 new ApexEditorMain(args, outStream);
52 sessionId = new Random().nextInt();
53 restSession = new RestSession(sessionId);
57 public void testGetSessionId() {
58 final var actual = restSession.getSessionId();
59 assertThat(actual).isEqualTo(sessionId);
63 public void testCommitChangesNoChanges() {
64 final var apexApiResult = restSession.commitChanges();
65 assertThat(apexApiResult.isNok()).isTrue();
69 public void testCommitChanges() {
70 restSession.editModel();
71 final var apexApiResult = restSession.commitChanges();
72 assertThat(apexApiResult.isOk()).isTrue();
76 public void testDiscardChangesNotEdited() {
77 final var apexApiResult = restSession.discardChanges();
78 assertThat(apexApiResult.isNok()).isTrue();
82 public void testDiscardChanges() {
83 restSession.editModel();
84 final var apexApiResult = restSession.discardChanges();
85 assertThat(apexApiResult.isOk()).isTrue();
86 assertThat(restSession.getApexModelEdited()).isNull();
90 public void testDownloadModel() {
91 final var actual = restSession.downloadModel();
92 assertThat(actual.isOk()).isTrue();
96 public void testEditModel() {
97 final var original = restSession.getApexModelEdited();
98 final var apexApiResult = restSession.editModel();
99 final var apexModelEdited = restSession.getApexModelEdited();
100 final var apexModel = restSession.getApexModel();
101 assertThat(apexApiResult.isOk()).isTrue();
102 assertThat(original).isNull();
103 assertThat(apexModel).isNotNull();
107 public void testEditModelAlreadyEdited() {
108 restSession.editModel();
109 final var apexApiResult = restSession.editModel();
110 assertThat(apexApiResult.isNok()).isTrue();
114 public void testLoadFromString() throws IOException {
115 restSession.editModel();
116 final var toscaPath = Path.of("src/test/resources/models/PolicyModel.yaml");
117 final var toscaString = Files.readString(toscaPath);
118 final var apexApiResult = restSession.loadFromString(toscaString);
119 assertThat(apexApiResult.isOk()).isTrue();
120 final var apexModelEdited = restSession.getApexModelEdited();
121 assertThat(apexModelEdited).isNotNull();
125 public void testLoadFromStringNoPolicies() throws IOException {
126 restSession.editModel();
127 final var toscaPath = Path.of("src/test/resources/models/PolicyModelNoPolicies.yaml");
128 final var toscaString = Files.readString(toscaPath);
129 final var apexApiResult = restSession.loadFromString(toscaString);
130 assertThat(apexApiResult.isNok()).isTrue();
131 assertThat(apexApiResult.getMessage()).contains("no policies");
135 public void testUploadModel() throws IOException {
136 restSession.editModel();
137 final var toscaPath = Path.of("src/test/resources/models/PolicyModel.yaml");
138 final var toscaString = Files.readString(toscaPath);
139 restSession.loadFromString(toscaString);
140 final var apexApiResult = restSession.uploadModel();
141 assertThat(apexApiResult.isNok()).isTrue();
142 assertThat(apexApiResult.getMessage()).contains("Model upload is disabled");