public void ShouldThrowExceptionIfDataTypeIsUnknown()
        {
            var converter = new Mock <IDataConverter>();

            converter.Setup(x => x.DataType).Returns(typeof(string));
            var dispatcher = new DataConverterDispatcher(new[] { converter.Object });

            var action = new Action(() => dispatcher.ConvertBack(typeof(int), new byte[] { 0x2A, 0x00, 0x00, 0x00 }, 0));

            action.Should().Throw <Exception>();
        }
        public void ShouldCallCorrectDataConverterIfDataTypeIsSameTypeAsDataType()
        {
            var converter = new Mock <IDataConverter>();

            converter.Setup(x => x.DataType).Returns(typeof(int));
            var dispatcher = new DataConverterDispatcher(new[] { converter.Object });

            dispatcher.Convert(11);

            converter.Verify(x => x.Convert(11), Times.Once);
        }
        public void ShouldCallCorrectDataConverterIfDataTypeIsSameTypeAsDataType()
        {
            var converter = new Mock <IDataConverter>();

            converter.Setup(x => x.DataType).Returns(typeof(int));
            converter.Setup(x => x.ConvertBack(It.IsAny <byte[]>(), It.IsAny <int>())).Returns((42, 4));
            var dispatcher = new DataConverterDispatcher(new[] { converter.Object });

            var(dataValue, dataIndex) = dispatcher.ConvertBack(typeof(int), new byte[] { 0x2A, 0x00, 0x00, 0x00 }, 0);

            converter.Verify(x => x.ConvertBack(new byte[] { 0x2A, 0x00, 0x00, 0x00 }, 0), Times.Once);
            dataValue.Should().Be(42);
            dataIndex.Should().Be(4);
        }