public void DisposeTest()
        {
            BinaryDataTransferGraphReceiverFixture _BinaryDataTransferGraphReceiverFixture = new DTGFixture();

            using (BinaryDecoder _reader = new BinaryDecoder(_BinaryDataTransferGraphReceiverFixture, new Helpers.UABinaryDecoderImplementation())) { }
            Assert.AreEqual <int>(1, _BinaryDataTransferGraphReceiverFixture.DisposeCount);
        }
        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);
            }
        }