/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.marketdata.live;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.stub;
import static org.testng.AssertJUnit.assertEquals;
import org.testng.annotations.Test;
import com.google.common.collect.ImmutableMap;
import com.opengamma.engine.marketdata.MarketDataProvider;
import com.opengamma.engine.marketdata.MarketDataProviderFactory;
import com.opengamma.engine.marketdata.spec.LiveMarketDataSpecification;
import com.opengamma.livedata.UserPrincipal;
import com.opengamma.util.test.TestGroup;
@Test(groups = TestGroup.UNIT)
public class InMemoryLKVLiveMarketDataProviderFactoryTest {
private final MarketDataProviderFactory _factory;
private final LiveMarketDataProvider _defaultProvider;
private final LiveMarketDataProvider _provider1;
private final LiveMarketDataProvider _provider2;
private final UserPrincipal _user;
public InMemoryLKVLiveMarketDataProviderFactoryTest() {
_user = UserPrincipal.getLocalUser();
LiveDataFactory defaultFactory = mock(LiveDataFactory.class);
LiveDataFactory factory1 = mock(LiveDataFactory.class);
LiveDataFactory factory2 = mock(LiveDataFactory.class);
_factory = new InMemoryLKVLiveMarketDataProviderFactory(defaultFactory, ImmutableMap.of("1", factory1, "2", factory2, "default", defaultFactory));
_defaultProvider = mock(LiveMarketDataProvider.class);
stub(defaultFactory.create(_user)).toReturn(_defaultProvider);
_provider1 = mock(LiveMarketDataProvider.class);
stub(factory1.create(_user)).toReturn(_provider1);
_provider2 = mock(LiveMarketDataProvider.class);
stub(factory2.create(_user)).toReturn(_provider2);
}
@Test
public void createDefault() {
MarketDataProvider provider = _factory.create(_user, LiveMarketDataSpecification.LIVE_SPEC);
assertEquals(_defaultProvider, provider);
}
@Test
public void createNamed() {
MarketDataProvider provider1 = _factory.create(_user, LiveMarketDataSpecification.of("1"));
assertEquals(provider1, _provider1);
MarketDataProvider provider2 = _factory.create(_user, LiveMarketDataSpecification.of("2"));
assertEquals(provider2, _provider2);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void createMissing() {
_factory.create(_user, LiveMarketDataSpecification.of("3"));
}
}