public async Task <Guid> HandleAsync(AddSentOnAatfSite message) { authorization.EnsureCanAccessExternalArea(); var siteCountry = await organisationDetailsDataAccess.FetchCountryAsync(message.SiteAddressData.CountryId); var operatorCountry = await organisationDetailsDataAccess.FetchCountryAsync(message.OperatorAddressData.CountryId); var @return = await returnDataAccess.GetById(message.ReturnId); var aatf = await genericDataAccess.GetById <Aatf>(message.AatfId); var siteAddress = new AatfAddress( message.SiteAddressData.Name, message.SiteAddressData.Address1, message.SiteAddressData.Address2, message.SiteAddressData.TownOrCity, message.SiteAddressData.CountyOrRegion, message.SiteAddressData.Postcode, siteCountry); var operatorAddress = new AatfAddress( message.OperatorAddressData.Name, message.OperatorAddressData.Address1, message.OperatorAddressData.Address2, message.OperatorAddressData.TownOrCity, message.OperatorAddressData.CountyOrRegion, message.OperatorAddressData.Postcode, operatorCountry); var weeeSentOn = new WeeeSentOn(operatorAddress, siteAddress, aatf, @return); await sentOnDataAccess.Submit(weeeSentOn); return(weeeSentOn.Id); }
public async Task HandleAsync_WithValidInput_SubmitIsCalledCorrectly() { var siteRequest = AddSentOnAatfSiteRequest(); var country = new Country(A.Dummy <Guid>(), A.Dummy <string>()); var countryOP = new Country(A.Dummy <Guid>(), A.Dummy <string>()); A.CallTo(() => organisationDetailsDataAccess.FetchCountryAsync(siteRequest.SiteAddressData.CountryId)).Returns(country); A.CallTo(() => organisationDetailsDataAccess.FetchCountryAsync(siteRequest.OperatorAddressData.CountryId)).Returns(countryOP); await handler.HandleAsync(siteRequest); A.CallTo(() => sentOnDataAccess.Submit(A <WeeeSentOn> .That.Matches(w => w.SiteAddress.Address1.Equals(siteRequest.SiteAddressData.Address1) && w.SiteAddress.Address2.Equals(siteRequest.SiteAddressData.Address2) && w.SiteAddress.CountyOrRegion.Equals(siteRequest.SiteAddressData.CountyOrRegion) && w.SiteAddress.Postcode.Equals(siteRequest.SiteAddressData.Postcode) && w.SiteAddress.TownOrCity.Equals(siteRequest.SiteAddressData.TownOrCity) && w.SiteAddress.Country.Equals(country) && w.OperatorAddress.Name.Equals(siteRequest.OperatorAddressData.Name) && w.OperatorAddress.Address2.Equals(siteRequest.OperatorAddressData.Address2) && w.OperatorAddress.CountyOrRegion.Equals(siteRequest.OperatorAddressData.CountyOrRegion) && w.OperatorAddress.Postcode.Equals(siteRequest.OperatorAddressData.Postcode) && w.OperatorAddress.TownOrCity.Equals(siteRequest.OperatorAddressData.TownOrCity) && w.OperatorAddress.Country.Equals(countryOP)))).MustHaveHappened(Repeated.Exactly.Once); }