Пример #1
0
        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);
        }