/* * Copyright (c) 2004-2011 Marco Maccaferri and others. * 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: * Marco Maccaferri - initial API and implementation */ package org.eclipsetrader.ui.internal.markets; import java.util.ArrayList; import junit.framework.TestCase; import org.easymock.EasyMock; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IWorkbenchPartSite; import org.eclipsetrader.core.internal.markets.Market; import org.eclipsetrader.core.internal.markets.MarketService; import org.eclipsetrader.core.internal.markets.MarketTime; public class MarketsViewTest extends TestCase { Shell shell; IWorkbenchPartSite site; MarketService service; Market market; /* (non-Javadoc) * @see junit.framework.TestCase#setUp() */ @Override protected void setUp() throws Exception { shell = new Shell(Display.getDefault()); ISelectionProvider selectionProvider = EasyMock.createNiceMock(ISelectionProvider.class); site = EasyMock.createNiceMock(IWorkbenchPartSite.class); EasyMock.expect(site.getSelectionProvider()).andStubReturn(selectionProvider); site.registerContextMenu(EasyMock.isA(MenuManager.class), EasyMock.isA(ISelectionProvider.class)); EasyMock.replay(site); service = new MarketService(); service.addMarket(market = new Market("New York", new ArrayList<MarketTime>())); } /* (non-Javadoc) * @see junit.framework.TestCase#tearDown() */ @Override protected void tearDown() throws Exception { shell.dispose(); while (Display.getDefault().readAndDispatch()) { ; } } public void testShowExistingMarkets() throws Exception { MarketsView view = new MyMarketsView(); view.createPartControl(shell); assertEquals(1, view.viewer.getTable().getItemCount()); } public void testAddNewMarkets() throws Exception { MarketsView view = new MyMarketsView(); view.createPartControl(shell); service.addMarket(new Market("Milan", new ArrayList<MarketTime>())); while (Display.getDefault().readAndDispatch()) { ; } assertEquals(2, view.viewer.getTable().getItemCount()); } public void testRemoveDeletedMarkets() throws Exception { MarketsView view = new MyMarketsView(); view.createPartControl(shell); service.deleteMarket(market); while (Display.getDefault().readAndDispatch()) { ; } assertEquals(0, view.viewer.getTable().getItemCount()); } public void testAddServiceObserverOnCreate() throws Exception { MarketsView view = new MyMarketsView(); view.createPartControl(shell); assertEquals(1, service.countObservers()); } public void testRemoveServiceObserverOnDispose() throws Exception { MarketsView view = new MyMarketsView(); view.createPartControl(shell); view.dispose(); assertEquals(0, service.countObservers()); } class MyMarketsView extends MarketsView { public MyMarketsView() { marketService = MarketsViewTest.this.service; } /* (non-Javadoc) * @see org.eclipse.ui.part.WorkbenchPart#getSite() */ @Override public IWorkbenchPartSite getSite() { return site; } } }