public async Task GetOrAddAatfDeliveryLocation_NoMatchingApprovalNumber_ReturnsNewAatfDeliveryLocation() { // Arrange var dbContextHelper = new DbContextHelper(); var context = A.Fake<WeeeContext>(); var aatfDeliveryLocationDb = new AatfDeliveryLocation("xxx", "BBB"); var aatfDeliveryLocations = dbContextHelper.GetAsyncEnabledDbSet(new List<AatfDeliveryLocation> { aatfDeliveryLocationDb }); A.CallTo(() => context.AatfDeliveryLocations) .Returns(aatfDeliveryLocations); var dataAccess = new DataReturnVersionBuilderDataAccess(A.Dummy<Scheme>(), A.Dummy<Quarter>(), context); // Act var result = await dataAccess.GetOrAddAatfDeliveryLocation("AAA", "BBB"); // Assert Assert.NotNull(result); Assert.NotSame(aatfDeliveryLocationDb, result); Assert.Equal("AAA", result.ApprovalNumber); Assert.Equal("BBB", result.FacilityName); Assert.Contains(result, dataAccess.CachedAatfDeliveryLocations.Values); A.CallTo(() => aatfDeliveryLocations.Add(result)) .MustHaveHappened(); }
public async Task FetchDataReturnOrDefault_ReturnsDataReturnForSpecifiedYearOnly() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); DomainHelper domainHelper = new DomainHelper(database.WeeeContext); var scheme = helper.CreateScheme(); helper.CreateDataReturnVersion(scheme, 2016, 1, true); var dataReturnVersion = helper.CreateDataReturnVersion(scheme, 2017, 1, true); database.Model.SaveChanges(); var dataAccess = new DataReturnVersionBuilderDataAccess(domainHelper.GetScheme(scheme.Id), new Quarter(2017, QuarterType.Q1), database.WeeeContext); // Act var result = await dataAccess.FetchDataReturnOrDefault(); // Assert Assert.Equal(2017, result.Quarter.Year); Assert.Equal(dataReturnVersion.DataReturn.Id, result.Id); } }
public async Task GetOrAddAatfDeliveryLocation_NoMatchingApprovalNumber_ReturnsNewAatfDeliveryLocation() { // Arrange var dbContextHelper = new DbContextHelper(); var context = A.Fake <WeeeContext>(); var aatfDeliveryLocationDb = new AatfDeliveryLocation("xxx", "BBB"); var aatfDeliveryLocations = dbContextHelper.GetAsyncEnabledDbSet(new List <AatfDeliveryLocation> { aatfDeliveryLocationDb }); A.CallTo(() => context.AatfDeliveryLocations) .Returns(aatfDeliveryLocations); var dataAccess = new DataReturnVersionBuilderDataAccess(A.Dummy <Scheme>(), A.Dummy <Quarter>(), context); // Act var result = await dataAccess.GetOrAddAatfDeliveryLocation("AAA", "BBB"); // Assert Assert.NotNull(result); Assert.NotSame(aatfDeliveryLocationDb, result); Assert.Equal("AAA", result.ApprovalNumber); Assert.Equal("BBB", result.FacilityName); Assert.Contains(result, dataAccess.CachedAatfDeliveryLocations.Values); A.CallTo(() => aatfDeliveryLocations.Add(result)) .MustHaveHappened(); }
public async Task GetRegisteredProducer_ReturnsProducerForMatchingRegistrationNumberOnly() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); DomainHelper domainHelper = new DomainHelper(database.WeeeContext); var scheme = helper.CreateScheme(); var memberUpload1 = helper.CreateMemberUpload(scheme); memberUpload1.ComplianceYear = 2016; memberUpload1.IsSubmitted = true; helper.CreateProducerAsCompany(memberUpload1, "AAAA"); var producer = helper.GetOrCreateRegisteredProducer(scheme, 2016, "BBBB"); var memberUpload2 = helper.CreateMemberUpload(scheme); memberUpload2.ComplianceYear = 2016; memberUpload2.IsSubmitted = true; helper.CreateProducerAsCompany(memberUpload2, "BBBB"); database.Model.SaveChanges(); var dataAccess = new DataReturnVersionBuilderDataAccess(domainHelper.GetScheme(scheme.Id), new Quarter(2016, QuarterType.Q1), database.WeeeContext); // Act var result = await dataAccess.GetRegisteredProducer("BBBB"); // Assert Assert.Equal("BBBB", result.ProducerRegistrationNumber); Assert.Equal(producer.Id, result.Id); } }
public async Task GetOrAddAeDeliveryLocation_IgnoresCaseOfApprovalNumberAndOperatorName() { // Arrange var dbContextHelper = new DbContextHelper(); var context = A.Fake <WeeeContext>(); var aeDeliveryLocations = dbContextHelper.GetAsyncEnabledDbSet(new List <AeDeliveryLocation>()); A.CallTo(() => context.AeDeliveryLocations) .Returns(aeDeliveryLocations); var dataAccess = new DataReturnVersionBuilderDataAccess(A.Dummy <Scheme>(), A.Dummy <Quarter>(), context); // Act var result1 = await dataAccess.GetOrAddAeDeliveryLocation("AAA", "BBB"); var result2 = await dataAccess.GetOrAddAeDeliveryLocation("aaa", "BBB"); var result3 = await dataAccess.GetOrAddAeDeliveryLocation("AAA", "bbb"); var result4 = await dataAccess.GetOrAddAeDeliveryLocation("aaa", "bbb"); // Assert Assert.Contains(result1, dataAccess.CachedAeDeliveryLocations.Values); Assert.Same(result1, result2); Assert.Same(result1, result3); Assert.Same(result1, result4); A.CallTo(() => aeDeliveryLocations.Add(A <AeDeliveryLocation> ._)) .MustHaveHappened(Repeated.Exactly.Once); }
public async Task FetchDataReturnOrDefault_ReturnsDataReturnForSpecifiedQuarterOnly() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); DomainHelper domainHelper = new DomainHelper(database.WeeeContext); var scheme = helper.CreateScheme(); helper.CreateDataReturnVersion(scheme, 2016, 1, true); var dataReturnVersion = helper.CreateDataReturnVersion(scheme, 2016, 2, true); database.Model.SaveChanges(); var dataAccess = new DataReturnVersionBuilderDataAccess(domainHelper.GetScheme(scheme.Id), new Quarter(2016, QuarterType.Q2), database.WeeeContext); // Act var result = await dataAccess.FetchDataReturnOrDefault(); // Assert Assert.Equal(QuarterType.Q2, result.Quarter.Q); Assert.Equal(dataReturnVersion.DataReturn.Id, result.Id); } }
public async Task GetOrAddAatfDeliveryLocation_PopulatesCacheWithDatabaseValues(string approvalNumber, string facilityName) { // Arrange var dbContextHelper = new DbContextHelper(); var context = A.Fake<WeeeContext>(); var aatfDeliveryLocationDb = new AatfDeliveryLocation(approvalNumber, facilityName); var aatfDeliveryLocations = dbContextHelper.GetAsyncEnabledDbSet(new List<AatfDeliveryLocation> { aatfDeliveryLocationDb }); A.CallTo(() => context.AatfDeliveryLocations) .Returns(aatfDeliveryLocations); var dataAccess = new DataReturnVersionBuilderDataAccess(A.Dummy<Scheme>(), A.Dummy<Quarter>(), context); // Act await dataAccess.GetOrAddAatfDeliveryLocation(approvalNumber, facilityName); // Assert Assert.Equal(1, dataAccess.CachedAatfDeliveryLocations.Count); Assert.Contains(aatfDeliveryLocationDb, dataAccess.CachedAatfDeliveryLocations.Values); }
public async Task GetOrAddAatfDeliveryLocation_WithMatchingApprovalNumberAndFacilityName_DoesNotAddToCacheAndDatabase(string approvalNumber, string facilityName) { // Arrange var dbContextHelper = new DbContextHelper(); var context = A.Fake<WeeeContext>(); var aatfDeliveryLocationDb = new AatfDeliveryLocation(approvalNumber, facilityName); var aatfDeliveryLocations = dbContextHelper.GetAsyncEnabledDbSet(new List<AatfDeliveryLocation> { aatfDeliveryLocationDb }); A.CallTo(() => context.AatfDeliveryLocations) .Returns(aatfDeliveryLocations); var dataAccess = new DataReturnVersionBuilderDataAccess(A.Dummy<Scheme>(), A.Dummy<Quarter>(), context); // Act var result = await dataAccess.GetOrAddAatfDeliveryLocation(approvalNumber, facilityName); // Assert Assert.Equal(1, dataAccess.CachedAatfDeliveryLocations.Count); A.CallTo(() => aatfDeliveryLocations.Add(result)) .MustNotHaveHappened(); }
public async Task GetRegisteredProducer_ReturnsSubmittedProducerOnly() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); DomainHelper domainHelper = new DomainHelper(database.WeeeContext); var scheme = helper.CreateScheme(); helper.GetOrCreateRegisteredProducer(scheme, 2016, "BBBB"); database.Model.SaveChanges(); var dataAccess = new DataReturnVersionBuilderDataAccess(domainHelper.GetScheme(scheme.Id), new Quarter(2016, QuarterType.Q1), database.WeeeContext); // Act var result = await dataAccess.GetRegisteredProducer("BBBB"); // Assert Assert.Null(result); } }
public async Task GetOrAddAatfDeliveryLocation_PopulatesCacheWithDatabaseValues(string approvalNumber, string facilityName) { // Arrange var dbContextHelper = new DbContextHelper(); var context = A.Fake <WeeeContext>(); var aatfDeliveryLocationDb = new AatfDeliveryLocation(approvalNumber, facilityName); var aatfDeliveryLocations = dbContextHelper.GetAsyncEnabledDbSet(new List <AatfDeliveryLocation> { aatfDeliveryLocationDb }); A.CallTo(() => context.AatfDeliveryLocations) .Returns(aatfDeliveryLocations); var dataAccess = new DataReturnVersionBuilderDataAccess(A.Dummy <Scheme>(), A.Dummy <Quarter>(), context); // Act await dataAccess.GetOrAddAatfDeliveryLocation(approvalNumber, facilityName); // Assert Assert.Equal(1, dataAccess.CachedAatfDeliveryLocations.Count); Assert.Contains(aatfDeliveryLocationDb, dataAccess.CachedAatfDeliveryLocations.Values); }
public async Task GetOrAddAeDeliveryLocation_ReturnsAeDeliveryLocation_ForMatchingOperatorName() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); helper.CreateAeDeliveryLocation("APR", "Operator Name1"); var location = helper.CreateAeDeliveryLocation("APR", "Operator Name2"); database.Model.SaveChanges(); var dataAccess = new DataReturnVersionBuilderDataAccess(A.Dummy <Domain.Scheme.Scheme>(), A.Dummy <Quarter>(), database.WeeeContext); // Act var result = await dataAccess.GetOrAddAeDeliveryLocation("APR", "Operator Name2"); // Assert Assert.NotNull(result); Assert.Equal("Operator Name2", result.OperatorName); Assert.Equal(location.Id, result.Id); } }
public async Task FetchDataReturnOrDefault_ResultIncludesUnsubmittedDataReturn() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); DomainHelper domainHelper = new DomainHelper(database.WeeeContext); var scheme = helper.CreateScheme(); var dataReturn = helper.CreateDataReturn(scheme, 2016, 1); database.Model.SaveChanges(); var dataAccess = new DataReturnVersionBuilderDataAccess(domainHelper.GetScheme(scheme.Id), new Quarter(2016, QuarterType.Q1), database.WeeeContext); // Act var result = await dataAccess.FetchDataReturnOrDefault(); // Assert Assert.NotNull(result); Assert.Equal(dataReturn.Id, result.Id); Assert.Null(dataReturn.CurrentDataReturnVersion); } }
public async Task GetOrAddAatfDeliveryLocation_WithMatchingApprovalNumberAndFacilityName_DoesNotAddToCacheAndDatabase(string approvalNumber, string facilityName) { // Arrange var dbContextHelper = new DbContextHelper(); var context = A.Fake <WeeeContext>(); var aatfDeliveryLocationDb = new AatfDeliveryLocation(approvalNumber, facilityName); var aatfDeliveryLocations = dbContextHelper.GetAsyncEnabledDbSet(new List <AatfDeliveryLocation> { aatfDeliveryLocationDb }); A.CallTo(() => context.AatfDeliveryLocations) .Returns(aatfDeliveryLocations); var dataAccess = new DataReturnVersionBuilderDataAccess(A.Dummy <Scheme>(), A.Dummy <Quarter>(), context); // Act var result = await dataAccess.GetOrAddAatfDeliveryLocation(approvalNumber, facilityName); // Assert Assert.Equal(1, dataAccess.CachedAatfDeliveryLocations.Count); A.CallTo(() => aatfDeliveryLocations.Add(result)) .MustNotHaveHappened(); }
public async Task FetchDataReturnOrDefault_ResultIncludesUnsubmittedDataReturn() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); DomainHelper domainHelper = new DomainHelper(database.WeeeContext); var scheme = helper.CreateScheme(); var dataReturn = helper.CreateDataReturn(scheme, 2016, 1); database.Model.SaveChanges(); var dataAccess = new DataReturnVersionBuilderDataAccess(domainHelper.GetScheme(scheme.Id), new Quarter(2016, QuarterType.Q1), database.WeeeContext); // Act var result = await dataAccess.FetchDataReturnOrDefault(); // Assert Assert.NotNull(result); Assert.Equal(dataReturn.Id, result.Id); Assert.Null(dataReturn.CurrentDataReturnVersion); } }
public async Task GetOrAddAeDeliveryLocation_IgnoresCaseOfApprovalNumberAndOperatorName() { // Arrange var dbContextHelper = new DbContextHelper(); var context = A.Fake<WeeeContext>(); var aeDeliveryLocations = dbContextHelper.GetAsyncEnabledDbSet(new List<AeDeliveryLocation>()); A.CallTo(() => context.AeDeliveryLocations) .Returns(aeDeliveryLocations); var dataAccess = new DataReturnVersionBuilderDataAccess(A.Dummy<Scheme>(), A.Dummy<Quarter>(), context); // Act var result1 = await dataAccess.GetOrAddAeDeliveryLocation("AAA", "BBB"); var result2 = await dataAccess.GetOrAddAeDeliveryLocation("aaa", "BBB"); var result3 = await dataAccess.GetOrAddAeDeliveryLocation("AAA", "bbb"); var result4 = await dataAccess.GetOrAddAeDeliveryLocation("aaa", "bbb"); // Assert Assert.Contains(result1, dataAccess.CachedAeDeliveryLocations.Values); Assert.Same(result1, result2); Assert.Same(result1, result3); Assert.Same(result1, result4); A.CallTo(() => aeDeliveryLocations.Add(A<AeDeliveryLocation>._)) .MustHaveHappened(Repeated.Exactly.Once); }
public async Task GetRegisteredProducer_ReturnsSubmittedProducerOnly() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); DomainHelper domainHelper = new DomainHelper(database.WeeeContext); var scheme = helper.CreateScheme(); helper.GetOrCreateRegisteredProducer(scheme, 2016, "BBBB"); database.Model.SaveChanges(); var dataAccess = new DataReturnVersionBuilderDataAccess(domainHelper.GetScheme(scheme.Id), new Quarter(2016, QuarterType.Q1), database.WeeeContext); // Act var result = await dataAccess.GetRegisteredProducer("BBBB"); // Assert Assert.Null(result); } }
public async Task GetOrAddAeDeliveryLocation_ReturnsAeDeliveryLocation_ForMatchingOperatorName() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); helper.CreateAeDeliveryLocation("APR", "Operator Name1"); var location = helper.CreateAeDeliveryLocation("APR", "Operator Name2"); database.Model.SaveChanges(); var dataAccess = new DataReturnVersionBuilderDataAccess(A.Dummy<Domain.Scheme.Scheme>(), A.Dummy<Quarter>(), database.WeeeContext); // Act var result = await dataAccess.GetOrAddAeDeliveryLocation("APR", "Operator Name2"); // Assert Assert.NotNull(result); Assert.Equal("Operator Name2", result.OperatorName); Assert.Equal(location.Id, result.Id); } }
public async Task GetRegisteredProducer_ReturnsProducerForMatchingRegistrationNumberOnly() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); DomainHelper domainHelper = new DomainHelper(database.WeeeContext); var scheme = helper.CreateScheme(); var memberUpload1 = helper.CreateMemberUpload(scheme); memberUpload1.ComplianceYear = 2016; memberUpload1.IsSubmitted = true; helper.CreateProducerAsCompany(memberUpload1, "AAAA"); var producer = helper.GetOrCreateRegisteredProducer(scheme, 2016, "BBBB"); var memberUpload2 = helper.CreateMemberUpload(scheme); memberUpload2.ComplianceYear = 2016; memberUpload2.IsSubmitted = true; helper.CreateProducerAsCompany(memberUpload2, "BBBB"); database.Model.SaveChanges(); var dataAccess = new DataReturnVersionBuilderDataAccess(domainHelper.GetScheme(scheme.Id), new Quarter(2016, QuarterType.Q1), database.WeeeContext); // Act var result = await dataAccess.GetRegisteredProducer("BBBB"); // Assert Assert.Equal("BBBB", result.ProducerRegistrationNumber); Assert.Equal(producer.Id, result.Id); } }