public async Task FetchObligatedWeeeForReturn_ReturnedListShouldContainAllTonnagesFromRequest() { using (var database = new DatabaseWrapper()) { var companyName = "Test Name" + Guid.NewGuid(); var tradingName = "Test Trading Name" + Guid.NewGuid(); const string companyRegistrationNumber = "ABC12345"; var organisation = Organisation.CreateRegisteredCompany(companyName, companyRegistrationNumber, tradingName); var @return = new Return(organisation, new Quarter(2019, QuarterType.Q1), database.Model.AspNetUsers.First().Id, FacilityType.Aatf); var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation); database.WeeeContext.Organisations.Add(organisation); database.WeeeContext.Aatfs.Add(aatf); database.WeeeContext.Returns.Add(@return); await database.WeeeContext.SaveChangesAsync(); var addObligatedReusedDataAccess = new ObligatedReusedDataAccess(database.WeeeContext); var categoryValues = new List <ObligatedValue>(); var weeeReused = new WeeeReused(aatf.Id, @return.Id); foreach (var category in Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>()) { categoryValues.Add(new ObligatedValue(Guid.NewGuid(), (int)category, (int)category, (int)category)); } var obligatedReusedRequest = new AddObligatedReused() { AatfId = aatf.Id, ReturnId = @return.Id, OrganisationId = organisation.Id, CategoryValues = categoryValues }; var weeeReusedAmount = new List <WeeeReusedAmount>(); foreach (var categoryValue in obligatedReusedRequest.CategoryValues) { weeeReusedAmount.Add(new WeeeReusedAmount(weeeReused, categoryValue.CategoryId, categoryValue.HouseholdTonnage, categoryValue.NonHouseholdTonnage)); } var obligateReusedDataAccess = new ObligatedReusedDataAccess(database.WeeeContext); await obligateReusedDataAccess.Submit(weeeReusedAmount); var fetchDataAccess = new FetchObligatedWeeeForReturnDataAccess(database.WeeeContext); var reusedTonnageList = await fetchDataAccess.FetchObligatedWeeeReusedForReturn(@return.Id); var reusedNonHouseholdList = reusedTonnageList.Select(t => t.NonHouseholdTonnage); var reusedHouseholdList = reusedTonnageList.Select(t => t.HouseholdTonnage); foreach (var category in weeeReusedAmount) { reusedNonHouseholdList.Should().Contain(category.NonHouseholdTonnage); reusedHouseholdList.Should().Contain(category.HouseholdTonnage); } } }
public async void IndexPost_GivenValidViewModel_ApiSendShouldBeCalled() { var model = new ObligatedViewModel(calculator); var request = new AddObligatedReused(); A.CallTo(() => requestCreator.ViewModelToRequest(model)).Returns(request); await controller.Index(model); A.CallTo(() => weeeClient.SendAsync(A <string> ._, request)).MustHaveHappened(Repeated.Exactly.Once); }
public async Task HandleAsync_WithValidInput_SubmittedIsCalledCorrectly() { var aatf = A.Fake <Aatf>(); var aatfReturn = ReturnHelper.GetReturn(); var weeeReused = new WeeeReused( aatf.Id, aatfReturn.Id); var weeeReusedAmount = new List <WeeeReusedAmount>(); var categoryValues = new List <ObligatedValue>(); foreach (var category in Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>()) { categoryValues.Add(new ObligatedValue(Guid.NewGuid(), (int)category, (int)category, (int)category)); } var obligatedWeeeRequest = new AddObligatedReused { AatfId = aatf.Id, ReturnId = aatfReturn.Id, OrganisationId = aatfReturn.Organisation.Id, CategoryValues = categoryValues }; foreach (var categoryValue in obligatedWeeeRequest.CategoryValues) { weeeReusedAmount.Add(new WeeeReusedAmount(weeeReused, categoryValue.CategoryId, categoryValue.HouseholdTonnage, categoryValue.NonHouseholdTonnage)); } var requestHandler = new AddObligatedReusedHandler(authorization, addObligatedReusedDataAccess); await requestHandler.HandleAsync(obligatedWeeeRequest); A.CallTo(() => addObligatedReusedDataAccess.Submit(A <List <WeeeReusedAmount> > .That.IsSameAs(weeeReusedAmount))); }
public async Task FetchObligatedWeeeForReturn_ReturnedListShouldContainAllTonnagesFromRequest() { using (var database = new DatabaseWrapper()) { var companyName = "Test Name" + Guid.NewGuid(); var tradingName = "Test Trading Name" + Guid.NewGuid(); const string companyRegistrationNumber = "ABC12345"; var organisation = Organisation.CreateRegisteredCompany(companyName, companyRegistrationNumber, tradingName); var scheme = new Scheme(organisation); var competentAuthority = database.WeeeContext.UKCompetentAuthorities.FirstOrDefault(); var country = await database.WeeeContext.Countries.SingleAsync(c => c.Name == "France"); var contact = new AatfContact("First Name", "Last Name", "Manager", "1 Address Lane", "Address Ward", "Town", "County", "Postcode", country, "01234 567890", "*****@*****.**"); var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation); var @return = new Return(organisation, new Quarter(2019, QuarterType.Q1), database.Model.AspNetUsers.First().Id, FacilityType.Aatf); database.WeeeContext.Organisations.Add(organisation); database.WeeeContext.Schemes.Add(scheme); database.WeeeContext.Aatfs.Add(aatf); database.WeeeContext.Returns.Add(@return); await database.WeeeContext.SaveChangesAsync(); var addObligatedReceivedDataAccess = new ObligatedReceivedDataAccess(database.WeeeContext); var categoryValues = new List <ObligatedValue>(); var weeeReceived = new WeeeReceived(scheme.Id, aatf.Id, @return.Id); foreach (var category in Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>()) { categoryValues.Add(new ObligatedValue(Guid.NewGuid(), (int)category, (int)category, (int)category)); } var obligatedReceivedRequest = new AddObligatedReceived() { ReturnId = @return.Id, AatfId = aatf.Id, SchemeId = scheme.Id, OrganisationId = organisation.Id, CategoryValues = categoryValues }; var obligatedReusedRequest = new AddObligatedReused() { AatfId = aatf.Id, ReturnId = @return.Id, OrganisationId = organisation.Id, CategoryValues = categoryValues }; var weeeReceivedAmount = new List <WeeeReceivedAmount>(); var weeeReusedAmount = new List <WeeeReusedAmount>(); foreach (var categoryValue in obligatedReceivedRequest.CategoryValues) { weeeReceivedAmount.Add(new WeeeReceivedAmount(weeeReceived, categoryValue.CategoryId, categoryValue.HouseholdTonnage, categoryValue.NonHouseholdTonnage)); } var obligateReceivedDataAccess = new ObligatedReceivedDataAccess(database.WeeeContext); await obligateReceivedDataAccess.Submit(weeeReceivedAmount); var fetchDataAccess = new FetchObligatedWeeeForReturnDataAccess(database.WeeeContext); var receivedTonnageList = await fetchDataAccess.FetchObligatedWeeeReceivedForReturn(@return.Id); var receivedNonHouseholdList = receivedTonnageList.Select(t => t.NonHouseholdTonnage); var receivedHouseholdList = receivedTonnageList.Select(t => t.HouseholdTonnage); foreach (var category in weeeReceivedAmount) { receivedNonHouseholdList.Should().Contain(category.NonHouseholdTonnage); receivedHouseholdList.Should().Contain(category.HouseholdTonnage); } } }