I am testing creating a refresh message which payload is Seriesin a consumer application. After Msg.payload(payload) is called, I check theresult in the consumer application but nothing is set. Please help.
Hello @Akechi.Sato
To test creating/encoding a refresh message by EMA, you can useone of the possible 2 ways
A) UseTestUtilities class shipped with Elektron-SDK Java package since version 1.1.1 to help to perform the unit test. EMAalso provides example source code to test creating/encoding EMA refresh messagein testRefreshMsg_EncodeDecode() method as snipped source code shown below:
public void testRefreshMsg_EncodeDecode() { TestUtilities.printTestHead("testRefreshMsg_EncodeDecode", "ema encoding ema decoding"); com.thomsonreuters.upa.codec.DataDictionary dictionary = com.thomsonreuters.upa.codec.CodecFactory.createDataDictionary(); TestUtilities.upa_encodeDictionaryMsg(dictionary); com.thomsonreuters.ema.access.FieldList fl = EmaFactory.createFieldList(); TestUtilities.EmaEncodeFieldListAll(fl); com.thomsonreuters.ema.access.RefreshMsg refreshMsg = EmaFactory.createRefreshMsg(); System.out.println("Begin EMA RefreshMsg test after constructor"); TestUtilities.checkResult(refreshMsg.domainType() == com.thomsonreuters.ema.rdm.EmaRdm.MMT_MARKET_PRICE, "RefreshMsg.domainType()"); TestUtilities.checkResult(refreshMsg.streamId() == 0, "RefreshMsg.streamId()"); TestUtilities.checkResult(!refreshMsg.hasPartNum(), "RefreshMsg.hasPartNum()"); TestUtilities.checkResult(!refreshMsg.hasSeqNum(), "RefreshMsg.hasSeqNum()"); TestUtilities.checkResult(!refreshMsg.hasQos(), "RefreshMsg.hasQos()"); TestUtilities.checkResult(!refreshMsg.hasMsgKey(), "RefreshMsg.hasMsgKey()");...
The method is in RefreshMsgTests.javalocated in<Elektron_Java_SDK>\Ema\TestTools\UnitTests\Tests\com\thomsonreuters\ema\unittest.You can modify the method to create a refresh message that you want to test andcheck the result.
or
Modifya provider application to create/encode a refresh message that you want to test.Then, run the provider application. Next, run a consumer application to connectto it directly and receive the refresh message. Then, you can check in theconsumer application if the refresh message sent from the provider applicationis correct or not.
Fora provider application creating/encoding a refresh message with Series payload(dictionary response), please refer to example332__Dictionary__UserControl in<Elektron_Java_SDK>\Ema\Src\examples\java\com\thomsonreuters\ema\examples\training\iprovider\series300.For the consumer application which can request/receive dictionary response fromexample332__Dictionary__UserControl, please refer toexample332__Dictionary__Streaming in<Elektron_Java_SDK>\Ema\Src\examples\java\com\thomsonreuters\ema\examples\training\consumer\series300.