public async Task ShouldPopulateStandardReportFieldsAndSave() { var loggerMock = GetLoggerMock <IReporter>(); Common.SetupConfiguration(_configurationMock); var repositoryMock = new Mock <IRepository>(); var data = Common.SetupDataForBaseReporter(repositoryMock); var dummy = new DummyReporter(repositoryMock.Object, _configurationMock.Object, loggerMock.Object); var query = new ReportQuery { StartDate = DateTime.UtcNow.AddDays(-7), EndDate = DateTime.UtcNow.AddDays(2), ProfileId = data.profile.Id }; var report = await dummy.ReportAsync(query); report.Id.Should().NotBeEmpty(); report.DateTaken.Should().BeCloseTo(DateTime.UtcNow); report.StartDate.Should().Be(query.StartDate); report.EndDate.Should().Be(query.EndDate); report.ProfileName.Should().Be(data.profile.Name); report.ReporterId.Should().Be(dummy.Id); report.ReportName.Should().Be(dummy.Name); repositoryMock.Verify(r => r.CreateAsync(It.IsAny <ReportResult>()), Times.Once()); }
public async Task ShouldInitializeInputObject() { var loggerMock = GetLoggerMock <IReporter>(); Common.SetupConfiguration(_configurationMock); var repositoryMock = new Mock <IRepository>(); var data = Common.SetupDataForBaseReporter(repositoryMock); var dummy = new DummyReporter(repositoryMock.Object, _configurationMock.Object, loggerMock.Object); var query = new ReportQuery { StartDate = DateTime.UtcNow.AddDays(-7), EndDate = DateTime.UtcNow.AddDays(2), ProfileId = data.profile.Id }; await dummy.ReportAsync(query); dummy.VerifyInputObject(query, data.profile, data.members.Take(2), data.repositories, data.projects[0]); repositoryMock.Verify(r => r.GetSingleAsync <Profile>(It.Is <Guid>(e => VerifySelectProfileExpression(e, data.profile))), Times.Once()); repositoryMock.Verify(); }