/******************************************************************************* * Copyright (c) 2010 SAP AG. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Emil Simeonov - initial API and implementation. * Dimitar Donchev - initial API and implementation. * Dimitar Tenev - initial API and implementation. * Nevena Manova - initial API and implementation. * Georgi Konstantinov - initial API and implementation. *******************************************************************************/ package org.eclipse.wst.sse.sieditor.test.ui.v2.providers; import static org.easymock.EasyMock.*; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.createNiceMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.verify; import static org.junit.Assert.assertEquals; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; import java.util.List; import junit.framework.Assert; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Display; import org.eclipse.wst.sse.sieditor.model.validation.IValidationStatus; import org.eclipse.wst.sse.sieditor.model.validation.IValidationStatusProvider; import org.eclipse.wst.sse.sieditor.ui.v2.dt.nodes.labels.DTTreeNodeLabelsProviderFactory; import org.eclipse.wst.sse.sieditor.ui.v2.providers.WSDLLabelProvider; import org.eclipse.wst.sse.sieditor.ui.v2.wsdltree.nodes.ParameterNode; import org.junit.Test; import org.eclipse.wst.sse.sieditor.model.api.IModelObject; import org.eclipse.wst.sse.sieditor.model.wsdl.api.IParameter; import org.eclipse.wst.sse.sieditor.model.xsd.api.IElement; import org.eclipse.wst.sse.sieditor.model.xsd.api.IStructureType; import org.eclipse.wst.sse.sieditor.model.xsd.api.IType; import org.eclipse.wst.sse.sieditor.ui.i18n.Messages; public class TestWSDLLabelProvider { @Test public void testConstructTextForNotNullType() { final WSDLLabelProvider provider = new WSDLLabelProvider(); final IType type = createNiceMock(IType.class); expect(type.getName()).andReturn("TypeName").atLeastOnce(); replay(type); final IParameter parameter = createNiceMock(IParameter.class); expect(parameter.getType()).andReturn(type).atLeastOnce(); expect(parameter.getName()).andReturn("ParameterName").atLeastOnce(); replay(parameter); final ParameterNode node = new ParameterNode(null, parameter, null); final String text = provider.getText(node); assertEquals("ParameterName : TypeName", text); verify(parameter); verify(type); } @Test public void testConstructTextForNotNullTypeAndDecorateDotElement() { final WSDLLabelProvider provider = new WSDLLabelProvider(); final IType type = createNiceMock(IType.class); expect(type.getName()).andReturn("TypeName.element").atLeastOnce(); replay(type); final IParameter parameter = createNiceMock(IParameter.class); expect(parameter.getType()).andReturn(type).atLeastOnce(); expect(parameter.getName()).andReturn("ParameterName").atLeastOnce(); replay(parameter); final ParameterNode node = new ParameterNode(null, parameter, null); final String text = provider.getText(node); assertEquals("ParameterName : TypeName [Element]", text); verify(parameter); verify(type); } @Test public void testConstructTextForNullType() { final WSDLLabelProvider provider = new WSDLLabelProvider(); final IParameter parameter = createNiceMock(IParameter.class); expect(parameter.getName()).andReturn("ParameterName").atLeastOnce(); replay(parameter); final ParameterNode node = new ParameterNode(null, parameter, null); final String text = provider.getText(node); assertEquals(MessageFormat.format("ParameterName : {0}", new Object[] { Messages.AbstractEditorLabelProvider_0 }), text); verify(parameter); } @Test public void testForegroundIsRedForNullType() { final WSDLLabelProvider provider = new WSDLLabelProvider(); final IParameter parameter = createNiceMock(IParameter.class); replay(parameter); final ParameterNode node = new ParameterNode(null, parameter, null); final Color colorRed = provider.getForeground(node); assertEquals(Display.getDefault().getSystemColor(SWT.COLOR_BLACK), colorRed); verify(parameter); } @Test public void testForegroundIsBlackForNotNullType() { final WSDLLabelProvider provider = new WSDLLabelProvider(); final IType type = createNiceMock(IType.class); replay(type); final IParameter parameter = createNiceMock(IParameter.class); expect(parameter.getType()).andReturn(type); replay(parameter); final ParameterNode node = new ParameterNode(null, parameter, null); final Color colorRed = provider.getForeground(node); assertEquals(Display.getDefault().getSystemColor(SWT.COLOR_BLACK), colorRed); } @Test public void testConstructionOfToolTipText() { final String validationMessage = "Validation Status Message"; final IValidationStatus status = createNiceMock(IValidationStatus.class); expect(status.getMessage()).andReturn(validationMessage); replay(status); final List<IValidationStatus> statuses = new ArrayList<IValidationStatus>(); statuses.add(status); final IValidationStatusProvider validationProvider = createNiceMock(IValidationStatusProvider.class); expect(validationProvider.getStatus((IModelObject) anyObject())).andReturn(statuses); replay(validationProvider); final WSDLLabelProvider provider = new WSDLLabelProvider() { @Override protected IValidationStatusProvider getValidationStatusProvider(final Object modelObject) { return validationProvider; } }; final IParameter parameter = createNiceMock(IParameter.class); replay(parameter); final ParameterNode node = new ParameterNode(null, parameter, null); final String toolTip = provider.getToolTipText(node); assertEquals(validationMessage, toolTip); verify(parameter); } @Test public void testGetTypeDisplayName() { final IStructureType wrapperType = createMock(IStructureType.class); final IElement element = createMock(IElement.class); final IType wrappedType = createMock(IType.class); final Collection<IElement> elements = new ArrayList<IElement>(); elements.add(element); expect(wrapperType.getName()).andReturn("wrapperName").anyTimes(); expect(wrapperType.isAnonymous()).andReturn(false).anyTimes(); replay(wrappedType, wrapperType, element); final String text = DTTreeNodeLabelsProviderFactory.instance().getLabelsProvider(wrapperType).getDisplayName(); Assert.assertEquals("wrapperName", text); verify(wrappedType, wrapperType, element); } }