package org.marketcetera.core.position.impl; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThat; import static org.marketcetera.core.position.PositionKeyFactory.createEquityKey; import static org.marketcetera.core.position.PositionKeyFactory.createOptionKey; import java.math.BigDecimal; import java.util.List; import org.junit.Test; import org.marketcetera.core.position.PositionKey; import org.marketcetera.core.position.PositionKeyFactory; import org.marketcetera.core.position.PositionKeyTestBase; import org.marketcetera.module.ExpectedFailure; import org.marketcetera.trade.Equity; import org.marketcetera.trade.OptionType; import com.google.common.collect.ImmutableList; /* $License$ */ /** * Tests {@link PositionKeyImpl}. * * @author <a href="mailto:will@marketcetera.com">Will Horn</a> * @version $Id: PositionKeyImplTest.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.0.0 */ public class PositionKeyImplTest extends PositionKeyTestBase { @Override protected PositionKey<?> createFixture() { return PositionKeyFactory.createEquityKey("ABC", "MyAccount", "Me"); } @Override protected PositionKey<?> createEqualFixture() { return PositionKeyFactory.createEquityKey("ABC", "MyAccount", "Me"); } @Override protected List<PositionKey<?>> createDifferentFixtures() { return ImmutableList.<PositionKey<?>> of( createEquityKey("ABC", null, null), createEquityKey("ABC", "Account", null), createEquityKey("IBM", null, null), createOptionKey("ABC", "20090101", BigDecimal.ONE, OptionType.Call, null, null), createOptionKey("ABC", "20090101", BigDecimal.ONE, OptionType.Call, "Account", null), createOptionKey("ABC", "20090101", BigDecimal.ONE, OptionType.Put, null, null), createEquityKey("ABC", null, "Me"), createEquityKey("ABC", "Account", "Me"), createOptionKey("ABC", "20090101", BigDecimal.ONE, OptionType.Call, "Account", "Me")); } @Test public void testNullInstrument() throws Exception { new ExpectedFailure<IllegalArgumentException>() { @Override protected void run() throws Exception { new PositionKeyImpl<Equity>(null, "abc", "abc"); } }; } @Test public void testWhitespaceAccountIsNull() throws Exception { assertNull(new PositionKeyImpl<Equity>(new Equity("abc"), "", "abc") .getAccount()); assertNull(new PositionKeyImpl<Equity>(new Equity("abc"), " ", "abc").getAccount()); } @Test public void testWhitespaceTraderIdIsNull() throws Exception { assertNull(new PositionKeyImpl<Equity>(new Equity("abc"), "abc", "") .getTraderId()); assertNull(new PositionKeyImpl<Equity>(new Equity("abc"), "abc", " \n ").getTraderId()); } @Test public void testToString() throws Exception { assertThat(createFixture().toString(), is("PositionKeyImpl[symbol=ABC,account=MyAccount,traderId=Me]")); } }