public async Task <List <WeeeSentOnData> > HandleAsync(GetWeeeSentOn message) { authorization.EnsureCanAccessExternalArea(); var weeeSentOnList = new List <WeeeSentOnData>(); var weeeSentOn = await getSentOnAatfSiteDataAccess.GetWeeeSentOnByReturnAndAatf(message.AatfId, message.ReturnId); foreach (var item in weeeSentOn) { var amount = await fetchWeeeSentOnAmountDataAccess.FetchObligatedWeeeSentOnForReturn(item.Id); var weeeSentOnObligatedData = amount.Select(n => new WeeeObligatedData(n.Id, new AatfData(n.WeeeSentOn.Aatf.Id, n.WeeeSentOn.Aatf.Name, n.WeeeSentOn.Aatf.ApprovalNumber, n.WeeeSentOn.Aatf.ComplianceYear), n.CategoryId, n.NonHouseholdTonnage, n.HouseholdTonnage)).ToList(); var weeeSentOnData = new WeeeSentOnData() { SiteAddress = addressMapper.Map(item.SiteAddress), Tonnages = weeeSentOnObligatedData, WeeeSentOnId = item.Id, SiteAddressId = item.SiteAddress.Id }; if (item.OperatorAddress != null) { weeeSentOnData.OperatorAddress = addressMapper.Map(item.OperatorAddress); weeeSentOnData.OperatorAddressId = item.OperatorAddress.Id; } weeeSentOnList.Add(weeeSentOnData); } if (message.WeeeSentOnId != null) { var weeeSentOnListFiltered = new List <WeeeSentOnData>(); var weeeSentOnSelected = weeeSentOnList.Where(w => w.WeeeSentOnId == message.WeeeSentOnId).Select(w => w).SingleOrDefault(); weeeSentOnListFiltered.Add(weeeSentOnSelected); return(weeeSentOnListFiltered); } return(weeeSentOnList); }
public async void HandleAsync_GivenWeeeSentOnId_ReturnedListShouldContainOnly1Element() { var aatfId = Guid.NewGuid(); var returnId = Guid.NewGuid(); var sentOnList = new List <WeeeSentOn>(); var operatorAddress = new AatfAddress("OpName", "OpAdd1", "OpAdd2", "OpTown", "OpCounty", "PostOp", A.Fake <Country>()); var siteAddress = new AatfAddress("SiteName", "SiteAdd1", "SiteAdd2", "SiteTown", "SiteCounty", "PostSite", A.Fake <Country>()); var weeeSentOn = new WeeeSentOn(operatorAddress, siteAddress, A.Fake <Aatf>(), A.Fake <Return>()); sentOnList.Add(weeeSentOn); var weeeSentOnId = weeeSentOn.Id; var request = new GetWeeeSentOn(aatfId, returnId, weeeSentOnId); A.CallTo(() => getSentOnAatfSiteDataAccess.GetWeeeSentOnByReturnAndAatf(aatfId, returnId)).Returns(sentOnList); var result = await handler.HandleAsync(request); result.Count.Should().Be(1); }
public async void HandleAsync_GivenGetSentOnAatfSiteRequest_AddressDataShouldBeMapped() { var aatfId = Guid.NewGuid(); var returnId = Guid.NewGuid(); var sentOnList = new List <WeeeSentOn>(); var operatorAddress = new AatfAddress("OpName", "OpAdd1", "OpAdd2", "OpTown", "OpCounty", "PostOp", A.Fake <Country>()); var siteAddress = new AatfAddress("SiteName", "SiteAdd1", "SiteAdd2", "SiteTown", "SiteCounty", "PostSite", A.Fake <Country>()); var weeeSentOn = new WeeeSentOn(operatorAddress, siteAddress, A.Fake <Aatf>(), A.Fake <Return>()); sentOnList.Add(weeeSentOn); var request = new GetWeeeSentOn(aatfId, returnId, null); A.CallTo(() => getSentOnAatfSiteDataAccess.GetWeeeSentOnByReturnAndAatf(aatfId, returnId)).Returns(sentOnList); await handler.HandleAsync(request); for (var i = 0; i < sentOnList.Count; i++) { A.CallTo(() => addressMapper.Map(A <AatfAddress> .That.IsSameAs(sentOnList[i].OperatorAddress))).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => addressMapper.Map(A <AatfAddress> .That.IsSameAs(sentOnList[i].SiteAddress))).MustHaveHappened(Repeated.Exactly.Once); } }