public void IEnumerable() { using (var arr = new SwiftArray <sbyte> (1, 2, 3, 4, 5, 6, 7, 8, 9)) { var list = new List <sbyte> (); foreach (var item in arr) { list.Add(item); } CollectionAssert.AreEqual(new sbyte [] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }, list, "Enumerator"); arr.Dispose(); var enumerator = arr.GetEnumerator(); // No exception Assert.Throws <ObjectDisposedException> (() => { foreach (var x in arr) { } }, "Enumerator ODE 3"); Assert.Throws <ObjectDisposedException> (() => { enumerator.MoveNext(); }, "Enumerator ODE 2"); Assert.DoesNotThrow(() => { var x = enumerator.Current; }, "Enumerator !ODE"); } }