static void TestParseComposeUpdate(TestCommon.Protocol proto, String fileNameInit, String fileName, Action <mtest.Ipublishable_html_tag> updateDelegate) { mtest.publishable_html_tag_publisher publ = new mtest.publishable_html_tag_publisher(); SimpleBuffer bufferInit = SimpleBuffer.readFromFile(fileNameInit); IPublishableParser parserInit = TestCommon.makePublishableParser(proto, bufferInit.getReadIterator()); publ.applyStateSyncMessage(parserInit); mtest.publishable_html_tag_subscriber subs = new mtest.publishable_html_tag_subscriber(); SimpleBuffer bufferInit2 = SimpleBuffer.readFromFile(fileNameInit); IPublishableParser parserInit2 = TestCommon.makePublishableParser(proto, bufferInit2.getReadIterator()); subs.applyStateSyncMessage(parserInit2); // init state at publ and subs are equal Assert.True(publ.isEquivalent(subs)); SimpleBuffer buffer = new SimpleBuffer(); IPublishableComposer composer = TestCommon.makePublishableComposer(proto, buffer); publ.startTick(composer); updateDelegate(publ); publ.endTick(); if (WriteFiles) { buffer.writeToFile(fileName); } SimpleBuffer expected = SimpleBuffer.readFromFile(fileName); if (proto == TestCommon.Protocol.Json) { Assert.True(SimpleBuffer.AreEqualIgnoreEol(expected, buffer)); } else if (proto == TestCommon.Protocol.Gmq) { Assert.AreEqual(expected, buffer); } // now state is different Assert.False(publ.isEquivalent(subs)); IPublishableParser parser = TestCommon.makePublishableParser(proto, buffer.getReadIterator()); subs.applyMessageWithUpdates(parser); // now state is equal Assert.True(publ.isEquivalent(subs)); }
static void TestParseComposeStateSync(TestCommon.Protocol proto, String fileName, Action <mtest.Ipublishable_html_tag> updateDelegate) { mtest.publishable_html_tag_publisher publ = new mtest.publishable_html_tag_publisher(); SimpleBuffer bufferTmp = new SimpleBuffer(); IPublishableComposer composerTmp = TestCommon.makePublishableComposer(proto, bufferTmp); publ.startTick(composerTmp); updateDelegate(publ); publ.endTick(); SimpleBuffer buffer = new SimpleBuffer(); IPublishableComposer composer = TestCommon.makePublishableComposer(proto, buffer); publ.generateStateSyncMessage(composer); // uncomment to update file if (WriteFiles) { buffer.writeToFile(fileName); } SimpleBuffer expected = SimpleBuffer.readFromFile(fileName); if (proto == TestCommon.Protocol.Json) { Assert.True(SimpleBuffer.AreEqualIgnoreEol(expected, buffer)); } else if (proto == TestCommon.Protocol.Gmq) { Assert.AreEqual(expected, buffer); } mtest.publishable_html_tag_subscriber subs = new mtest.publishable_html_tag_subscriber(); IPublishableParser parser = TestCommon.makePublishableParser(proto, buffer.getReadIterator()); subs.applyStateSyncMessage(parser); Assert.True(publ.isEquivalent(subs)); }