// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.mdm.repository.ui.actions.serviceconfiguration; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; import static org.mockito.Matchers.*; import static org.mockito.Mockito.*; import static org.powermock.api.support.membermodification.MemberMatcher.*; import static org.powermock.api.support.membermodification.MemberModifier.*; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.JFaceResources; import org.junit.Test; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.reflect.Whitebox; import org.talend.core.model.properties.Item; import org.talend.core.model.properties.ItemState; import org.talend.core.repository.model.ProxyRepositoryFactory; import org.talend.core.runtime.CoreRuntimePlugin; import org.talend.mdm.repository.extension.RepositoryNodeConfigurationManager; import org.talend.mdm.repository.model.mdmproperties.ContainerItem; import org.talend.mdm.repository.model.mdmproperties.MdmpropertiesFactory; import org.talend.mdm.repository.model.mdmproperties.WSServiceConfigurationItem; import org.talend.mdm.repository.model.mdmproperties.impl.MdmpropertiesFactoryImpl; import org.talend.mdm.repository.model.mdmproperties.impl.WSServiceConfigurationItemImpl; import org.talend.mdm.repository.ui.actions.AbstractSimpleAddActionTest; import org.talend.mdm.repository.utils.RepositoryResourceUtil; import org.talend.repository.ProjectManager; import com.amalto.workbench.MDMWorbenchPlugin; import com.amalto.workbench.editors.ServiceConfigrationMainPage; import com.amalto.workbench.exadapter.ExAdapterManager; import com.amalto.workbench.image.ImageCache; @PrepareForTest({ ImageDescriptor.class, JFaceResources.class, ImageCache.class, ItemState.class, CoreRuntimePlugin.class, ProjectManager.class, RepositoryNodeConfigurationManager.class, ProxyRepositoryFactory.class, RepositoryResourceUtil.class, ExAdapterManager.class, MdmpropertiesFactoryImpl.class, MDMWorbenchPlugin.class }) public class NewServiceConfigurationActionTest extends AbstractSimpleAddActionTest { @Test public void testCreateServerObject() throws Exception { stub(method(ServiceConfigrationMainPage.class, "checkValidXML")).toReturn(null); //$NON-NLS-1$ stub(method(ServiceConfigrationMainPage.class, "formartXml", String.class)).toReturn(""); //$NON-NLS-1$ //$NON-NLS-2$ // ContainerItem newItem = MdmpropertiesFactory.eINSTANCE.createContainerItem(); ContainerItem mockContainerItem = spy(newItem); PowerMockito.mockStatic(MDMWorbenchPlugin.class); when(MDMWorbenchPlugin.getImageDescriptor(anyString())).thenReturn(mock(ImageDescriptor.class)); NewServiceConfigurationAction action = new NewServiceConfigurationAction(); NewServiceConfigurationAction spyAction = spy(action); Whitebox.setInternalState(spyAction, "parentItem", mockContainerItem); //$NON-NLS-1$ ItemState itemState = mock(ItemState.class); when(mockContainerItem.getState()).thenReturn(itemState); when(mockContainerItem.getState().getPath()).thenReturn(""); //$NON-NLS-1$ WSServiceConfigurationItem item = MdmpropertiesFactory.eINSTANCE.createWSServiceConfigurationItem(); WSServiceConfigurationItem spyServiceConfigItem = spy(item); Resource mockResource = mock(Resource.class); ResourceSet mockResourceSet = mock(ResourceSet.class); when(mockResource.getResourceSet()).thenReturn(mockResourceSet); when(spyServiceConfigItem.eResource()).thenReturn(mockResource); PowerMockito.whenNew(WSServiceConfigurationItemImpl.class).withNoArguments() .thenReturn((WSServiceConfigurationItemImpl) spyServiceConfigItem); // run Item addedItem = spyAction.createServerObject("abc"); //$NON-NLS-1$ assertThat(addedItem, notNullValue()); } }