+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
package org.onap.vid.mso.rest;
+import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanEqualsExcluding;
+import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSettersExcluding;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.testng.AssertJUnit.assertEquals;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
-
-import org.junit.Test;
-import org.onap.vid.domain.mso.*;
+import org.assertj.core.api.AssertionsForClassTypes;
+import org.onap.vid.exceptions.NotFoundException;
+import org.onap.vid.testUtils.TestUtils;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
public class RequestDetailsTest {
- private RequestDetails createTestSubject() {
- return new RequestDetails();
- }
+ private RequestDetails requestDetails;
-
- @Test
- public void testGetCloudConfiguration() throws Exception {
- RequestDetails testSubject;
- CloudConfiguration result;
-
- // default test
- testSubject = createTestSubject();
- result = testSubject.getCloudConfiguration();
- }
+ private String propertyName = "testProperty";
+ private String additionalProperty = "testAdditionalProperty";
-
- @Test
- public void testSetCloudConfiguration() throws Exception {
- RequestDetails testSubject;
- CloudConfiguration cloudConfiguration = null;
+ private static final ImmutableList<String> LCP_CLOUD_REGION_ID_PATH =
+ ImmutableList.of("requestDetails", "cloudConfiguration", "lcpCloudRegionId");
- // default test
- testSubject = createTestSubject();
- testSubject.setCloudConfiguration(cloudConfiguration);
+ @BeforeClass
+ public static void registerValueGenerator() {
+ TestUtils.registerCloudConfigurationValueGenerator();
}
-
- @Test
- public void testGetModelInfo() throws Exception {
- RequestDetails testSubject;
- ModelInfo result;
-
- // default test
- testSubject = createTestSubject();
- result = testSubject.getModelInfo();
+ @BeforeMethod
+ public void setUp() {
+ requestDetails = new RequestDetails();
}
-
@Test
- public void testSetModelInfo() throws Exception {
- RequestDetails testSubject;
- ModelInfo modelInfo = null;
-
- // default test
- testSubject = createTestSubject();
- testSubject.setModelInfo(modelInfo);
+ public void shouldHaveProperSettersAndGetters() {
+ assertThat(RequestDetails.class, hasValidGettersAndSettersExcluding("additionalProperties"));
}
-
@Test
- public void testGetRelatedInstanceList() throws Exception {
- RequestDetails testSubject;
- List<RelatedModel> result;
+ public void shouldHaveProperGetterAndSetterForAdditionalProperties() {
+ // when
+ requestDetails.setAdditionalProperty(propertyName,additionalProperty);
- // default test
- testSubject = createTestSubject();
- result = testSubject.getRelatedInstanceList();
+ // then
+ AssertionsForClassTypes.assertThat( requestDetails.getAdditionalProperties().get(propertyName) ).isEqualTo(additionalProperty);
}
-
@Test
- public void testSetRelatedInstanceList() throws Exception {
- RequestDetails testSubject;
- List<RelatedModel> relatedInstanceList = null;
+ public void shouldProperlyConvertRelatedInstanceObjectToString() {
+ // given
+ requestDetails.setAdditionalProperty(propertyName,additionalProperty);
- // default test
- testSubject = createTestSubject();
- testSubject.setRelatedInstanceList(relatedInstanceList);
- }
-
-
- @Test
- public void testGetRequestInfo() throws Exception {
- RequestDetails testSubject;
- RequestInfo result;
+ // when
+ String response = requestDetails.toString();
- // default test
- testSubject = createTestSubject();
- result = testSubject.getRequestInfo();
+ // then
+ AssertionsForClassTypes.assertThat(response).contains(
+ "additionalProperties={"+propertyName+"="+additionalProperty+"}]"
+ );
}
-
@Test
- public void testSetRequestInfo() throws Exception {
- RequestDetails testSubject;
- RequestInfo requestInfo = null;
-
- // default test
- testSubject = createTestSubject();
- testSubject.setRequestInfo(requestInfo);
+ public void shouldProperlyCheckIfObjectsAreEqual() {
+ assertThat(RequestDetails.class, hasValidBeanEqualsExcluding("additionalProperties"));
}
-
- @Test
- public void testGetSubscriberInfo() throws Exception {
- RequestDetails testSubject;
- SubscriberInfo result;
+ @DataProvider
+ public static Object[][] extractValueByPathDataProvider() {
- // default test
- testSubject = createTestSubject();
- result = testSubject.getSubscriberInfo();
- }
+ RequestDetails requestDetails1 = new RequestDetails();
+ Map cloudConfiguration = ImmutableMap.of("lcpCloudRegionId", "lcp1");
+ requestDetails1.setAdditionalProperty("requestDetails",
+ ImmutableMap.of("cloudConfiguration", cloudConfiguration));
-
- @Test
- public void testSetSubscriberInfo() throws Exception {
- RequestDetails testSubject;
- SubscriberInfo subscriberInfo = null;
- // default test
- testSubject = createTestSubject();
- testSubject.setSubscriberInfo(subscriberInfo);
- }
-
-
- @Test
- public void testToString() throws Exception {
- RequestDetails testSubject;
- String result;
+ return new Object[][] {
+ { requestDetails1, LCP_CLOUD_REGION_ID_PATH, String.class, "lcp1" },
+ { requestDetails1, ImmutableList.of("requestDetails", "cloudConfiguration"), Map.class, cloudConfiguration },
- // default test
- testSubject = createTestSubject();
- result = testSubject.toString();
+ };
}
-
- @Test
- public void testGetAdditionalProperties() throws Exception {
- RequestDetails testSubject;
- Map<String, Object> result;
-
- // default test
- testSubject = createTestSubject();
- result = testSubject.getAdditionalProperties();
+ @Test(dataProvider = "extractValueByPathDataProvider")
+ public void testExtractValueByPath(RequestDetails requestDetails, List<String> keys, Class clz, Object expectedValue) {
+ assertEquals(expectedValue, requestDetails.extractValueByPathUsingAdditionalProperties(keys, clz));
}
-
- @Test
- public void testSetAdditionalProperty() throws Exception {
- RequestDetails testSubject;
- String name = "";
- Object value = null;
-
- // default test
- testSubject = createTestSubject();
- testSubject.setAdditionalProperty(name, value);
- }
+ @DataProvider
+ public static Object[][] extractValueByPathDataProviderThrowException() {
+ RequestDetails requestDetails1 = new RequestDetails();
+ requestDetails1.setAdditionalProperty("requestDetails",
+ ImmutableMap.of("cloudConfiguration", "notMap"));
-
- @Test
- public void testHashCode() throws Exception {
- RequestDetails testSubject;
- int result;
+ RequestDetails requestDetails2 = new RequestDetails();
+ requestDetails2.setAdditionalProperty("requestDetails",
+ ImmutableMap.of("cloudConfiguration", Collections.EMPTY_MAP));
- // default test
- testSubject = createTestSubject();
- result = testSubject.hashCode();
+ return new Object[][] {
+ { new RequestDetails(), LCP_CLOUD_REGION_ID_PATH, String.class},
+ { requestDetails1, LCP_CLOUD_REGION_ID_PATH, String.class},
+ { requestDetails1, ImmutableList.of("requestDetails", "abc"), String.class},
+ { requestDetails2, LCP_CLOUD_REGION_ID_PATH, String.class},
+ };
}
-
- @Test
- public void testEquals() throws Exception {
- RequestDetails testSubject;
- Object other = null;
- boolean result;
-
- // default test
- testSubject = createTestSubject();
- result = testSubject.equals(other);
+ @Test(dataProvider = "extractValueByPathDataProviderThrowException", expectedExceptions = NotFoundException.class)
+ public void testExtractValueByPathThrowException(RequestDetails requestDetails, List<String> keys, Class clz) {
+ requestDetails.extractValueByPathUsingAdditionalProperties(keys, clz);
}
-}
\ No newline at end of file
+}