public void ReadLogonMessage()
        {
            // Arrange
            var rawMessage = Encoding.ASCII.GetBytes("8=FIX.4.49=7535=A34=109249=TESTBUY152=20180920-18:24:59.64356=TESTSELL198=0108=6010=178");
            var sequence   = new ReadOnlySequence <byte>(rawMessage);
            var reader     = new FixMessageReader();

            var consumed = new SequencePosition();
            var examined = new SequencePosition();

            // Act
            var result = reader.TryParseMessage(sequence, ref consumed, ref examined, out var fixMessage);

            // Assert
            Assert.True(result);
            Assert.Equal(10, fixMessage.Fields.Length);
            Assert.Single(fixMessage.Fields.Where(f => f.Tag == 8));
            Assert.Single(fixMessage.Fields.Where(f => f.Tag == 9));
            Assert.Single(fixMessage.Fields.Where(f => f.Tag == 35));
            Assert.Single(fixMessage.Fields.Where(f => f.Tag == 34));
            Assert.Single(fixMessage.Fields.Where(f => f.Tag == 49));
            Assert.Single(fixMessage.Fields.Where(f => f.Tag == 52));
            Assert.Single(fixMessage.Fields.Where(f => f.Tag == 56));
            Assert.Single(fixMessage.Fields.Where(f => f.Tag == 98));
            Assert.Single(fixMessage.Fields.Where(f => f.Tag == 108));
            Assert.Single(fixMessage.Fields.Where(f => f.Tag == 10));
            Assert.Equal("FIX.4.4", fixMessage.Fields.First(f => f.Tag == 8).Value);
            Assert.Equal(75, fixMessage.Fields.First(f => f.Tag == 9).Value);
            Assert.Equal("A", fixMessage.Fields.First(f => f.Tag == 35).Value);
            Assert.Equal(1092, fixMessage.Fields.First(f => f.Tag == 34).Value);
            Assert.Equal("TESTBUY1", fixMessage.Fields.First(f => f.Tag == 49).Value);
        }
Example #2
0
 public void Prepare()
 {
     _byte      = Encoding.UTF8.GetBytes(NewOrderSingle);
     _zerofix   = new FixMessageReader();
     _quickfixn = new Parser();
     _msg       = new Message();
 }
Example #3
0
 public ZerofixSession(ZerofixAcceptor acceptor, Func <Session> sessionFact) : base(acceptor)
 {
     _session = sessionFact();
     _session.SetTransport(this);
     _parser = new FixMessageReader();
 }