public void Parse_WithTwoValidLines_ShouldReturnBothItemsWithCorrectIp() { var logItems = parser.Parse(twoLines); logItems.Should().NotBeNullOrEmpty(); logItems.Should().Contain(item => item.Ip == "212.120.32.82") .And.Contain(item => item.Ip == "83.150.38.202") .And.HaveCount(2); }
public ActionResult Upload(HttpPostedFileBase file) { AnalysisResult result; try { var lines = reader.ReadLog(file.InputStream); var logItems = parser.Parse(lines); var clientResults = logItems.GroupBy(item => item.Ip) .Select(group => new ClientResult(@group.Key, @group.Count())) .ToList(); result = new AnalysisResult(clientResults, "Successfully analyzed the log file."); } catch (InvalidOperationException exception) { result = new AnalysisResult(new List <ClientResult>(), exception.Message); } ViewResult view = View("Result", result); return(view); }