public void GetEnumerator_NoItems_EmptyEnumerator() { SqlBulkCopyColumnMappingCollection collection = CreateCollection(); IEnumerator e = collection.GetEnumerator(); Assert.Throws <InvalidOperationException>(() => e.Current); Assert.False(e.MoveNext()); Assert.Throws <InvalidOperationException>(() => e.Current); }
public void GetEnumerator_ModifiedCollectionDuringEnumeration_ThrowsInvalidOperationException() { SqlBulkCopyColumnMappingCollection collection = CreateCollection(); IEnumerator e = collection.GetEnumerator(); collection.Add(0, 0); // Collection changed. Assert.Throws <InvalidOperationException>(() => e.MoveNext()); Assert.Throws <InvalidOperationException>(() => e.Reset()); }
public void GetEnumerator_ItemsAdded_AllItemsReturnedAndEnumeratorBehavesAsExpected() { var item1 = new SqlBulkCopyColumnMapping(0, 0); var item2 = new SqlBulkCopyColumnMapping(1, 1); var item3 = new SqlBulkCopyColumnMapping(2, 2); SqlBulkCopyColumnMappingCollection collection = CreateCollection(item1, item2, item3); IEnumerator e = collection.GetEnumerator(); const int Iterations = 2; for (int i = 0; i < Iterations; i++) { // Not started Assert.Throws <InvalidOperationException>(() => e.Current); Assert.True(e.MoveNext()); Assert.Same(item1, e.Current); Assert.True(e.MoveNext()); Assert.Same(item2, e.Current); Assert.True(e.MoveNext()); Assert.Same(item3, e.Current); Assert.False(e.MoveNext()); Assert.False(e.MoveNext()); Assert.False(e.MoveNext()); Assert.False(e.MoveNext()); Assert.False(e.MoveNext()); // Ended Assert.Throws <InvalidOperationException>(() => e.Current); e.Reset(); } }