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); } }
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); }
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); } }
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())); }
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); } }
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("*****@*****.**"); }
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>(); }
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>(); }
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(); }
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(); }
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>(); }
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); } }
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()); }
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); }
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); } } }