public void TestNormalUse() { var list = new MatchesList(5); list.Count.Should().Be(0); list.Add("one", "two", null); list.Count.Should().Be(1); list.Add("three", "four", null); list.Count.Should().Be(2); var iterator = list.GetEnumerator(); var next = iterator.MoveNext(); next.Should().BeTrue(); var match1 = iterator.Current; next = iterator.MoveNext(); next.Should().BeTrue(); var match2 = iterator.Current; next = iterator.MoveNext(); next.Should().BeFalse(); match1.Key.Should().Be("one"); match1.Value.Should().Be("two"); match1.Result.Should().BeNull(); match2.Key.Should().Be("three"); match2.Value.Should().Be("four"); match2.Result.Should().BeNull(); }
public void TestTooMany() { var list = new MatchesList(5) { { "one", "two", null }, { "three", "four", null } }; var iterator = list.GetEnumerator(); iterator.MoveNext().Should().BeTrue(); iterator.Current.Should().NotBeNull(); iterator.MoveNext().Should().BeTrue(); iterator.Current.Should().NotBeNull(); iterator.MoveNext().Should().BeFalse(); var a = new Action(() => { var c = iterator.Current; }); a.Should().Throw <IndexOutOfRangeException>(); }