/* * 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.ats.monitor; import java.util.Arrays; import org.easymock.classextension.EasyMock; import org.eclipsetrader.core.ats.ITradingSystem; import org.eclipsetrader.core.ats.ITradingSystemService; import org.eclipsetrader.ui.DataProviderFactoryMock; import org.eclipsetrader.ui.DatabindingTestCase; import org.eclipsetrader.ui.internal.ats.ViewColumn; public class TradingSystemsViewModelTest extends DatabindingTestCase { ITradingSystemService tradingSystemService; /* (non-Javadoc) * @see junit.framework.TestCase#setUp() */ @Override protected void setUp() throws Exception { tradingSystemService = EasyMock.createNiceMock(ITradingSystemService.class); EasyMock.expect(tradingSystemService.getTradeSystems()).andStubReturn(new ITradingSystem[0]); EasyMock.replay(tradingSystemService); } public void testSetDataProviders() throws Exception { TradingSystemsViewModel model = new TradingSystemsViewModel(tradingSystemService); model.setDataProviders(Arrays.asList(new ViewColumn[] { new ViewColumn("Last", new DataProviderFactoryMock("LastTrade", "org.eclipsetrader.ui.providers.LastTrade")) })); assertEquals(1, model.getObservableDataProviders().size()); } public void testKeepExistingsAndAddNewColumns() throws Exception { TradingSystemsViewModel model = new TradingSystemsViewModel(tradingSystemService); ViewColumn viewColumn1 = new ViewColumn("Last", new DataProviderFactoryMock("LastTrade", "org.eclipsetrader.ui.providers.LastTrade")); model.setDataProviders(Arrays.asList(new ViewColumn[] { viewColumn1 })); assertSame(viewColumn1, model.getObservableDataProviders().get(0)); ViewColumn viewColumn2 = new ViewColumn("Bid", new DataProviderFactoryMock("BidPrice", "org.eclipsetrader.ui.providers.BidPrice")); model.setDataProviders(Arrays.asList(new ViewColumn[] { new ViewColumn("Last", new DataProviderFactoryMock("LastTrade", "org.eclipsetrader.ui.providers.LastTrade")), viewColumn2 })); assertSame(viewColumn1, model.getObservableDataProviders().get(0)); assertSame(viewColumn2, model.getObservableDataProviders().get(1)); } public void testRemoveColumns() throws Exception { TradingSystemsViewModel model = new TradingSystemsViewModel(tradingSystemService); model.setDataProviders(Arrays.asList(new ViewColumn[] { new ViewColumn("Last", new DataProviderFactoryMock("LastTrade", "org.eclipsetrader.ui.providers.LastTrade")), new ViewColumn("Bid", new DataProviderFactoryMock("BidPrice", "org.eclipsetrader.ui.providers.BidPrice")) })); assertEquals(2, model.getObservableDataProviders().size()); model.setDataProviders(Arrays.asList(new ViewColumn[] { new ViewColumn("Bid", new DataProviderFactoryMock("BidPrice", "org.eclipsetrader.ui.providers.BidPrice")) })); assertEquals(1, model.getObservableDataProviders().size()); } public void testChangeColumnsOrder() throws Exception { TradingSystemsViewModel model = new TradingSystemsViewModel(tradingSystemService); model.setDataProviders(Arrays.asList(new ViewColumn[] { new ViewColumn("Last", new DataProviderFactoryMock("LastTrade", "org.eclipsetrader.ui.providers.LastTrade")), new ViewColumn("Bid", new DataProviderFactoryMock("BidPrice", "org.eclipsetrader.ui.providers.BidPrice")) })); assertEquals(2, model.getObservableDataProviders().size()); assertEquals("Last", model.getDataProviders().get(0).getName()); assertEquals("Bid", model.getDataProviders().get(1).getName()); model.setDataProviders(Arrays.asList(new ViewColumn[] { new ViewColumn("Bid", new DataProviderFactoryMock("BidPrice", "org.eclipsetrader.ui.providers.BidPrice")), new ViewColumn("Last", new DataProviderFactoryMock("LastTrade", "org.eclipsetrader.ui.providers.LastTrade")), })); assertEquals(2, model.getObservableDataProviders().size()); assertEquals("Bid", model.getDataProviders().get(0).getName()); assertEquals("Last", model.getDataProviders().get(1).getName()); } public void testAddNewAndChangeColumnsOrder() throws Exception { TradingSystemsViewModel model = new TradingSystemsViewModel(tradingSystemService); model.setDataProviders(Arrays.asList(new ViewColumn[] { new ViewColumn("Last", new DataProviderFactoryMock("LastTrade", "org.eclipsetrader.ui.providers.LastTrade")), new ViewColumn("Bid", new DataProviderFactoryMock("BidPrice", "org.eclipsetrader.ui.providers.BidPrice")) })); assertEquals(2, model.getObservableDataProviders().size()); assertEquals("Last", model.getDataProviders().get(0).getName()); assertEquals("Bid", model.getDataProviders().get(1).getName()); model.setDataProviders(Arrays.asList(new ViewColumn[] { new ViewColumn("Ask", new DataProviderFactoryMock("AskPrice", "org.eclipsetrader.ui.providers.AskPrice")), new ViewColumn("Bid", new DataProviderFactoryMock("BidPrice", "org.eclipsetrader.ui.providers.BidPrice")), new ViewColumn("Last", new DataProviderFactoryMock("LastTrade", "org.eclipsetrader.ui.providers.LastTrade")), })); assertEquals(3, model.getObservableDataProviders().size()); assertEquals("Ask", model.getDataProviders().get(0).getName()); assertEquals("Bid", model.getDataProviders().get(1).getName()); assertEquals("Last", model.getDataProviders().get(2).getName()); } }