public async Task MutateAsync() { var cancellationToken = CancellationToken.None; var easUploadTime = new DateTime(2020, 8, 1, 9, 0, 0); var refDataModel = new ReferenceDataRoot { MetaDatas = new MetaData { ReferenceDataVersions = new ReferenceDataVersion { EasFileDetails = new EasFileDetails { FileName = "1/EAS-1-2.csv", UploadDateTime = easUploadTime } } } }; var reportServiceDependentData = new Mock <IReportServiceDependentData>(MockBehavior.Strict); reportServiceDependentData.Setup(x => x.Get <ReferenceDataRoot>()).Returns(refDataModel); reportServiceDependentData.Setup(x => x.Contains <ReferenceDataRoot>()).Returns(true); IReportServiceContext contextIn = new ReportServiceJobContextMessageContextStub(1, "1/ILR-1-2.xml", "1/ILR-1-2.xml", new DateTime(2020, 8, 2, 9, 0, 0)); var dateTimeProviderMock = new Mock <IDateTimeProvider>(); dateTimeProviderMock.Setup(x => x.ConvertUtcToUk(contextIn.SubmissionDateTimeUtc)).Returns(new DateTime(2020, 8, 2, 8, 0, 0)); dateTimeProviderMock.Setup(x => x.ConvertUtcToUk(easUploadTime)).Returns(new DateTime(2020, 8, 1, 8, 0, 0)); var mutator = new ReportServiceContextKeysMutator(dateTimeProviderMock.Object); var contextOut = await mutator.MutateAsync(contextIn, reportServiceDependentData.Object, cancellationToken); contextOut.IlrReportingFilename.Should().Be("ILR-1-2.xml"); contextOut.EasReportingFilename.Should().Be("EAS-1-2.csv"); contextOut.LastIlrFileUpdate.Should().Be("02/08/2020 08:00:00"); contextOut.LastEasFileUpdate.Should().Be("01/08/2020 08:00:00"); }
public async Task MutateAsync() { var cancellationToken = CancellationToken.None; var ilrUploadDate = new DateTime(2020, 8, 1, 9, 0, 0); IEnumerable <FileDetail> submissionsList = new List <FileDetail> { new FileDetail { UKPRN = 1, SubmittedTime = new DateTime(2020, 8, 1), Filename = "1/ILR-1-1.xml" }, new FileDetail { UKPRN = 1, SubmittedTime = ilrUploadDate, Filename = "1/ILR-1-2.xml" }, new FileDetail { UKPRN = 2, SubmittedTime = new DateTime(2020, 9, 1), Filename = "2/ILR-2-1.xml" } }; var ilrDbMock = submissionsList.AsQueryable().BuildMockDbSet(); var IlrMock = new Mock <IILR2021_DataStoreEntities>(); IlrMock.Setup(x => x.FileDetails).Returns(ilrDbMock.Object); Func <IILR2021_DataStoreEntities> ilrFunc = () => { return(IlrMock.Object); }; IReportServiceContext contextIn = new ReportServiceJobContextMessageContextStub(1, "1/EAS-1-2.csv", "1/EAS-1-2.csv", new DateTime(2020, 8, 2, 9, 0, 0)); var dateTimeProviderMock = new Mock <IDateTimeProvider>(); dateTimeProviderMock.Setup(x => x.ConvertUtcToUk(contextIn.SubmissionDateTimeUtc)).Returns(new DateTime(2020, 8, 2, 8, 0, 0)); dateTimeProviderMock.Setup(x => x.ConvertUtcToUk(ilrUploadDate)).Returns(new DateTime(2020, 8, 2, 8, 0, 0)); var mutator = new ReportServiceContextKeysMutator(ilrFunc, dateTimeProviderMock.Object); var contextOut = await mutator.MutateAsync(contextIn, null, cancellationToken); contextOut.IlrReportingFilename.Should().Be("ILR-1-2.xml"); contextOut.EasReportingFilename.Should().Be("EAS-1-2.csv"); contextOut.LastIlrFileUpdate.Should().Be("02/08/2020 08:00:00"); contextOut.LastEasFileUpdate.Should().Be("02/08/2020 08:00:00"); }
public async Task MutateAsync_NoDependentData_ValidationFailReport() { var cancellationToken = CancellationToken.None; var errors = new List <ValidationError> { new ValidationError { Message = "Message", RuleName = "Rule1" }, new ValidationError { Message = "Message", RuleName = "Rule2" } }; var reportServiceDependentData = new Mock <IReportServiceDependentData>(MockBehavior.Strict); reportServiceDependentData.Setup(x => x.Get <List <ValidationError> >()).Returns(errors); reportServiceDependentData.Setup(x => x.Contains <ReferenceDataRoot>()).Returns(false); IReportServiceContext contextIn = new ReportServiceJobContextMessageContextStub(1, "1/ILR-1-2.xml", "1/ILR-1-2.xml", new DateTime(2020, 8, 2)); var dateTimeProviderMock = new Mock <IDateTimeProvider>(); dateTimeProviderMock.Setup(x => x.ConvertUtcToUk(contextIn.SubmissionDateTimeUtc)).Returns(new DateTime(2020, 8, 2, 8, 0, 0)); var mutator = new ReportServiceContextKeysMutator(dateTimeProviderMock.Object); var contextOut = await mutator.MutateAsync(contextIn, reportServiceDependentData.Object, cancellationToken); contextOut.IlrReportingFilename.Should().Be("ILR-1-2.xml"); contextOut.EasReportingFilename.Should().Be("N/A"); contextOut.LastIlrFileUpdate.Should().Be("02/08/2020 08:00:00"); contextOut.LastEasFileUpdate.Should().Be("N/A"); }