Exemplo n.º 1
0
        public void Submit_GivenSentOnData_SaveChangesAsyncShouldBeCalled()
        {
            var site = new WeeeSentOn();

            dataAccess.Submit(site);

            A.CallTo(() => context.WeeeSentOn.Add(site)).MustHaveHappened(Repeated.Exactly.Once)
            .Then(A.CallTo(() => context.SaveChangesAsync()).MustHaveHappened(Repeated.Exactly.Once));
        }
Exemplo n.º 2
0
        public void WeeeSentOn_OperatorAddressNotDefined_ThrowsArgumentNullException()
        {
            Action constructor = () =>
            {
                var weeeSentOn = new WeeeSentOn(null, A.Fake <AatfAddress>(), A.Fake <Aatf>(), A.Fake <Return>());
            };

            constructor.Should().Throw <ArgumentNullException>();
        }
Exemplo n.º 3
0
        public async Task HandleAsync_ProvideNonExistentWeeeSentOnId_ReturnsFalse()
        {
            WeeeSentOn returnData = null;
            var        request    = new RemoveWeeeSentOn(A.Dummy <Guid>());

            A.CallTo(() => genericDataAccess.GetById <WeeeSentOn>(A.Dummy <Guid>())).Returns(returnData);

            bool result = await handler.HandleAsync(request);

            Assert.False(result);
        }
        public async Task HandleAsync_ProvideNonExistantWeeeSentOnId_ReturnsNull()
        {
            WeeeSentOn returnData = null;
            var        request    = new GetWeeeSentOnById(A.Dummy <Guid>());

            A.CallTo(() => getSentOnAatfSiteDataAccess.GetWeeeSentOnById(A.Dummy <Guid>())).Returns(returnData);

            WeeeSentOnData result = await handler.HandleAsync(request);

            Assert.Null(result);
        }
Exemplo n.º 5
0
        public void WeeeReceived_GivenValidParameters_WeeeReceivedPropertiesShouldBeSet()
        {
            var aatf            = A.Fake <Aatf>();
            var @return         = A.Fake <Return>();
            var siteAddress     = A.Fake <AatfAddress>();
            var operatorAddress = A.Fake <AatfAddress>();

            var weeeSentOn = new WeeeSentOn(operatorAddress, siteAddress, aatf, @return);

            weeeSentOn.Aatf.Should().Be(aatf);
            weeeSentOn.Return.Should().Be(@return);
            weeeSentOn.SiteAddress.Should().Be(siteAddress);
        }
Exemplo n.º 6
0
        public async Task HandleAsync_GivenGetSentOnAatfSiteRequest_DataAccessIsCalled()
        {
            var weeeSentOnId     = Guid.NewGuid();
            var weeeSentOn       = new WeeeSentOn();
            var weeeSentOnAmount = new List <WeeeSentOnAmount>();

            A.CallTo(() => genericDataAccess.GetById <WeeeSentOn>(weeeSentOnId)).Returns(weeeSentOn);
            A.CallTo(() => obligatedWeeeDataAccess.FetchObligatedWeeeSentOnForReturn(weeeSentOnId)).Returns(weeeSentOnAmount);

            await handler.HandleAsync(new RemoveWeeeSentOn(weeeSentOnId));

            A.CallTo(() => genericDataAccess.Remove(weeeSentOn)).MustHaveHappened(Repeated.Exactly.Once);
            A.CallTo(() => genericDataAccess.RemoveMany(weeeSentOnAmount)).MustHaveHappened(Repeated.Exactly.Once);
        }
        public async void HandleAsync_GivenWeeeSentOnByIdRequest_AddressDataShouldBeMapped()
        {
            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>());
            var weeeSentOnId    = weeeSentOn.Id;

            var request = new GetWeeeSentOnById(weeeSentOnId);

            A.CallTo(() => getSentOnAatfSiteDataAccess.GetWeeeSentOnById(weeeSentOnId)).Returns(weeeSentOn);

            await handler.HandleAsync(request);

            A.CallTo(() => addressMapper.Map(A <AatfAddress> .That.IsSameAs(weeeSentOn.OperatorAddress))).MustHaveHappened(Repeated.Exactly.Once);
            A.CallTo(() => addressMapper.Map(A <AatfAddress> .That.IsSameAs(weeeSentOn.SiteAddress))).MustHaveHappened(Repeated.Exactly.Once);
        }
Exemplo n.º 8
0
        public void Submit_GivenObligatedWeeeValues_ValuesShouldBeAddedToContext()
        {
            var weeeSentOn = new WeeeSentOn(siteAddressId, aatfId, returnId);

            decimal houseHoldTonnage    = 1.000m;
            decimal nonHouseHoldTonnage = 2.000m;

            var obligatedSentOnWeee = new List <WeeeSentOnAmount> {
                new WeeeSentOnAmount(weeeSentOn, 1, houseHoldTonnage, nonHouseHoldTonnage), new WeeeSentOnAmount(weeeSentOn, 2, houseHoldTonnage, nonHouseHoldTonnage)
            };

            var obligatedSentOnWeeeDbSet = dbContextHelper.GetAsyncEnabledDbSet(new List <WeeeSentOnAmount>());

            A.CallTo(() => context.WeeeSentOnAmount).Returns(obligatedSentOnWeeeDbSet);

            dataAccess.Submit(obligatedSentOnWeee);

            context.WeeeSentOnAmount.Should().AllBeEquivalentTo(obligatedSentOnWeee);
        }
Exemplo n.º 9
0
        public async Task HandleAsync_WithValidInput_SubmittedIsCalledCorrectly()
        {
            var aatf         = A.Fake <Aatf>();
            var weeeSentOnId = Guid.NewGuid();
            var siteAddress  = A.Fake <AatfAddress>();
            var aatfReturn   = ReturnHelper.GetReturn();

            var weeeSentOn = new WeeeSentOn(
                aatf.Id,
                aatfReturn.Id,
                siteAddress.Id);

            var weeeSentOnAmount = new List <WeeeSentOnAmount>();

            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 AddObligatedSentOn
            {
                AatfId         = aatf.Id,
                ReturnId       = aatfReturn.Id,
                OrganisationId = aatfReturn.Organisation.Id,
                CategoryValues = categoryValues,
                SiteAddressId  = siteAddress.Id,
                WeeeSentOnId   = weeeSentOnId
            };

            foreach (var categoryValue in obligatedWeeeRequest.CategoryValues)
            {
                weeeSentOnAmount.Add(new WeeeSentOnAmount(weeeSentOn, categoryValue.CategoryId, categoryValue.HouseholdTonnage, categoryValue.NonHouseholdTonnage));
            }

            var requestHandler = new AddObligatedSentOnHandler(authorization, addObligatedSentOnDataAccess, genericDataAccess);

            await requestHandler.HandleAsync(obligatedWeeeRequest);

            A.CallTo(() => addObligatedSentOnDataAccess.Submit(A <List <WeeeSentOnAmount> > .That.IsSameAs(weeeSentOnAmount)));
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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);
            }
        }
Exemplo n.º 12
0
        public async Task HandleAsync_GivenEditSentOnAatfSiteWithOperatorRequest_DataAccessIsCalled()
        {
            var request = new EditSentOnAatfSiteWithOperator()
            {
                WeeeSentOnId        = Guid.NewGuid(),
                OperatorAddressData = new OperatorAddressData()
                {
                    Name           = "OpName",
                    Address1       = "Address1",
                    Address2       = "Address2",
                    TownOrCity     = "Town",
                    CountyOrRegion = "County",
                    Postcode       = "GU22 7UY",
                    CountryId      = Guid.NewGuid()
                }
            };

            var weeeSentOn = new WeeeSentOn();
            var country    = new Country(A.Dummy <Guid>(), A.Dummy <string>());

            A.CallTo(() => genericDataAccess.GetById <WeeeSentOn>((Guid)request.WeeeSentOnId)).Returns(weeeSentOn);
            A.CallTo(() => orgDataAccess.FetchCountryAsync(request.OperatorAddressData.CountryId)).Returns(country);

            var operatorAddress = new AatfAddress(
                request.OperatorAddressData.Name,
                request.OperatorAddressData.Address1,
                request.OperatorAddressData.Address2,
                request.OperatorAddressData.TownOrCity,
                request.OperatorAddressData.CountyOrRegion,
                request.OperatorAddressData.Postcode,
                country);

            await handler.HandleAsync(request);

            A.CallTo(() => sentOnDataAccess.UpdateWithOperatorAddress(weeeSentOn, operatorAddress)).WhenArgumentsMatch(p => p.Get <AatfAddress>("request").Address1 == operatorAddress.Address1);
        }
Exemplo n.º 13
0
        public void Submit_GivenSentOnData_ValuesShouldBeAddedToContext()
        {
            var aatf    = A.Fake <Aatf>();
            var @return = A.Fake <Return>();

            var aatfAddress = new AatfAddress(
                "Name",
                "Address",
                A.Dummy <string>(),
                "TownOrCity",
                A.Dummy <string>(),
                A.Dummy <string>(),
                A.Dummy <Country>());

            var weeeSentOn = new WeeeSentOn(aatfAddress, aatf, @return);

            var weeeSentDbSet = dbContextHelper.GetAsyncEnabledDbSet(new List <WeeeSentOn>());

            A.CallTo(() => context.WeeeSentOn).Returns(weeeSentDbSet);

            dataAccess.Submit(weeeSentOn);

            context.WeeeSentOn.Should().AllBeEquivalentTo(weeeSentOn);
        }
Exemplo n.º 14
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);
        }
Exemplo n.º 15
0
        public WeeeSentOn ReturnWeeeSentOn(AatfAddress siteAddress, DomainAatf aatf, Return @return)
        {
            var weeeReused = new WeeeSentOn(siteAddress, aatf, @return);

            return(weeeReused);
        }
Exemplo n.º 16
0
        public Task UpdateWithOperatorAddress(WeeeSentOn weeeSentOn, AatfAddress address)
        {
            weeeSentOn.UpdateWithOperatorAddress(address);

            return(context.SaveChangesAsync());
        }
Exemplo n.º 17
0
        public Task Submit(WeeeSentOn weeeSentOn)
        {
            context.WeeeSentOn.Add(weeeSentOn);

            return(context.SaveChangesAsync());
        }