Exemplo n.º 1
0
        public async Task GetAatfsDataAccess_ReturnsAatfsList()
        {
            using (var database = new DatabaseWrapper())
            {
                var helper                       = new ModelHelper(database.Model);
                var dataAccess                   = new GetAatfsDataAccess(database.WeeeContext);
                var genericDataAccess            = new GenericDataAccess(database.WeeeContext);
                var competentAuthorityDataAccess = new CommonDataAccess(database.WeeeContext);
                var competentAuthority           = await competentAuthorityDataAccess.FetchCompetentAuthority(CompetentAuthority.England);

                var country = await database.WeeeContext.Countries.SingleAsync(c => c.Name == "UK - England");

                var aatfContact  = new AatfContact("first", "last", "position", "address1", "address2", "town", "county", "postcode", country, "telephone", "email");
                var organisation = Organisation.CreatePartnership("Koalas");
                var aatfAddress  = AddressHelper.GetAatfAddress(database);
                var aatfSize     = AatfSize.Large;

                var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation);

                await genericDataAccess.Add <Aatf>(aatf);

                var aatfList = await dataAccess.GetAatfs();

                aatfList.Should().Contain(aatf);
            }
        }
Exemplo n.º 2
0
        public void AatfContact_GivenValidParameters_AatfContactPropertiesShouldBeSet()
        {
            var firstName = "First Name";
            var lastName  = "Last Name";
            var position  = "Position";
            var address1  = "Address1";
            var address2  = "Address2";
            var town      = "Town";
            var county    = "County";
            var postcode  = "Postcode";
            var country   = new Country(Guid.NewGuid(), "Country");
            var telephone = "Telephone";
            var email     = "Email";

            var contact = new AatfContact(firstName, lastName, position, address1, address2, town, county, postcode, country, telephone, email);

            contact.FirstName.Should().Be(firstName);
            contact.LastName.Should().Be(lastName);
            contact.Position.Should().Be(position);
            contact.Address1.Should().Be(address1);
            contact.Address2.Should().Be(address2);
            contact.TownOrCity.Should().Be(town);
            contact.CountyOrRegion.Should().Be(county);
            contact.Postcode.Should().Be(postcode);
            contact.Country.Should().Be(country);
            contact.Telephone.Should().Be(telephone);
            contact.Email.Should().Be(email);
        }
Exemplo n.º 3
0
        public async Task GetFilteredAatfsDataAccess_ByName_ReturnsFilteredAatfsList()
        {
            using (var database = new DatabaseWrapper())
            {
                var helper                       = new ModelHelper(database.Model);
                var dataAccess                   = new GetAatfsDataAccess(database.WeeeContext);
                var genericDataAccess            = new GenericDataAccess(database.WeeeContext);
                var competentAuthorityDataAccess = new CommonDataAccess(database.WeeeContext);
                var competentAuthority           = await competentAuthorityDataAccess.FetchCompetentAuthority(CompetentAuthority.England);

                var country = await database.WeeeContext.Countries.SingleAsync(c => c.Name == "UK - England");

                var aatfContact  = new AatfContact("first", "last", "position", "address1", "address2", "town", "county", "postcode", country, "telephone", "email");
                var organisation = Organisation.CreatePartnership("Koalas");
                var aatfAddress  = AddressHelper.GetAatfAddress(database);
                var aatfSize     = AatfSize.Large;

                var aatf = new Aatf("KoalaBears", competentAuthority, "WEE/AB1289YZ/ATF", AatfStatus.Approved, organisation, aatfAddress, aatfSize, DateTime.Now, aatfContact, FacilityType.Aatf, 2019, database.WeeeContext.LocalAreas.First(), database.WeeeContext.PanAreas.First());

                await genericDataAccess.Add <Aatf>(aatf);

                var filteredListWithAatf = await dataAccess.GetFilteredAatfs(new Core.AatfReturn.AatfFilter {
                    Name = "k"
                });

                var filteredListWithoutAatf = await dataAccess.GetFilteredAatfs(new Core.AatfReturn.AatfFilter {
                    Name = "z"
                });

                filteredListWithAatf.Should().Contain(aatf);
                filteredListWithoutAatf.Should().NotContain(aatf);
            }
        }
Exemplo n.º 4
0
        private async Task <Aatf> CreateAatf(DatabaseWrapper database, FacilityType facilityType, DateTime date, short year, string approvalNumber = null, string name = null)
        {
            var country = database.WeeeContext.Countries.First();
            var competentAuthorityDataAccess = new CommonDataAccess(database.WeeeContext);
            var competentAuthority           = await competentAuthorityDataAccess.FetchCompetentAuthority(CompetentAuthority.England);

            var organisation = Organisation.CreatePartnership("Dummy");
            var contact      = new AatfContact("First Name", "Last Name", "Manager", "1 Address Lane", "Address Ward", "Town", "County", "Postcode", country, "01234 567890", "*****@*****.**");

            if (approvalNumber == null)
            {
                approvalNumber = "12345678";
            }

            if (name == null)
            {
                name = "name";
            }

            return(new Aatf(name,
                            competentAuthority,
                            approvalNumber,
                            AatfStatus.Approved,
                            organisation,
                            AddressHelper.GetAatfAddress(database),
                            A.Fake <AatfSize>(),
                            date,
                            contact,
                            facilityType,
                            year,
                            database.WeeeContext.LocalAreas.First(),
                            database.WeeeContext.PanAreas.First()));
        }
Exemplo n.º 5
0
        public async Task GetAatfsDataAccess_ReturnsLatestAesList()
        {
            using (var database = new DatabaseWrapper())
            {
                var helper                       = new ModelHelper(database.Model);
                var dataAccess                   = new GetAatfsDataAccess(database.WeeeContext);
                var genericDataAccess            = new GenericDataAccess(database.WeeeContext);
                var competentAuthorityDataAccess = new CommonDataAccess(database.WeeeContext);
                var competentAuthority           = await competentAuthorityDataAccess.FetchCompetentAuthority(CompetentAuthority.England);

                var country = await database.WeeeContext.Countries.SingleAsync(c => c.Name == "UK - England");

                var aatfContact  = new AatfContact("first", "last", "position", "address1", "address2", "town", "county", "postcode", country, "telephone", "email");
                var organisation = Organisation.CreatePartnership("Koalas");
                var aatfAddress  = AddressHelper.GetAatfAddress(database);
                var aatfSize     = AatfSize.Large;

                var aatfId = Guid.NewGuid();

                var aatf  = new Aatf("KoalaBears", competentAuthority, "WEE/AB1289YZ/ATF", AatfStatus.Approved, organisation, aatfAddress, aatfSize, DateTime.Now, aatfContact, FacilityType.Ae, 2019, database.WeeeContext.LocalAreas.First(), database.WeeeContext.PanAreas.First(), aatfId);
                var aatf1 = new Aatf("KoalaBears", competentAuthority, "WEE/AB1289YZ/ATF", AatfStatus.Approved, organisation, aatfAddress, aatfSize, Convert.ToDateTime("20/01/2020"), aatfContact, FacilityType.Ae, 2020, database.WeeeContext.LocalAreas.First(), database.WeeeContext.PanAreas.First(), aatfId);

                await genericDataAccess.AddMany <Aatf>(new List <Aatf>() { aatf1, aatf });

                var aatfList = await dataAccess.GetLatestAatfs();

                aatfList.Should().Contain(aatf1);
                aatfList.Should().NotContain(aatf);
            }
        }
Exemplo n.º 6
0
        public void Map_GivenSource_AddressDataIsMapped()
        {
            var aatfContact = new AatfContact(
                "First Name",
                "Last Name",
                "Position",
                "Address1",
                "Address2",
                "Town",
                "County",
                "PO12 3ST",
                country,
                "01234 567890",
                "*****@*****.**");

            var result = map.Map(aatfContact);

            result.FirstName.Should().Be("First Name");
            result.LastName.Should().Be("Last Name");
            result.Position.Should().Be("Position");
            result.AddressData.Address1.Should().Be("Address1");
            result.AddressData.Address2.Should().Be("Address2");
            result.AddressData.TownOrCity.Should().Be("Town");
            result.AddressData.CountyOrRegion.Should().Be("County");
            result.AddressData.Postcode.Should().Be("PO12 3ST");
            result.AddressData.CountryName.Should().Be("UK - England");
            result.Telephone.Should().Be("01234 567890");
            result.Email.Should().Be("*****@*****.**");
        }
Exemplo n.º 7
0
        public void AatfAddress_GivenTownOrCityIsGreaterThan35Characters_ThrowsArgumentException()
        {
            Action constructor = () =>
            {
                var @return = new AatfContact(A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), new string('*', 36), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <Country>(), A.Dummy <string>(), A.Dummy <string>());
            };

            constructor.Should().Throw <ArgumentException>();
        }
Exemplo n.º 8
0
        public void AatfContact_GivenNullOrEmptyRequiredParameters_ThrowsArgumentException(string firstName, string lastName, string position, string address, string town, string telephone, string email)
        {
            Action constructor = () =>
            {
                var @return = new AatfContact(firstName, lastName, position, address, A.Dummy <string>(), town, A.Dummy <string>(), A.Dummy <string>(), A.Dummy <Country>(), telephone, email);
            };

            constructor.Should().Throw <ArgumentException>();
        }
Exemplo n.º 9
0
        public void Equals_GivenDifferentEmail_FalseShouldBeReturned()
        {
            var countryId = Guid.NewGuid();

            var contact      = new AatfContact("f", "l", "p", "a1", "a2", "t", "c", "p", countryId, "te", "z");
            var otherContact = new AatfContact("f", "l", "p", "a1", "a2", "t", "c", "p", countryId, "te", "e");

            contact.Equals(otherContact).Should().BeFalse();
        }
Exemplo n.º 10
0
        public void Equals_GivenSameContact_TrueShouldBeReturned()
        {
            var countryId = Guid.NewGuid();

            var contact      = new AatfContact("f", "l", "p", "a1", "a2", "t", "c", "p", countryId, "te", "e");
            var otherContact = new AatfContact("f", "l", "p", "a1", "a2", "t", "c", "p", countryId, "te", "e");

            contact.Equals(otherContact).Should().BeTrue();
        }
Exemplo n.º 11
0
        public void AatfAddress_GivenCountryIsNull_ThrowsArgumentException()
        {
            Action constructor = () =>
            {
                var @return = new AatfContact(A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), null, A.Dummy <string>(), A.Dummy <string>());
            };

            constructor.Should().Throw <ArgumentException>();
        }
Exemplo n.º 12
0
        public async Task HandleAsync_GivenAatfCanBeCopied_OriginalAatfShouldNotBeChanged()
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                var organisation = EA.Weee.Domain.Organisation.Organisation.CreatePartnership("trading");

                var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(databaseWrapper, organisation);

                var competentAuthority = new Core.Shared.UKCompetentAuthorityData()
                {
                    Id           = databaseWrapper.WeeeContext.UKCompetentAuthorities.First().Id,
                    Abbreviation = databaseWrapper.WeeeContext.UKCompetentAuthorities.First().Abbreviation
                };

                var country = await databaseWrapper.WeeeContext.Countries.SingleAsync(c => c.Name == "France");

                var newContact = A.Dummy <AatfContactData>();
                var contact    = new AatfContact("FirstName1", "LastName1", "Position1", "Address11", "Address21", "Town1", "County1", "PO12ST341", country, "Telephone1", "Email1");

                var siteAddress = A.Dummy <AatfAddressData>();
                var aatfAddress = new AatfAddress("Site name", "Site address 1", "Site address 2", "Site town", "Site county", "GU22 7UY", country);

                var aatfdata = new AatfData(Guid.NewGuid(), aatf.Name, aatf.ApprovalNumber, 2020,
                                            competentAuthority,
                                            Core.AatfReturn.AatfStatus.Approved, siteAddress, Core.AatfReturn.AatfSize.Large, DateTime.Parse("01/01/2020"),
                                            null, null)
                {
                    FacilityType = Core.AatfReturn.FacilityType.Aatf
                };

                databaseWrapper.WeeeContext.Aatfs.Add(aatf);

                await databaseWrapper.WeeeContext.SaveChangesAsync();

                A.CallTo(() => addressMapper.Map(siteAddress)).Returns(aatfAddress);

                A.CallTo(() => contactMapper.Map(newContact)).Returns(contact);

                var message = new AddAatf()
                {
                    Aatf           = aatfdata,
                    OrganisationId = organisation.Id,
                    AatfId         = aatf.AatfId,
                    AatfContact    = newContact
                };

                await Handler(databaseWrapper).HandleAsync(message);

                databaseWrapper.WeeeContext.Aatfs.Where(a => a.Id == aatf.Id).Should().NotBeEmpty();
                databaseWrapper.WeeeContext.Aatfs.Where(a => a.AatfId == aatf.AatfId).Count().Should().Be(2);
                databaseWrapper.WeeeContext.Aatfs.Where(a => a.Id == aatf.Id && a.ComplianceYear == 2019).Should().NotBeEmpty();
                databaseWrapper.WeeeContext.Aatfs.Where(a => a.AatfId == aatf.AatfId && a.ComplianceYear == 2020).Count().Should().Be(1);
            }
        }
Exemplo n.º 13
0
        public Task UpdateContact(AatfContact oldDetails, AatfContactData newDetails, Country country)
        {
            oldDetails.UpdateDetails(
                newDetails.FirstName,
                newDetails.LastName,
                newDetails.Position,
                newDetails.AddressData.Address1,
                newDetails.AddressData.Address2,
                newDetails.AddressData.TownOrCity,
                newDetails.AddressData.CountyOrRegion,
                newDetails.AddressData.Postcode,
                country,
                newDetails.Telephone,
                newDetails.Email);

            return(context.SaveChangesAsync());
        }
Exemplo n.º 14
0
        private async Task <List <Aatf> > CreateMultipleAatf(DatabaseWrapper database, FacilityType facilityType, DateTime date, short year)
        {
            var country = database.WeeeContext.Countries.First();
            var competentAuthorityDataAccess = new CommonDataAccess(database.WeeeContext);
            var competentAuthority           = await competentAuthorityDataAccess.FetchCompetentAuthority(CompetentAuthority.England);

            var organisation = Organisation.CreatePartnership("Dummy");
            var contact      = new AatfContact("First Name", "Last Name", "Manager", "1 Address Lane", "Address Ward", "Town", "County", "Postcode", country, "01234 567890", "*****@*****.**");
            var aatfList     = new List <Aatf>();

            aatfList.Add(new Aatf("B",
                                  competentAuthority,
                                  "12345678",
                                  AatfStatus.Approved,
                                  organisation,
                                  AddressHelper.GetAatfAddress(database),
                                  A.Fake <AatfSize>(),
                                  date,
                                  contact,
                                  facilityType,
                                  year,
                                  database.WeeeContext.LocalAreas.First(),
                                  database.WeeeContext.PanAreas.First()));

            aatfList.Add(new Aatf("A",
                                  competentAuthority,
                                  "12345679",
                                  AatfStatus.Approved,
                                  organisation,
                                  AddressHelper.GetAatfAddress(database),
                                  A.Fake <AatfSize>(),
                                  date,
                                  contact,
                                  facilityType,
                                  year,
                                  database.WeeeContext.LocalAreas.First(),
                                  database.WeeeContext.PanAreas.First()));

            return(aatfList);
        }
Exemplo n.º 15
0
        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);
                }
            }
        }