public void GetNullableGuid_Should_Return_Null_When_IsDbNull_Returns_True()
        {
            var mockDataReader = new Mock <IDataReader>();

            mockDataReader.Setup(x => x.GetOrdinal("guid")).Returns(14);
            mockDataReader.Setup(x => x.IsDBNull(14)).Returns(true);
            mockDataReader.Setup(x => x.GetGuid(14));

            var sut    = new OptimizedDataReader(mockDataReader.Object);
            var result = sut.GetNullableGuid("guid");

            Assert.Null(result);
            mockDataReader.Verify(x => x.GetOrdinal("guid"), Times.Once);
            mockDataReader.Verify(x => x.IsDBNull(14), Times.Once);
            mockDataReader.Verify(x => x.GetGuid(14), Times.Never);
        }
        public void GetNullableGuid_Should_Return_Value_When_IsDbNull_Returns_False()
        {
            var fakeResult     = new Guid("E7DA6396-1C6F-4130-A725-C50EBD2C7CB9");
            var mockDataReader = new Mock <IDataReader>();

            mockDataReader.Setup(x => x.GetOrdinal("guid")).Returns(14);
            mockDataReader.Setup(x => x.IsDBNull(14)).Returns(false);
            mockDataReader.Setup(x => x.GetGuid(14)).Returns(fakeResult);

            var sut    = new OptimizedDataReader(mockDataReader.Object);
            var result = sut.GetNullableGuid("guid");

            Assert.Equal(fakeResult, result);
            mockDataReader.Verify(x => x.GetOrdinal("guid"), Times.Once);
            mockDataReader.Verify(x => x.IsDBNull(14), Times.Once);
            mockDataReader.Verify(x => x.GetGuid(14), Times.Once);
        }