public void TestIEnumerableOfAnonymousType() { // create generic list Func<Type, IList> toGenericList = type => (IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(new[] { type })); // create generic list of anonymous type IList listOfAnonymousType = toGenericList(new { Name = "1", Age = 16 }.GetType()); listOfAnonymousType.Add(new { Name = "1", Age = 16 }); listOfAnonymousType.Add(new { Name = "2", Age = 26 }); listOfAnonymousType.Add(new { Name = "3", Age = 36 }); listOfAnonymousType.Add(new { Name = "4", Age = 46 }); var r = new EnumerableDataReader(listOfAnonymousType); while (r.Read()) { var values = new object[2]; int count = r.GetValues(values); Assert.AreEqual(2, count); values = new object[1]; count = r.GetValues(values); Assert.AreEqual(1, count); values = new object[3]; count = r.GetValues(values); Assert.AreEqual(2, count); Assert.IsInstanceOf(typeof(string), r.GetValue(0)); Assert.IsInstanceOf(typeof(int), r.GetValue(1)); Console.WriteLine("Name: {0}, Age: {1}", r.GetValue(0), r.GetValue(1)); } }
public void ThrowsWhenValueAccessedAfterDisposal() { var localReader = new EnumerableDataReader <FakeEntity>(this.data); localReader.Close(); Action act = () => localReader.GetValue(0); act.ShouldThrow <ObjectDisposedException>(); }
public void TestIEnumerableOfTCtor() { var r = new EnumerableDataReader(DataSource); while (r.Read()) { var values = new object[2]; int count = r.GetValues(values); Assert.AreEqual(2, count); values = new object[1]; count = r.GetValues(values); Assert.AreEqual(1, count); values = new object[3]; count = r.GetValues(values); Assert.AreEqual(2, count); Assert.IsInstanceOf(typeof(string), r.GetValue(0)); Assert.IsInstanceOf(typeof(int), r.GetValue(1)); Console.WriteLine("Name: {0}, Age: {1}", r.GetValue(0), r.GetValue(1)); } }
public void ReturnCorrectData() { var item1 = new DataItem() { Id = 1, Name = "Item 1" }; var item2 = new DataItem() { Id = 2, Name = "Item 2" }; var data = new List <DataItem>(new DataItem[] { item1, item2 }); using (var reader = new EnumerableDataReader <DataItem>(new List <DataItem>(), new string[] { "Id", "Name" })) { int itemIndex = 0; while (reader.Read()) { reader.GetValue(0).Should().Be(data[itemIndex].Id); reader.GetValue(1).Should().Be(data[itemIndex].Name); itemIndex++; } } }
public void DataReaderReadStruct() { var d = new TestStruct[] { new TestStruct (1, new DateTime (1997, 7, 1), 7.1f), new TestStruct (3, new DateTime (2046, 10, 1), null) }; using (var r = new EnumerableDataReader<TestStruct> (d)) { var xi = r.GetOrdinal ("X"); var yi = r.GetOrdinal ("Y"); var zi = r.GetOrdinal ("Z"); Assert.AreEqual (true, r.Read ()); Assert.AreEqual (1, r.GetInt32 (xi)); Assert.AreEqual (new DateTime (1997, 7, 1), r.GetDateTime (yi)); Assert.AreEqual (7.1f, r.GetFloat (zi)); Assert.AreEqual (true, r.Read ()); Assert.AreEqual (3, r.GetInt32 (xi)); Assert.AreEqual (new DateTime (2046, 10, 1), r.GetDateTime (yi)); Assert.IsNull (r.GetValue (zi)); } }
public void DataReaderReadStruct() { var d = new TestStruct[] { new TestStruct(1, new DateTime(1997, 7, 1), 7.1f), new TestStruct(3, new DateTime(2046, 10, 1), null) }; using (var r = new EnumerableDataReader <TestStruct> (d)) { var xi = r.GetOrdinal("X"); var yi = r.GetOrdinal("Y"); var zi = r.GetOrdinal("Z"); Assert.AreEqual(true, r.Read()); Assert.AreEqual(1, r.GetInt32(xi)); Assert.AreEqual(new DateTime(1997, 7, 1), r.GetDateTime(yi)); Assert.AreEqual(7.1f, r.GetFloat(zi)); Assert.AreEqual(true, r.Read()); Assert.AreEqual(3, r.GetInt32(xi)); Assert.AreEqual(new DateTime(2046, 10, 1), r.GetDateTime(yi)); Assert.IsNull(r.GetValue(zi)); } }
public void ThrowsWhenValueAccessedAfterDisposal() { var localReader = new EnumerableDataReader<FakeEntity>(this.data); localReader.Close(); Action act = () => localReader.GetValue(0); act.ShouldThrow<ObjectDisposedException>(); }