public void DataTransferTest() { uint _dataId = CommonDefinitions.DataSetId; BinaryDataTransferGraphReceiverFixture _BinaryDataTransferGraphReceiverFixture = new DTGFixture(); using (BinaryDecoder _reader = new BinaryDecoder(_BinaryDataTransferGraphReceiverFixture, new Helpers.UABinaryDecoderImplementation())) { Assert.IsNotNull(_reader); Assert.AreEqual <int>(0, _BinaryDataTransferGraphReceiverFixture.m_NumberOfSentBytes); Assert.AreEqual <int>(0, _BinaryDataTransferGraphReceiverFixture.NumberOfAttachToNetwork); Assert.AreEqual <int>(0, _BinaryDataTransferGraphReceiverFixture.m_NumberOfSentMessages); Assert.AreEqual <HandlerState>(HandlerState.Disabled, _BinaryDataTransferGraphReceiverFixture.State.State); _reader.AttachToNetwork(); _reader.State.Enable(); Assert.AreEqual <HandlerState>(HandlerState.Operational, _BinaryDataTransferGraphReceiverFixture.State.State); Assert.AreEqual <int>(1, _BinaryDataTransferGraphReceiverFixture.NumberOfAttachToNetwork); Assert.AreEqual <int>(0, _BinaryDataTransferGraphReceiverFixture.m_NumberOfSentBytes); Assert.AreEqual <int>(0, _BinaryDataTransferGraphReceiverFixture.m_NumberOfSentMessages); object[] _buffer = new object[CommonDefinitions.TestValues.Length]; IConsumerBinding[] _bindings = new IConsumerBinding[_buffer.Length]; Action <object, int> _assign = (x, y) => _buffer[y] = x; for (int i = 0; i < _buffer.Length; i++) { _bindings[i] = new ConsumerBinding(i, _assign, Type.GetTypeCode(CommonDefinitions.TestValues[i].GetType())); } int _redItems = 0; _reader.ReadMessageCompleted += (x, y) => _reader_ReadMessageCompleted(x, y, _dataId, (z) => { _redItems++; return(_bindings[z]); }, _buffer.Length); _BinaryDataTransferGraphReceiverFixture.SendUDPMessage(CommonDefinitions.GetTestBinaryArrayVariant(), _dataId); Assert.AreEqual <int>(1, _BinaryDataTransferGraphReceiverFixture.NumberOfAttachToNetwork); Assert.AreEqual <int>(116, _BinaryDataTransferGraphReceiverFixture.m_NumberOfSentBytes); Assert.AreEqual <int>(1, _BinaryDataTransferGraphReceiverFixture.m_NumberOfSentMessages); //test packet content PacketHeader _readerHeader = _reader.Header; Assert.AreEqual <Guid>(CommonDefinitions.TestGuid, _readerHeader.PublisherId); Assert.AreEqual <byte>(MessageHandling.CommonDefinitions.ProtocolVersion, _readerHeader.ProtocolVersion); Assert.AreEqual <byte>(0, _readerHeader.NetworkMessageFlags); Assert.AreEqual <uint>(0, _readerHeader.SecurityTokenId); Assert.AreEqual <ushort>(1, _readerHeader.NonceLength); Assert.AreEqual <int>(1, _readerHeader.Nonce.Length); Assert.AreEqual <byte>(0xcc, _readerHeader.Nonce[0]); Assert.AreEqual <ushort>(1, _readerHeader.MessageCount); Assert.AreEqual <int>(1, _readerHeader.DataSetWriterIds.Count); Assert.AreEqual <uint>(CommonDefinitions.DataSetId, _readerHeader.DataSetWriterIds[0]); Assert.AreEqual <int>(_buffer.Length, _redItems); object[] _shouldBeInBuffer = CommonDefinitions.TestValues; Assert.AreEqual <int>(_shouldBeInBuffer.Length, _buffer.Length); Assert.AreEqual <string>(string.Join(",", _shouldBeInBuffer), string.Join(",", _buffer)); Assert.AreEqual <byte>(1, _readerHeader.MessageCount); } }