Java tutorial
/* * Copyright 2012 AMG.lab, a Bull Group Company * * 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. */ package org.xlcloud.console.virtualClusters.controllers.wizard; import static org.junit.Assert.*; import static org.mockito.Mockito.*; import java.util.List; import org.apache.commons.collections.CollectionUtils; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import org.xlcloud.console.virtualClusters.controllers.wizard.SetupPropertiesBean; import org.xlcloud.console.virtualClusters.controllers.wizard.transformers.EditableParameterToVirtualClusterParameterTransformer; import org.xlcloud.console.virtualClusters.controllers.wizard.transformers.TemplateParameterToEditableParameterTransformer; import org.xlcloud.console.virtualClusters.controllers.wizard.utils.EditableVirtualClusterParameter; import org.xlcloud.service.VirtualCluster; import org.xlcloud.service.VirtualClusterDefinition; import org.xlcloud.service.api.VirtualClusterDefinitionsApi; import org.xlcloud.service.heat.template.Parameter; import org.xlcloud.service.heat.template.Parameters; import org.xlcloud.service.heat.template.Template; /** * @author "Konrad Krl", AMG.net */ @RunWith(PowerMockRunner.class) @PrepareForTest({ CollectionUtils.class }) public class SetupPropertiesBeanTest { public static final String TEST_CASE_PARAMETER_NAME = "KeyName"; private SetupPropertiesBean setupPropertiesBean = new SetupPropertiesBean(); @Before public void initialize() { PowerMockito.mockStatic(CollectionUtils.class); VirtualClusterDefinitionsApi definitionsApiMock = mock(VirtualClusterDefinitionsApi.class); when(definitionsApiMock.get(anyLong())).thenReturn(new VirtualClusterDefinition()); setupPropertiesBean.setDefinitionsApi(definitionsApiMock); } @Test public void testGetEditableParameters() { setupPropertiesBean.setVirtualClusterDefinition(getTestCaseVCDefinition()); List<EditableVirtualClusterParameter> editableParameters = setupPropertiesBean.getEditableParameters(); assertNotNull(editableParameters); // verify if editableParameters collection was filled in by // CollectionUtils.transform PowerMockito.verifyStatic(); CollectionUtils.collect(anyCollectionOf(Parameter.class), any(TemplateParameterToEditableParameterTransformer.class), anyCollectionOf(EditableVirtualClusterParameter.class)); } @Test public void testGetVirtualClusterParameters() { setupPropertiesBean.setEditableParameters(getTestCaseEditableParameters()); VirtualCluster.Parameters parameters = setupPropertiesBean.getVirtualClusterParameters(); assertNotNull(parameters); // verify if parameters collection was filled in by // CollectionUtils.transform PowerMockito.verifyStatic(); CollectionUtils.collect(anyCollectionOf(EditableVirtualClusterParameter.class), any(EditableParameterToVirtualClusterParameterTransformer.class), anyCollectionOf(VirtualCluster.Parameters.Parameter.class)); } private VirtualClusterDefinition getTestCaseVCDefinition() { VirtualClusterDefinition testCaseVCDefinition = mock(VirtualClusterDefinition.class); List<Parameter> vcDefinitionParameters = getTestCaseTemplateParametersList(); Template templateMock = mock(Template.class); Parameters parametersMock = mock(Parameters.class); when(parametersMock.getParameter()).thenReturn(vcDefinitionParameters); when(templateMock.getParameters()).thenReturn(parametersMock); when(testCaseVCDefinition.getTemplate()).thenReturn(templateMock); return testCaseVCDefinition; } @SuppressWarnings("unchecked") private List<EditableVirtualClusterParameter> getTestCaseEditableParameters() { return mock(List.class); } @SuppressWarnings("unchecked") private List<Parameter> getTestCaseTemplateParametersList() { return mock(List.class); } }