public void ShouldConsumeAllRecords() { var result = ResultCreator.CreateResult(0, 3); result.Consume(); result.Count().Should().Be(0); result.Peek().Should().BeNull(); }
public void ShouldReturnNullIfAtEnd() { var result = ResultCreator.CreateResult(1); result.Take(1).ToList(); var record = result.Peek(); record.Should().BeNull(); }
public void ShouldReturnRecordIfSingle() { var result = ResultCreator.CreateResult(1); var record = result.Single(); record.Should().NotBeNull(); record.Keys.Count.Should().Be(1); }
public void ShouldReturnNextRecordWithoutMovingCurrentRecord() { var result = ResultCreator.CreateResult(1); var record = result.Peek(); record.Should().NotBeNull(); result.GetEnumerator().Current.Should().BeNull(); }
public void ShouldThrowInvalidOperationExceptionIfMoreThanOneRecordFound() { var result = ResultCreator.CreateResult(1, 2); var ex = Xunit.Record.Exception(() => result.Single()); ex.Should().BeOfType <InvalidOperationException>(); // INFO: Changed message because use of Enumerable.Single for simpler implementation ex.Message.Should().Be("Sequence contains more than one element"); }
public void ShouldThrowNoExceptionWhenCallingMultipleTimes() { var result = ResultCreator.CreateResult(1); result.Consume(); var ex = Xunit.Record.Exception(() => result.Consume()); ex.Should().BeNull(); }
public void ShouldGetTheFirstRecordAndMoveToNextPosition() { var result = ResultCreator.CreateResult(1, 3); var record = result.First(); record[0].ValueAs<string>().Should().Be("record0:key0"); record = result.First(); record[0].ValueAs<string>().Should().Be("record1:key0"); }
public void ShouldCallGetSummaryWhenGetSummaryIsNotNull() { bool getSummaryCalled = false; var result = ResultCreator.CreateResult(1, 0, () => { getSummaryCalled = true; return(null); }); // ReSharper disable once UnusedVariable var summary = result.Summary; getSummaryCalled.Should().BeTrue(); }
public void ShouldThrowInvalidOperationExceptionWhenNotAtEnd() { var result = ResultCreator.CreateResult(1); result.AtEnd.Should().BeFalse(); var ex = Xunit.Record.Exception(() => result.Summary); ex.Should().BeOfType <InvalidOperationException>(); }
public void ShouldConsumeRecordCorrectly() { var result = ResultCreator.CreateResult(1, 3); result.Consume(); result.Count().Should().Be(0); // the records left after consume result.GetEnumerator().Current.Should().BeNull(); result.GetEnumerator().MoveNext().Should().BeFalse(); }
public void ShouldReturnExistingSummaryWhenSummaryHasBeenRetrieved() { int getSummaryCalled = 0; var result = ResultCreator.CreateResult(1, 0, () => { getSummaryCalled++; return new FakeSummary(); }); // ReSharper disable once NotAccessedVariable var summary = result.Summary; // ReSharper disable once RedundantAssignment summary = result.Summary; getSummaryCalled.Should().Be(1); }
public void ShouldAlwaysAdvanceRecordPosition() { var result = ResultCreator.CreateResult(1, 3); var enumerable = result.Take(1); var records = result.Take(2).ToList(); records[0][0].As <string>().Should().Be("record0:key0"); records[1][0].As <string>().Should().Be("record1:key0"); records = enumerable.ToList(); records[0][0].As <string>().Should().Be("record2:key0"); }
public void ShouldThrowInvalidOperationExceptionIfNotTheFistRecord() { var result = ResultCreator.CreateResult(1, 2); var enumerator = result.GetEnumerator(); enumerator.MoveNext().Should().BeTrue(); enumerator.Current.Should().NotBeNull(); var ex = Xunit.Record.Exception(() => result.Single()); ex.Should().BeOfType <InvalidOperationException>(); ex.Message.Should().Be("The first record is already consumed."); }
public void ShouldConsumeSummaryCorrectly() { int getSummaryCalled = 0; var result = ResultCreator.CreateResult(1, 0, () => { getSummaryCalled++; return(new FakeSummary()); }); result.Consume(); getSummaryCalled.Should().Be(1); // the same if we call it multiple times result.Consume(); getSummaryCalled.Should().Be(1); }
public void ShouldReturnNullWhenGetSummaryIsNull() { var result = ResultCreator.CreateResult(1, 0); result.Summary.Should().BeNull(); }