/******************************************************************************* * 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.common.propertyEditor; import static org.easymock.EasyMock.*; import static org.junit.Assert.assertTrue; import org.eclipse.wst.sse.sieditor.ui.v2.dt.DataTypesFormPageController; import org.eclipse.wst.sse.sieditor.ui.v2.dt.IDataTypesFormPageController; import org.eclipse.wst.sse.sieditor.ui.v2.dt.ITypeDisplayer; import org.eclipse.wst.sse.sieditor.ui.v2.newtypedialog.AttributeDialogStrategy; import org.eclipse.wst.sse.sieditor.ui.v2.newtypedialog.GlobalElementDialogStrategy; import org.eclipse.wst.sse.sieditor.ui.v2.newtypedialog.ITypeDialogStrategy; import org.eclipse.wst.sse.sieditor.ui.v2.newtypedialog.LocalElementDialogStrategy; import org.eclipse.wst.sse.sieditor.ui.v2.nodes.ITreeNode; import org.eclipse.wst.sse.sieditor.ui.v2.propertyeditor.ElementTypeEditor; import org.eclipse.wst.sse.sieditor.ui.v2.sections.elements.ElementNodeDetailsController; import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; 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; /** * * */ public class ElementTypeEditorTest { /** * @throws java.lang.Exception */ @BeforeClass public static void setUpBeforeClass() throws Exception { } /** * @throws java.lang.Exception */ @AfterClass public static void tearDownAfterClass() throws Exception { } /** * @throws java.lang.Exception */ @Before public void setUp() throws Exception { } /** * @throws java.lang.Exception */ @After public void tearDown() throws Exception { } private static class ElementTypeEditorExposer extends ElementTypeEditor { public ElementTypeEditorExposer(final ElementNodeDetailsController detailsController, final ITypeDisplayer typeDisplayer) { super(detailsController, typeDisplayer); } @Override public ITypeDialogStrategy createNewTypeDialogStrategy() { return super.createNewTypeDialogStrategy(); } } /** * Test method for * {@link org.eclipse.wst.sse.sieditor.ui.v2.propertyeditor.ElementTypeEditor#createNewTypeDialogStrategy()} * . */ @Test public final void createNewTypeDialogStrategyGlobalElement() { final IDataTypesFormPageController dtController = createMock(DataTypesFormPageController.class); final ElementNodeDetailsController detailsController = new ElementNodeDetailsController(dtController); final IStructureType structureType = org.easymock.EasyMock.createMock(IStructureType.class); org.easymock.EasyMock.expect(structureType.isElement()).andReturn(Boolean.valueOf(true)).anyTimes(); org.easymock.EasyMock.replay(structureType); final ITreeNode treeNode = org.easymock.EasyMock.createMock(ITreeNode.class); org.easymock.EasyMock.expect(treeNode.getModelObject()).andReturn(structureType).anyTimes(); org.easymock.EasyMock.replay(treeNode); detailsController.setInput(treeNode); final ElementTypeEditorExposer typeEditor = new ElementTypeEditorExposer(detailsController, createMock(ITypeDisplayer.class)); typeEditor.setInput(treeNode); final ITypeDialogStrategy strategy = typeEditor.createNewTypeDialogStrategy(); assertTrue(strategy instanceof GlobalElementDialogStrategy); org.easymock.EasyMock.verify(structureType); } /** * Test method for * {@link org.eclipse.wst.sse.sieditor.ui.v2.propertyeditor.ElementTypeEditor#createNewTypeDialogStrategy()} * . */ @Test public final void createNewTypeDialogStrategyLocalElement() { final IDataTypesFormPageController dtController = createMock(DataTypesFormPageController.class); final ElementNodeDetailsController detailsController = new ElementNodeDetailsController(dtController); final IElement elementMock = org.easymock.EasyMock.createMock(IElement.class); org.easymock.EasyMock.expect(elementMock.isAttribute()).andStubReturn(Boolean.valueOf(false)); org.easymock.EasyMock.expect(elementMock.getType()).andReturn(createMock(IType.class)); org.easymock.EasyMock.replay(elementMock); final ITreeNode treeNode = org.easymock.EasyMock.createMock(ITreeNode.class); org.easymock.EasyMock.expect(treeNode.getModelObject()).andReturn(elementMock).anyTimes(); org.easymock.EasyMock.replay(treeNode); detailsController.setInput(treeNode); final ElementTypeEditorExposer typeEditor = new ElementTypeEditorExposer(detailsController, createMock(ITypeDisplayer.class)); typeEditor.setInput(treeNode); final ITypeDialogStrategy strategy = typeEditor.createNewTypeDialogStrategy(); assertTrue(strategy instanceof LocalElementDialogStrategy); org.easymock.EasyMock.verify(elementMock); } @Test public final void createNewTypeDialogStrategyAttribute() { final IDataTypesFormPageController dtController = createMock(DataTypesFormPageController.class); final ElementNodeDetailsController detailsController = new ElementNodeDetailsController(dtController); final IElement elementMock = org.easymock.EasyMock.createMock(IElement.class); org.easymock.EasyMock.expect(elementMock.isAttribute()).andStubReturn(Boolean.valueOf(true)); org.easymock.EasyMock.expect(elementMock.getType()).andStubReturn(createMock(IType.class)); org.easymock.EasyMock.replay(elementMock); final ITreeNode treeNode = org.easymock.EasyMock.createMock(ITreeNode.class); org.easymock.EasyMock.expect(treeNode.getModelObject()).andReturn(elementMock).anyTimes(); org.easymock.EasyMock.replay(treeNode); detailsController.setInput(treeNode); final ElementTypeEditorExposer typeEditor = new ElementTypeEditorExposer(detailsController, createMock(ITypeDisplayer.class)); typeEditor.setInput(treeNode); final ITypeDialogStrategy strategy = typeEditor.createNewTypeDialogStrategy(); assertTrue(strategy instanceof AttributeDialogStrategy); final AttributeDialogStrategy attributeStrategy = (AttributeDialogStrategy) strategy; Assert.assertEquals(false, attributeStrategy.isElementEnabled()); Assert.assertEquals(false, attributeStrategy.isStructureTypeEnabled()); Assert.assertEquals(true, attributeStrategy.isSimpleTypeEnabled()); } }