private void AssertInvalidOperationsOnTraverserAtStartOrEnd(IListTraverser <int> traverser) { Assert.Throws <InvalidOperationException>(() => { var x = traverser.Index; }); Assert.Throws <InvalidOperationException>(() => { var x = traverser.Element; }); Assert.Throws <InvalidOperationException>(() => traverser.Element = 1); Assert.Throws <InvalidOperationException>(() => traverser.RemoveAt()); }
private void AssertStateOfTraverserOnSingleElementList(IListTraverser <int> traverser) { // not asserting the value of the element, since that is test-case dependent Assert.IsFalse(traverser.AtStart); Assert.IsFalse(traverser.AtEnd); Assert.IsTrue(traverser.OnElement); Assert.IsTrue(traverser.OnIndex); Assert.AreEqual(0, traverser.Index); }
private void TestTraverserBackwardTraversal(IListTraverser <int> traverser) { for (int i = 4; i >= 0; --i) { Assert.AreEqual(i, traverser.Index); Assert.AreEqual(i + 1, traverser.Element); traverser.ToPrevious(); } Assert.IsTrue(traverser.AtStart); AssertInvalidOperationsOnTraverserAtStartOrEnd(traverser); }
private void TestTraverserForwardTraversal(IListTraverser <int> traverser) { for (int i = 0; i < 5; ++i) { Assert.AreEqual(i, traverser.Index); Assert.AreEqual(i + 1, traverser.Element); traverser.ToNext(); } Assert.IsTrue(traverser.AtEnd); AssertInvalidOperationsOnTraverserAtStartOrEnd(traverser); }
private void TestReplaceAndInsertOnSingleElementList(IListTraverser <int> traverser) { traverser.Element = 7; Assert.IsTrue(Enumerable.SequenceEqual(new int[] { 7 }, m_list)); Assert.AreEqual(7, traverser.Element); Assert.AreEqual(0, traverser.Index); traverser.InsertBefore(4); Assert.IsTrue(Enumerable.SequenceEqual(new int[] { 4, 7 }, m_list)); Assert.AreEqual(7, traverser.Element); Assert.AreEqual(1, traverser.Index); traverser.InsertAfter(10); Assert.IsTrue(Enumerable.SequenceEqual(new int[] { 4, 7, 10 }, m_list)); Assert.AreEqual(7, traverser.Element); Assert.AreEqual(1, traverser.Index); }
private void AssertStateOfTraverserOnEmptyList(IListTraverser <int> traverser) { Assert.IsTrue(traverser.AtStart); Assert.IsTrue(traverser.AtEnd); Assert.IsFalse(traverser.OnElement); Assert.IsFalse(traverser.OnIndex); AssertInvalidOperationsOnTraverserAtStartOrEnd(traverser); traverser.ToNext(); Assert.IsTrue(traverser.AtStart); Assert.IsTrue(traverser.AtEnd); Assert.IsFalse(traverser.OnElement); Assert.IsFalse(traverser.OnIndex); AssertInvalidOperationsOnTraverserAtStartOrEnd(traverser); traverser.ToPrevious(); Assert.IsTrue(traverser.AtStart); Assert.IsTrue(traverser.AtEnd); Assert.IsFalse(traverser.OnElement); Assert.IsFalse(traverser.OnIndex); AssertInvalidOperationsOnTraverserAtStartOrEnd(traverser); }