2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved.
6 * Modifications Copyright (C) 2021 Samsung Technologies Co.
7 * Modifications Copyright (C) 2021 Orange.
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
22 package org.onap.so.adapters.cnf.service.upgrade;
25 import org.junit.Test;
26 import org.junit.runner.RunWith;
27 import org.mockito.ArgumentCaptor;
28 import org.mockito.Captor;
29 import org.mockito.InjectMocks;
30 import org.mockito.Mock;
31 import org.mockito.Mockito;
32 import org.mockito.junit.MockitoJUnitRunner;
33 import org.onap.so.adapters.cnf.client.MulticloudClient;
34 import org.onap.so.adapters.cnf.model.MulticloudInstanceRequest;
35 import org.onap.so.adapters.cnf.model.upgrade.InstanceUpgradeRequest;
36 import org.onap.so.client.exception.BadResponseException;
37 import org.springframework.boot.test.context.SpringBootTest;
41 import static org.junit.Assert.assertEquals;
42 import static org.mockito.ArgumentMatchers.any;
43 import static org.mockito.ArgumentMatchers.eq;
44 import static org.mockito.Mockito.mock;
45 import static org.mockito.Mockito.verify;
46 import static org.mockito.Mockito.when;
49 @RunWith(MockitoJUnitRunner.class)
50 public class InstanceUpgradeServiceTest {
53 private InstanceUpgradeService tested;
56 MulticloudClient instanceApi;
59 ArgumentCaptor<MulticloudInstanceRequest> multicloudInstanceRequestCaptor;
63 public void shouldUpgradeInstanceSuccessfully() throws BadResponseException {
65 String instanceId = "instanceId";
66 InstanceUpgradeRequest upgradeRequest = mock(InstanceUpgradeRequest.class);
67 String k8sRBProfileName = "k8sRBProfileName";
68 String modelInvariantId = "modelInvariantId";
69 String modelCustomizationId = "modelCustomizationId";
70 String cloudRegionId = "cloudRegionId";
71 Map<String, String> labels = mock(Map.class);
72 Map<String, String> overrideValues = mock(Map.class);
73 String response = "response";
76 when(upgradeRequest.getK8sRBProfileName()).thenReturn(k8sRBProfileName);
77 when(upgradeRequest.getModelInvariantId()).thenReturn(modelInvariantId);
78 when(upgradeRequest.getModelCustomizationId()).thenReturn(modelCustomizationId);
79 when(upgradeRequest.getCloudRegionId()).thenReturn(cloudRegionId);
80 when(upgradeRequest.getLabels()).thenReturn(labels);
81 when(upgradeRequest.getOverrideValues()).thenReturn(overrideValues);
82 when(instanceApi.upgradeInstance(eq(instanceId), any(MulticloudInstanceRequest.class))).thenReturn(response);
85 String actual = tested.upgradeInstance(instanceId, upgradeRequest);
87 assertEquals(actual, response);
88 verify(instanceApi).upgradeInstance(eq(instanceId), multicloudInstanceRequestCaptor.capture());
89 MulticloudInstanceRequest requestCaptureValue = multicloudInstanceRequestCaptor.getValue();
90 assertEquals(requestCaptureValue.getRbName(), modelInvariantId);
91 assertEquals(requestCaptureValue.getRbVersion(), modelCustomizationId);
92 assertEquals(requestCaptureValue.getProfileName(), k8sRBProfileName);
93 assertEquals(requestCaptureValue.getLabels(), labels);
94 assertEquals(requestCaptureValue.getOverrideValues(), overrideValues);
97 @Test(expected = RuntimeException.class)
98 public void shouldThrowRuntimeExceptionWhenProfileNameIsNull() throws BadResponseException {
100 String instanceId = "instanceId";
101 InstanceUpgradeRequest upgradeRequest = mock(InstanceUpgradeRequest.class);
104 when(upgradeRequest.getK8sRBProfileName()).thenReturn(null);
108 tested.upgradeInstance(instanceId, upgradeRequest);