package org.marketcetera.marketdata;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import org.junit.Test;
import org.marketcetera.core.publisher.ISubscriber;
import org.marketcetera.core.publisher.MockSubscriber;
import org.marketcetera.module.ExpectedFailure;
/**
* Tests {@link MarketDataFeedTokenSpec}.
*
* @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a>
* @version $Id: MarketDataFeedTokenSpecTest.java 16154 2012-07-14 16:34:05Z colin $
* @since 0.5.0
*/
public class MarketDataFeedTokenSpecTest
extends MarketDataFeedTestBase
{
@Test
public void testGenerateTokenSpec()
throws Exception
{
ISubscriber[] emptySubscribers = new ISubscriber[0];
ISubscriber[] nonemptySubscribers = new ISubscriber[] { new MockSubscriber(), new DoNothingSubscriber() };
for(int b=0;b<=1;b++) {
for (int c=0;c<=2;c++) {
ISubscriber[] listToUse = null;
if(c == 1) {
listToUse = emptySubscribers;
}
if(c == 2) {
listToUse = nonemptySubscribers;
}
doValidateTokenSpec(b==0 ? null : dataRequest,
listToUse);
}
}
}
private void doValidateTokenSpec(final MarketDataRequest inRequest,
final ISubscriber[] inSubscribers)
throws Exception
{
if(inRequest == null) {
new ExpectedFailure<NullPointerException>() {
protected void run()
throws Exception
{
MarketDataFeedTokenSpec.generateTokenSpec(inRequest,
inSubscribers);
}
};
} else {
MarketDataFeedTokenSpec tokenSpec = MarketDataFeedTokenSpec.generateTokenSpec(inRequest,
inSubscribers);
assertEquals(inRequest,
tokenSpec.getDataRequest());
if(inSubscribers == null) {
assertEquals(0,
tokenSpec.getSubscribers().length);
} else {
assertTrue(Arrays.equals(inSubscribers,
tokenSpec.getSubscribers()));
}
}
}
}