public void GetValues_GivenOrdinal_ReturnsCorrectly()
        {
            // arrange
            var sut = new CacheableDataReader(actualDataReader);
            sut.Read();

            var expectedData = new object[]
            {
                "AStringValue",             // StringColumn
                GuidData,                   // GuidColumn
                13,                         // Int16Column
                14,                         // Int32Column
                15,                         // Int64Column
                DBNull.Value,               // NullColumn
                true,                       // BooleanColumn
                5,                          // ByteColumn
                new byte[] { 13, 37 },      // BytesColumn
                '!',                        // CharColumn
                new char[] { '!', '#' },    // CharsColumn
                DateTimeData,               // DateTimeColumn
                210,                        // DecimalColumn
                1790,                       // DoubleColumn
                1790,                       // FloatColumn
                ObjectData
            };

            var actualData = new object[100];

            // act
            var numberOfResults = sut.GetValues(actualData);

            // assert
            Assert.That(numberOfResults, Is.EqualTo(expectedData.Length));
            Assert.That(actualData.Take(numberOfResults).ToArray(), Is.EquivalentTo(expectedData));
        }