private static IFetchDataReturnForSubmissionDataAccess FetchDummyDataReturnWithWarning(DataReturnUploadError dataReturnsUploadError) { DataReturnUpload dataReturnsUpload = new DataReturnUpload( A.Dummy <Scheme>(), A.Dummy <string>(), new List <DataReturnUploadError>() { dataReturnsUploadError }, A.Dummy <string>(), 2016, 1); IFetchDataReturnForSubmissionDataAccess dataAccess = A.Fake <IFetchDataReturnForSubmissionDataAccess>(); A.CallTo(() => dataAccess.FetchDataReturnUploadAsync(A <Guid> ._)).Returns(dataReturnsUpload); A.CallTo(() => dataAccess.CheckForExistingSubmissionAsync(A <Guid> ._, A <int> ._, A <int> ._)).Returns(false); return(dataAccess); }
public void Submit_WhenAlreadySubmitted_ThrowInvalidOperationException() { // Arrange var dataReturnUpload = new DataReturnUpload( A.Dummy <Scheme>(), A.Dummy <string>(), A.Dummy <List <DataReturnUploadError> >(), A.Dummy <string>(), A.Dummy <int>(), A.Dummy <int>()); dataReturnUpload.SetDataReturnVersion(new DataReturnVersion(A.Dummy <DataReturn>())); dataReturnUpload.Submit("*****@*****.**"); // Act Action action = () => dataReturnUpload.Submit("*****@*****.**"); // Assert Assert.Throws <InvalidOperationException>(action); }
public void Submit_WhenContainsWarnings_SubmitsWithNoException() { var warning = new DataReturnUploadError(ErrorLevel.Warning, A.Dummy <UploadErrorType>(), A.Dummy <string>()); var dataReturnUpload = new DataReturnUpload( A.Dummy <Scheme>(), A.Dummy <string>(), new List <DataReturnUploadError> { warning }, A.Dummy <string>(), A.Dummy <int>(), A.Dummy <int>()); dataReturnUpload.SetDataReturnVersion(new DataReturnVersion(A.Dummy <DataReturn>())); var exception = Record.Exception(() => dataReturnUpload.Submit("*****@*****.**")); Assert.Null(exception); Assert.True(dataReturnUpload.DataReturnVersion.IsSubmitted); }
public async Task HandleAsync_ForDataReturnWithMultipleErrors_ReturnsErrorsByLineNumberOrder() { // Arrange DataReturnUpload dataReturnsUpload = new DataReturnUpload( A.Dummy <Scheme>(), A.Dummy <string>(), new List <DataReturnUploadError>() { new DataReturnUploadError(ErrorLevel.Error, UploadErrorType.Schema, "Error on 55 line no", 55), new DataReturnUploadError(ErrorLevel.Error, UploadErrorType.Schema, "Error on 5 line no", 5), new DataReturnUploadError(ErrorLevel.Error, UploadErrorType.Schema, "Error on 75 line no", 75), new DataReturnUploadError(ErrorLevel.Error, UploadErrorType.Schema, "Error without line no") }, A.Dummy <string>(), A.Dummy <int>(), A.Dummy <int>()); IFetchDataReturnForSubmissionDataAccess dataAccess = A.Fake <IFetchDataReturnForSubmissionDataAccess>(); A.CallTo(() => dataAccess.FetchDataReturnUploadAsync(A <Guid> ._)).Returns(dataReturnsUpload); FetchDataReturnForSubmissionHandler handler = new FetchDataReturnForSubmissionHandler( A.Dummy <IWeeeAuthorization>(), dataAccess); Requests.DataReturns.FetchDataReturnForSubmission request = new Requests.DataReturns.FetchDataReturnForSubmission( A.Dummy <Guid>()); // Act DataReturnForSubmission result = await handler.HandleAsync(request); // Assert Assert.Equal(4, result.Errors.Count); Assert.True(result.Errors.ElementAt(0).Description == "Error without line no" && result.Errors.ElementAt(1).Description == "Error on 5 line no" && result.Errors.ElementAt(2).Description == "Error on 55 line no" && result.Errors.ElementAt(3).Description == "Error on 75 line no"); }
public async Task HandleAsync_Happypath_ReturnsQuarterInfo() { DataReturnUpload dataReturnsUpload = new DataReturnUpload( A.Dummy<Scheme>(), A.Dummy<string>(), new List<DataReturnUploadError>(), A.Dummy<string>(), 2016, 1); IFetchDataReturnUploadDataAccess dataAccess = A.Fake<IFetchDataReturnUploadDataAccess>(); A.CallTo(() => dataAccess.FetchDataReturnUploadByIdAsync(A<Guid>._)).Returns(dataReturnsUpload); GetUploadInfoByDataReturnUploadIdHandler handler = new GetUploadInfoByDataReturnUploadIdHandler(A.Dummy<IWeeeAuthorization>(), dataAccess); Requests.DataReturns.GetUploadInfoByDataReturnUploadId request = new Requests.DataReturns.GetUploadInfoByDataReturnUploadId( A.Dummy<Guid>()); var result = await handler.HandleAsync(request); Assert.Equal(2016, result.Year); Assert.Equal(1, (int)result.Quarter.Value); }
public async Task HandleAsync_Happypath_ReturnsQuarterInfo() { DataReturnUpload dataReturnsUpload = new DataReturnUpload( A.Dummy <Scheme>(), A.Dummy <string>(), new List <DataReturnUploadError>(), A.Dummy <string>(), 2016, 1); IFetchDataReturnUploadDataAccess dataAccess = A.Fake <IFetchDataReturnUploadDataAccess>(); A.CallTo(() => dataAccess.FetchDataReturnUploadByIdAsync(A <Guid> ._)).Returns(dataReturnsUpload); GetUploadInfoByDataReturnUploadIdHandler handler = new GetUploadInfoByDataReturnUploadIdHandler(A.Dummy <IWeeeAuthorization>(), dataAccess); Requests.DataReturns.GetUploadInfoByDataReturnUploadId request = new Requests.DataReturns.GetUploadInfoByDataReturnUploadId( A.Dummy <Guid>()); var result = await handler.HandleAsync(request); Assert.Equal(2016, result.Year); Assert.Equal(1, (int)result.Quarter.Value); }
public async Task AddAndSaveAsync(DataReturnUpload dataUpload) { context.DataReturnsUploads.Add(dataUpload); await context.SaveChangesAsync(); }
private static IFetchDataReturnForSubmissionDataAccess FetchDummyDataReturnWithError(DataReturnUploadError dataReturnsUploadError) { DataReturnUpload dataReturnsUpload = new DataReturnUpload( A.Dummy<Scheme>(), A.Dummy<string>(), new List<DataReturnUploadError>() { dataReturnsUploadError }, A.Dummy<string>(), null, null); IFetchDataReturnForSubmissionDataAccess dataAccess = A.Fake<IFetchDataReturnForSubmissionDataAccess>(); A.CallTo(() => dataAccess.FetchDataReturnUploadAsync(A<Guid>._)).Returns(dataReturnsUpload); A.CallTo(() => dataAccess.CheckForExistingSubmissionAsync(A<Guid>._, A<int>._, A<int>._)).Returns(false); return dataAccess; }
public async Task HandleAsync_ForDataReturnWithMultipleErrors_ReturnsErrorsByLineNumberOrder() { // Arrange DataReturnUpload dataReturnsUpload = new DataReturnUpload( A.Dummy<Scheme>(), A.Dummy<string>(), new List<DataReturnUploadError>() { new DataReturnUploadError(ErrorLevel.Error, UploadErrorType.Schema, "Error on 55 line no", 55), new DataReturnUploadError(ErrorLevel.Error, UploadErrorType.Schema, "Error on 5 line no", 5), new DataReturnUploadError(ErrorLevel.Error, UploadErrorType.Schema, "Error on 75 line no", 75), new DataReturnUploadError(ErrorLevel.Error, UploadErrorType.Schema, "Error without line no") }, A.Dummy<string>(), A.Dummy<int>(), A.Dummy<int>()); IFetchDataReturnForSubmissionDataAccess dataAccess = A.Fake<IFetchDataReturnForSubmissionDataAccess>(); A.CallTo(() => dataAccess.FetchDataReturnUploadAsync(A<Guid>._)).Returns(dataReturnsUpload); FetchDataReturnForSubmissionHandler handler = new FetchDataReturnForSubmissionHandler( A.Dummy<IWeeeAuthorization>(), dataAccess); Requests.DataReturns.FetchDataReturnForSubmission request = new Requests.DataReturns.FetchDataReturnForSubmission( A.Dummy<Guid>()); // Act DataReturnForSubmission result = await handler.HandleAsync(request); // Assert Assert.Equal(4, result.Errors.Count); Assert.True(result.Errors.ElementAt(0).Description == "Error without line no" && result.Errors.ElementAt(1).Description == "Error on 5 line no" && result.Errors.ElementAt(2).Description == "Error on 55 line no" && result.Errors.ElementAt(3).Description == "Error on 75 line no"); }