public void Test_ParsePersonalGameDataHtmlPageAsync_Error_Zero_Matches() { var parser = new CompetitiveMatchParser(new Mock <ILogger>().Object); using (var stream = new FileStream("./TestData/0matches.htm", FileMode.Open, FileAccess.Read)) { Func <Task <List <CompetitiveMatch> > > action = async() => await parser.ParsePersonalGameDataHtmlPageAsync(stream); using (new AssertionScope()) { action.Should().Throw <InvalidOperationException>().WithMessage("No competitve match table rows found."); } } }
public void Test_ParsePersonalGameDataHtmlPageAsync_Error_Invalid_Match() { var parser = new CompetitiveMatchParser(new Mock <ILogger>().Object); using (var stream = new FileStream("./TestData/1matchInvalid.htm", FileMode.Open, FileAccess.Read)) { Func <Task <List <CompetitiveMatch> > > action = async() => await parser.ParsePersonalGameDataHtmlPageAsync(stream); using (new AssertionScope()) { action.Should().Throw <InvalidOperationException>().WithMessage("Parsing a TimeSpan out of '' is not possible."); } } }
public async Task Test_ParsePersonalGameDataHtmlPageAsync_Success_Eight_Matches() { var parser = new CompetitiveMatchParser(new Mock <ILogger>().Object); using (var stream = new FileStream("./TestData/8matches.htm", FileMode.Open, FileAccess.Read)) { var matches = await parser.ParsePersonalGameDataHtmlPageAsync(stream); using (new AssertionScope()) { matches.Count.Should().Be(8); } } }