/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.livedata.server.distribution; import static org.testng.AssertJUnit.assertEquals; import org.fudgemsg.FudgeContext; import org.fudgemsg.MutableFudgeMsg; import org.testng.annotations.Test; import com.opengamma.id.ExternalId; import com.opengamma.livedata.LiveDataValueUpdate; import com.opengamma.livedata.normalization.StandardRules; import com.opengamma.livedata.server.DistributionSpecification; import com.opengamma.livedata.server.MapLastKnownValueStoreProvider; import com.opengamma.livedata.server.Subscription; import com.opengamma.util.fudgemsg.OpenGammaFudgeContext; import com.opengamma.util.test.TestGroup; /** * Test. */ @Test(groups = TestGroup.UNIT) public class MarketDataDistributorTest { public static MarketDataDistributor getTestDistributor(MarketDataSenderFactory factory) { MapLastKnownValueStoreProvider lkvStoreProvider = new MapLastKnownValueStoreProvider(); return new MarketDataDistributor(new DistributionSpecification( ExternalId.of("RIC", "AAPL.O"), StandardRules.getNoNormalization(), "LiveData.Bloomberg.Equity.AAPL"), new Subscription("", factory, lkvStoreProvider), factory, false, lkvStoreProvider); } static MarketDataDistributor getTestDistributor() { return getTestDistributor(new EmptyMarketDataSenderFactory()); } //------------------------------------------------------------------------- public void testSequenceNumber() { MarketDataDistributor mdd = getTestDistributor(); assertEquals(LiveDataValueUpdate.SEQUENCE_START, mdd.getNumMessagesSent()); mdd.updateFieldHistory(FudgeContext.EMPTY_MESSAGE); assertEquals(0, mdd.getNumMessagesSent()); MutableFudgeMsg msg = OpenGammaFudgeContext.getInstance().newMessage(); msg.add("foo", "bar"); mdd.distributeLiveData(msg); assertEquals(1, mdd.getNumMessagesSent()); mdd.distributeLiveData(FudgeContext.EMPTY_MESSAGE); // empty msg not sent assertEquals(1, mdd.getNumMessagesSent()); } }