1 package org.onap.vid.mso;
3 import com.google.common.collect.ImmutableList;
4 import com.google.common.collect.ImmutableMap;
5 import org.onap.vid.exceptions.NotFoundException;
6 import org.onap.vid.mso.rest.RequestDetails;
7 import org.testng.annotations.DataProvider;
8 import org.testng.annotations.Test;
10 import java.util.Collections;
11 import java.util.List;
14 import static org.testng.AssertJUnit.assertEquals;
16 public class RequestDetailsTest {
18 private static final ImmutableList<String> LCP_CLOUD_REGION_ID_PATH = ImmutableList.of("requestDetails", "cloudConfiguration", "lcpCloudRegionId");
21 public static Object[][] extractValueByPathDataProvider() {
23 RequestDetails requestDetails1 = new RequestDetails();
24 Map cloudConfiguration = ImmutableMap.of("lcpCloudRegionId", "lcp1");
25 requestDetails1.setAdditionalProperty("requestDetails",
26 ImmutableMap.of("cloudConfiguration", cloudConfiguration));
29 return new Object[][] {
30 { requestDetails1, LCP_CLOUD_REGION_ID_PATH, String.class, "lcp1" },
31 { requestDetails1, ImmutableList.of("requestDetails", "cloudConfiguration"), Map.class, cloudConfiguration },
36 @Test(dataProvider = "extractValueByPathDataProvider")
37 public void testExtractValueByPath(RequestDetails requestDetails, List<String> keys, Class clz, Object expectedValue) {
38 assertEquals(expectedValue, requestDetails.extractValueByPathUsingAdditionalProperties(keys, clz));
42 public static Object[][] extractValueByPathDataProviderThrowException() {
43 RequestDetails requestDetails1 = new RequestDetails();
44 requestDetails1.setAdditionalProperty("requestDetails",
45 ImmutableMap.of("cloudConfiguration", "notMap"));
47 RequestDetails requestDetails2 = new RequestDetails();
48 requestDetails2.setAdditionalProperty("requestDetails",
49 ImmutableMap.of("cloudConfiguration", Collections.EMPTY_MAP));
51 return new Object[][] {
52 { new RequestDetails(), LCP_CLOUD_REGION_ID_PATH, String.class},
53 { requestDetails1, LCP_CLOUD_REGION_ID_PATH, String.class},
54 { requestDetails1, ImmutableList.of("requestDetails", "abc"), String.class},
55 { requestDetails2, LCP_CLOUD_REGION_ID_PATH, String.class},
59 @Test(dataProvider = "extractValueByPathDataProviderThrowException", expectedExceptions = NotFoundException.class)
60 public void testExtractValueByPathThrowException(RequestDetails requestDetails, List<String> keys, Class clz) {
61 requestDetails.extractValueByPathUsingAdditionalProperties(keys, clz);