diff options
Diffstat (limited to 'vid-app-common/src/test/java/org/onap/vid/services/CategoryParameterServiceImplTest.java')
-rw-r--r-- | vid-app-common/src/test/java/org/onap/vid/services/CategoryParameterServiceImplTest.java | 287 |
1 files changed, 234 insertions, 53 deletions
diff --git a/vid-app-common/src/test/java/org/onap/vid/services/CategoryParameterServiceImplTest.java b/vid-app-common/src/test/java/org/onap/vid/services/CategoryParameterServiceImplTest.java index 440a2a7bf..04ee46436 100644 --- a/vid-app-common/src/test/java/org/onap/vid/services/CategoryParameterServiceImplTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/services/CategoryParameterServiceImplTest.java @@ -1,80 +1,261 @@ +/*- + * ============LICENSE_START======================================================= + * VID + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2018 Nokia. 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.services; -import org.junit.Test; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.reset; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.MockitoAnnotations.initMocks; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import javax.ws.rs.ForbiddenException; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.onap.portalsdk.core.service.DataAccessService; import org.onap.vid.category.AddCategoryOptionResponse; import org.onap.vid.category.AddCategoryOptionsRequest; import org.onap.vid.category.CategoryParameterOptionRep; import org.onap.vid.category.CategoryParametersResponse; +import org.onap.vid.model.CategoryParameter; +import org.onap.vid.model.CategoryParameter.Family; import org.onap.vid.model.CategoryParameterOption; +import org.onap.vid.services.CategoryParameterServiceImpl.AlreadyExistOptionNameException; +import org.onap.vid.services.CategoryParameterServiceImpl.UnfoundedCategoryException; +import org.onap.vid.services.CategoryParameterServiceImpl.UnfoundedCategoryOptionException; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.BeforeSuite; +import org.testng.annotations.Test; public class CategoryParameterServiceImplTest { - private CategoryParameterServiceImpl createTestSubject() { - return new CategoryParameterServiceImpl(); + private static final String CATEGORY_NAME = "SAMPLE_CATEGORY_NAME"; + private static final String OPTION_NAME = "SAMPLE_OPTION_NAME"; + private static final String UNIQUE_OPTION_NAME = "UNIQUE_OPTION_NAME"; + private static final String APP_ID_VID = "VID"; + private static final String APP_ID_SDC = "SDC"; + private static final String QUERY_STRING_FOR_CATEGORY_NAME = String.format(" where name = '%s' ", CATEGORY_NAME); + + + @Mock + private DataAccessService dataAccessService; + + @InjectMocks + private CategoryParameterServiceImpl testSubject; + + @BeforeSuite + public void before() { + initMocks(this); + } + + @BeforeMethod + public void resetMocks() { + reset(dataAccessService); } @Test - public void testCreateCategoryParameterOptions() throws Exception { - CategoryParameterServiceImpl testSubject; - String categoryName = ""; - AddCategoryOptionsRequest optionsRequest = null; - AddCategoryOptionResponse result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.createCategoryParameterOptions(categoryName, optionsRequest); - } catch ( - - Exception e) { - } + public void createCategoryParameterOptions_happyPath() { + AddCategoryOptionsRequest optionsRequest = new AddCategoryOptionsRequest(); + optionsRequest.options.add(UNIQUE_OPTION_NAME); + CategoryParameter categoryParameter = createCategoryParameter(CATEGORY_NAME, true); + List<CategoryParameter> aList = createCategoryParametersList(categoryParameter); + + doReturn(aList).when(dataAccessService).getList(CategoryParameter.class, QUERY_STRING_FOR_CATEGORY_NAME, null, null); + + AddCategoryOptionResponse result = testSubject.createCategoryParameterOptions(CATEGORY_NAME, optionsRequest); + + Assert.assertTrue(result.getErrors().isEmpty());; + verify(dataAccessService, times(1)) + .saveDomainObject(anyObject(), anyObject()); } @Test - public void testDeleteCategoryOption() throws Exception { - CategoryParameterServiceImpl testSubject; - String categoryName = ""; + public void createCategoryParameterOptions_existingOptionsForCategory() { + AddCategoryOptionsRequest optionsRequest = new AddCategoryOptionsRequest(); + optionsRequest.options.add(OPTION_NAME); + CategoryParameter categoryParameter = createCategoryParameter(CATEGORY_NAME, true); + categoryParameter.getOptions().add(new CategoryParameterOption(APP_ID_VID, OPTION_NAME, categoryParameter)); + List<CategoryParameter> aList = createCategoryParametersList(categoryParameter); + + String expectedError = String.format(CategoryParameterServiceImpl.OPTION_ALREADY_EXIST_FOR_CATEGORY + , OPTION_NAME, CATEGORY_NAME); + + doReturn(aList).when(dataAccessService).getList(CategoryParameter.class, QUERY_STRING_FOR_CATEGORY_NAME, null, null); + + AddCategoryOptionResponse result = testSubject.createCategoryParameterOptions(CATEGORY_NAME, optionsRequest); + + Assert.assertFalse(result.getErrors().isEmpty()); + Assert.assertEquals(result.getErrors().size(), 1); + Assert.assertTrue(result.getErrors().stream().allMatch(expectedError::equals)); + } + + private List<CategoryParameter> createCategoryParametersList(CategoryParameter categoryParameter) { + List<CategoryParameter> aList = new ArrayList<>(); + aList.add(categoryParameter); + return aList; + } + + @Test + public void createCategoryParameterOptions_nonExistingOptionsForCategory() { + AddCategoryOptionsRequest optionsRequest = new AddCategoryOptionsRequest(); + + List<CategoryParameter> aList = createCategoryParametersList(new CategoryParameter()); + doReturn(aList).when(dataAccessService).getList(CategoryParameter.class, QUERY_STRING_FOR_CATEGORY_NAME, null, null); + + AddCategoryOptionResponse result = testSubject.createCategoryParameterOptions(CATEGORY_NAME, optionsRequest); + + Assert.assertTrue(result.getErrors().isEmpty()); + } + + @Test(expectedExceptions = { UnfoundedCategoryException.class }) + public void createCategoryParameterOptions_wrongNumberOfCategoryParameters() { + AddCategoryOptionsRequest optionsRequest = new AddCategoryOptionsRequest(); + List<CategoryParameter> aList = Collections.emptyList(); + + doReturn(aList).when(dataAccessService).getList(CategoryParameter.class, QUERY_STRING_FOR_CATEGORY_NAME, null, null); + + AddCategoryOptionResponse result = testSubject.createCategoryParameterOptions(CATEGORY_NAME, optionsRequest); + + Assert.fail(); + } + + @Test(expectedExceptions = { UnfoundedCategoryException.class }) + public void deleteCategoryOption_wrongNumberOfParameters() { CategoryParameterOption option = null; + List<CategoryParameter> aList = Collections.emptyList(); + + doReturn(aList).when(dataAccessService).getList(CategoryParameter.class, QUERY_STRING_FOR_CATEGORY_NAME, null, null); + + testSubject.deleteCategoryOption(CATEGORY_NAME, option); - // default test - try { - testSubject = createTestSubject(); - testSubject.deleteCategoryOption(categoryName, option); - } catch ( + Assert.fail(); + } + + @Test + public void deleteCategoryOption_happyPath() { + CategoryParameter categoryParameter = createCategoryParameter(CATEGORY_NAME, true); + CategoryParameterOption categoryParameterOption = + new CategoryParameterOption(APP_ID_VID, OPTION_NAME, categoryParameter); + categoryParameter.getOptions().add(categoryParameterOption); + List<CategoryParameter> aList = createCategoryParametersList(categoryParameter); + + doReturn(aList).when(dataAccessService).getList(anyObject(), anyString(), anyString(), anyObject()); - Exception e) { - } + testSubject.deleteCategoryOption(CATEGORY_NAME, categoryParameterOption); + + verify(dataAccessService, times(1)) + .deleteDomainObject(anyObject(), anyObject()); } @Test - public void testGetCategoryParameters() throws Exception { - CategoryParameterServiceImpl testSubject; - CategoryParametersResponse result; - - // default test - try { - testSubject = createTestSubject(); - testSubject.getCategoryParameters(null); - } catch ( - - Exception e) { - } + public void getCategoryParametersTest() { + CategoryParameter categoryParameter = createCategoryParameter(CATEGORY_NAME, true); + CategoryParameterOption categoryParameterOption = + new CategoryParameterOption(APP_ID_VID, OPTION_NAME, categoryParameter); + categoryParameter.getOptions().add(categoryParameterOption); + List<CategoryParameter> aList = createCategoryParametersList(categoryParameter); + + doReturn(aList).when(dataAccessService).getList(anyObject(), anyString(), anyString(), anyObject()); + + CategoryParametersResponse response = testSubject.getCategoryParameters(Family.PARAMETER_STANDARDIZATION); + + Assert.assertFalse(response.getCategoryParameters().isEmpty()); + Assert.assertTrue(response.getCategoryParameters().containsKey(CATEGORY_NAME)); + + verify(dataAccessService, times(1)) + .getList(anyObject(), anyString(), anyString(), anyObject()); } @Test - public void testUpdateCategoryParameterOption() throws Exception { - CategoryParameterServiceImpl testSubject; - String categoryName = ""; - CategoryParameterOptionRep option = null; - AddCategoryOptionResponse result; - - // default test - try { - testSubject = createTestSubject(); - result = testSubject.updateCategoryParameterOption(categoryName, option); - } catch ( - - Exception e) { - } + public void updateCategoryParameterOption_domainObjectGetsSavedSuccessfully() { + CategoryParameterOptionRep optionRepExisting = new CategoryParameterOptionRep(APP_ID_VID, OPTION_NAME); + CategoryParameter categoryParameter = createCategoryParameter(CATEGORY_NAME, true); + categoryParameter.getOptions().add( + new CategoryParameterOption(APP_ID_VID, UNIQUE_OPTION_NAME, categoryParameter)); + List<CategoryParameter> aList = createCategoryParametersList(categoryParameter); + + doReturn(aList).when(dataAccessService).getList(CategoryParameter.class, QUERY_STRING_FOR_CATEGORY_NAME, null, null); + + AddCategoryOptionResponse result = testSubject.updateCategoryParameterOption(CATEGORY_NAME, optionRepExisting); + + verify(dataAccessService, times(1)) + .saveDomainObject(anyObject(), anyObject()); + } + + @Test(expectedExceptions = { ForbiddenException.class }) + public void updateCategoryParameterOption_shouldFailUpdateForbidden() { + CategoryParameterOptionRep optionRep = new CategoryParameterOptionRep("1", CATEGORY_NAME); + CategoryParameter categoryParameter = createCategoryParameter(CATEGORY_NAME, false); + categoryParameter.getOptions().add(new CategoryParameterOption(APP_ID_VID, OPTION_NAME, categoryParameter)); + List<CategoryParameter> aList = createCategoryParametersList(categoryParameter); + + doReturn(aList).when(dataAccessService).getList(CategoryParameter.class, QUERY_STRING_FOR_CATEGORY_NAME, null, null); + + AddCategoryOptionResponse result = testSubject.updateCategoryParameterOption(CATEGORY_NAME, optionRep); + + Assert.fail(); + } + + @Test(expectedExceptions = { UnfoundedCategoryOptionException.class }) + public void updateCategoryParameterOption_CategoryNotFound() { + CategoryParameterOptionRep optionRep = new CategoryParameterOptionRep("SOME_UNRELATED_ID", CATEGORY_NAME); + + CategoryParameter categoryParameter = createCategoryParameter(CATEGORY_NAME, true); + categoryParameter.getOptions().add(new CategoryParameterOption(APP_ID_VID, OPTION_NAME, categoryParameter)); + List<CategoryParameter> aList = createCategoryParametersList(categoryParameter); + + doReturn(aList).when(dataAccessService).getList(CategoryParameter.class, QUERY_STRING_FOR_CATEGORY_NAME, null, null); + + AddCategoryOptionResponse result = testSubject.updateCategoryParameterOption(CATEGORY_NAME, optionRep); + + Assert.fail(); + } + + @Test(expectedExceptions = { AlreadyExistOptionNameException.class }) + public void updateCategoryParameterOption_OptionNameExists() { + CategoryParameterOptionRep optionRepExisting = new CategoryParameterOptionRep(APP_ID_VID, OPTION_NAME); + + CategoryParameter categoryParameter = createCategoryParameter(CATEGORY_NAME, true); + categoryParameter.getOptions().add( + new CategoryParameterOption(APP_ID_VID, UNIQUE_OPTION_NAME, categoryParameter)); + categoryParameter.getOptions().add( + new CategoryParameterOption(APP_ID_SDC, OPTION_NAME, categoryParameter)); + List<CategoryParameter> aList = createCategoryParametersList(categoryParameter); + + doReturn(aList).when(dataAccessService).getList(CategoryParameter.class, QUERY_STRING_FOR_CATEGORY_NAME, null, null); + + AddCategoryOptionResponse result = testSubject.updateCategoryParameterOption(CATEGORY_NAME, optionRepExisting); + + Assert.fail(); + } + + private CategoryParameter createCategoryParameter(String categoryName, boolean idSupported) { + CategoryParameter categoryParameter = new CategoryParameter(); + categoryParameter.setName(categoryName); + categoryParameter.setIdSupported(idSupported); + return categoryParameter; } }
\ No newline at end of file |