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;
38 import org.springframework.test.context.junit4.SpringRunner;
42 import static org.junit.Assert.assertEquals;
43 import static org.mockito.ArgumentMatchers.any;
44 import static org.mockito.ArgumentMatchers.eq;
45 import static org.mockito.Mockito.mock;
46 import static org.mockito.Mockito.verify;
47 import static org.mockito.Mockito.when;
50 @RunWith(SpringRunner.class)
51 public class InstanceUpgradeServiceTest {
54 private InstanceUpgradeService tested;
57 MulticloudClient instanceApi;
60 ArgumentCaptor<MulticloudInstanceRequest> multicloudInstanceRequestCaptor;
64 public void shouldUpgradeInstanceSuccessfully() throws BadResponseException {
66 String instanceId = "instanceId";
67 InstanceUpgradeRequest upgradeRequest = mock(InstanceUpgradeRequest.class);
68 String k8sRBProfileName = "k8sRBProfileName";
69 String modelInvariantId = "modelInvariantId";
70 String modelCustomizationId = "modelCustomizationId";
71 String cloudRegionId = "cloudRegionId";
72 Map<String, String> labels = mock(Map.class);
73 Map<String, String> overrideValues = mock(Map.class);
74 String response = "response";
77 when(upgradeRequest.getK8sRBProfileName()).thenReturn(k8sRBProfileName);
78 when(upgradeRequest.getModelInvariantId()).thenReturn(modelInvariantId);
79 when(upgradeRequest.getModelCustomizationId()).thenReturn(modelCustomizationId);
80 when(upgradeRequest.getCloudRegionId()).thenReturn(cloudRegionId);
81 when(upgradeRequest.getLabels()).thenReturn(labels);
82 when(upgradeRequest.getOverrideValues()).thenReturn(overrideValues);
83 when(instanceApi.upgradeInstance(eq(instanceId), any(MulticloudInstanceRequest.class))).thenReturn(response);
86 String actual = tested.upgradeInstance(instanceId, upgradeRequest);
88 assertEquals(actual, response);
89 verify(instanceApi).upgradeInstance(eq(instanceId), multicloudInstanceRequestCaptor.capture());
90 MulticloudInstanceRequest requestCaptureValue = multicloudInstanceRequestCaptor.getValue();
91 assertEquals(requestCaptureValue.getRbName(), modelInvariantId);
92 assertEquals(requestCaptureValue.getRbVersion(), modelCustomizationId);
93 assertEquals(requestCaptureValue.getProfileName(), k8sRBProfileName);
94 assertEquals(requestCaptureValue.getLabels(), labels);
95 assertEquals(requestCaptureValue.getOverrideValues(), overrideValues);
98 @Test(expected = RuntimeException.class)
99 public void shouldThrowRuntimeExceptionWhenProfileNameIsNull() throws BadResponseException {
101 String instanceId = "instanceId";
102 InstanceUpgradeRequest upgradeRequest = mock(InstanceUpgradeRequest.class);
105 when(upgradeRequest.getK8sRBProfileName()).thenReturn(null);
109 tested.upgradeInstance(instanceId, upgradeRequest);