public async void DeleteOrganisation_GivenOrganisationWithOrganisationUsers_OrganisationAndOrganisationUsersShouldBeRemoved()
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                var organisationDataAccess = new OrganisationDataAccess(databaseWrapper.WeeeContext);

                var organisation = Domain.Organisation.Organisation.CreateSoleTrader(fixture.Create <string>());

                databaseWrapper.WeeeContext.Organisations.Add(organisation);
                await databaseWrapper.WeeeContext.SaveChangesAsync();

                databaseWrapper.WeeeContext.OrganisationUsers.Add(
                    new Domain.Organisation.OrganisationUser(Guid.Parse(databaseWrapper.Model.AspNetUsers.First().Id), organisation.Id, UserStatus.Active));

                await databaseWrapper.WeeeContext.SaveChangesAsync();

                databaseWrapper.WeeeContext.Organisations.Where(o => o.Id == organisation.Id).Should().NotBeEmpty();
                databaseWrapper.WeeeContext.OrganisationUsers.Where(o => o.OrganisationId == organisation.Id).Should().NotBeEmpty();

                await organisationDataAccess.Delete(organisation.Id);

                databaseWrapper.WeeeContext.Organisations.Where(o => o.Id == organisation.Id).Should().BeEmpty();
                databaseWrapper.WeeeContext.OrganisationUsers.Where(o => o.Id == organisation.Id).Should().BeEmpty();
            }
        }
Exemplo n.º 2
0
 public AdminService()
 {
     this.adminDataAccess        = new AdminDataAccess();
     this.organisationDataAccess = new OrganisationDataAccess();
     this.loginDataAcces         = new LoginDataAcces();
     this.userDataAccess         = new UserDataAccess();
 }
        public async void DeleteOrganisation_GivenInvalidOrganisation_ArgumentExceptionExpected()
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                var organisationDataAccess = new OrganisationDataAccess(databaseWrapper.WeeeContext);

                var action = await Xunit.Record.ExceptionAsync(() => organisationDataAccess.Delete(Guid.Empty));

                action.Should().BeOfType <ArgumentException>();
            }
        }
        public async void HasScheme_GivenOrganisationDoesNotHaveScheme_FalseShouldBeReturned()
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                var organisationDataAccess = new OrganisationDataAccess(databaseWrapper.WeeeContext);
                var organisation           = Domain.Organisation.Organisation.CreateSoleTrader(fixture.Create <string>());

                databaseWrapper.WeeeContext.Organisations.Add(organisation);

                await databaseWrapper.WeeeContext.SaveChangesAsync();

                var result = await organisationDataAccess.HasScheme(organisation.Id);

                result.Should().BeFalse();
            }
        }
        public async void HasMultipleFacility_GivenOrganisationDoesFacilityTypeDoesNotMatch_FalseShouldBeReturned()
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                var organisationDataAccess = new OrganisationDataAccess(databaseWrapper.WeeeContext);
                var organisation           = Domain.Organisation.Organisation.CreateSoleTrader(fixture.Create <string>());

                databaseWrapper.WeeeContext.Organisations.Add(organisation);
                databaseWrapper.WeeeContext.Aatfs.Add(ObligatedWeeeIntegrationCommon.CreateAe(databaseWrapper, @organisation));

                await databaseWrapper.WeeeContext.SaveChangesAsync();

                var result = await organisationDataAccess.HasMultipleOfEntityFacility(organisation.Id, FacilityType.Aatf);

                result.Should().BeFalse();
            }
        }
        public async Task GetReturnsByComplianceYear_GivenNonMatchingParameters_EmptyShouldBeReturned()
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                var organisationDataAccess = new OrganisationDataAccess(databaseWrapper.WeeeContext);
                var organisation           = Domain.Organisation.Organisation.CreateSoleTrader(fixture.Create <string>());

                var @return = ObligatedWeeeIntegrationCommon.CreateReturn(organisation, databaseWrapper.Model.AspNetUsers.First().Id);

                databaseWrapper.WeeeContext.Returns.Add(@return);

                await databaseWrapper.WeeeContext.SaveChangesAsync();

                var result = await organisationDataAccess.GetReturnsByComplianceYear(Guid.NewGuid(), 2020, FacilityType.Ae);

                result.Should().BeEmpty();
            }
        }
        public async void HasReturns_GivenOrganisationDoesNotHaveReturnsForComplianceYear_FalseShouldBeReturned()
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                var organisationDataAccess = new OrganisationDataAccess(databaseWrapper.WeeeContext);
                var organisation           = Domain.Organisation.Organisation.CreateSoleTrader(fixture.Create <string>());
                var @return = ObligatedWeeeIntegrationCommon.CreateReturn(organisation, databaseWrapper.Model.AspNetUsers.First().Id,
                                                                          FacilityType.Aatf, 2020, QuarterType.Q1);

                databaseWrapper.WeeeContext.Returns.Add(@return);

                await databaseWrapper.WeeeContext.SaveChangesAsync();

                var result = await organisationDataAccess.HasReturns(organisation.Id, 2019);

                result.Should().BeFalse();
            }
        }
        public async void HasFacility_GivenOrganisationHasAe_TrueShouldBeReturned()
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                var organisationDataAccess = new OrganisationDataAccess(databaseWrapper.WeeeContext);
                var organisation           = Domain.Organisation.Organisation.CreateSoleTrader(fixture.Create <string>());

                var ae = ObligatedWeeeIntegrationCommon.CreateAe(databaseWrapper, organisation);

                databaseWrapper.WeeeContext.Aatfs.Add(ae);
                databaseWrapper.WeeeContext.Organisations.Add(organisation);

                await databaseWrapper.WeeeContext.SaveChangesAsync();

                var result = await organisationDataAccess.HasFacility(organisation.Id, FacilityType.Ae);

                result.Should().BeTrue();
            }
        }
        public async Task GetReturnsByComplianceYear_GivenNonMatchingFacilityType_CorrectReturnsShouldBeReturned()
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                var organisationDataAccess = new OrganisationDataAccess(databaseWrapper.WeeeContext);
                var organisation           = Domain.Organisation.Organisation.CreateSoleTrader(fixture.Create <string>());

                var @return1 = ObligatedWeeeIntegrationCommon.CreateReturn(organisation, databaseWrapper.Model.AspNetUsers.First().Id);
                var @return2 = ObligatedWeeeIntegrationCommon.CreateReturn(organisation, databaseWrapper.Model.AspNetUsers.First().Id, FacilityType.Ae, 2019, QuarterType.Q1);

                databaseWrapper.WeeeContext.Returns.Add(@return1);
                databaseWrapper.WeeeContext.Returns.Add(@return2);

                await databaseWrapper.WeeeContext.SaveChangesAsync();

                var result = await organisationDataAccess.GetReturnsByComplianceYear(organisation.Id, 2019, FacilityType.Aatf);

                result.Should().Contain(@return1);
                result.Should().NotContain(@return2);
            }
        }
Exemplo n.º 10
0
        public async void HasActiveUsers_GivenOrganisationWithInactiveUser_FalseShouldBeReturned(UserStatus status)
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                var organisationDataAccess = new OrganisationDataAccess(databaseWrapper.WeeeContext);
                var organisation           = Domain.Organisation.Organisation.CreateSoleTrader(fixture.Create <string>());

                databaseWrapper.WeeeContext.Organisations.Add(organisation);

                await databaseWrapper.WeeeContext.SaveChangesAsync();

                var organisationUser = new Domain.Organisation.OrganisationUser(Guid.Parse(databaseWrapper.Model.AspNetUsers.First().Id), organisation.Id, status);
                databaseWrapper.WeeeContext.OrganisationUsers.Add(organisationUser);

                await databaseWrapper.WeeeContext.SaveChangesAsync();

                var result = await organisationDataAccess.HasActiveUsers(organisation.Id);

                result.Should().BeFalse();
            }
        }
Exemplo n.º 11
0
        public async void DeleteOrganisation_GivenOrganisation_OrganisationShouldBeRemoved()
        {
            using (var databaseWrapper = new DatabaseWrapper())
            {
                var organisationDataAccess = new OrganisationDataAccess(databaseWrapper.WeeeContext);

                var organisation           = Domain.Organisation.Organisation.CreateSoleTrader(fixture.Create <string>());
                var organisationDontRemove = Domain.Organisation.Organisation.CreateSoleTrader(fixture.Create <string>());

                databaseWrapper.WeeeContext.Organisations.Add(organisation);
                databaseWrapper.WeeeContext.Organisations.Add(organisationDontRemove);

                await databaseWrapper.WeeeContext.SaveChangesAsync();

                databaseWrapper.WeeeContext.Organisations.Where(o => o.Id == organisation.Id).Should().NotBeEmpty();

                await organisationDataAccess.Delete(organisation.Id);

                databaseWrapper.WeeeContext.Organisations.Where(o => o.Id == organisation.Id).Should().BeEmpty();
                databaseWrapper.WeeeContext.Organisations.Where(o => o.Id == organisationDontRemove.Id).Should().NotBeEmpty();
            }
        }
Exemplo n.º 12
0
        //UserDataAccess userDataAccess;

        public OrganisationService()
        {
            this.organisationDataAccess = new OrganisationDataAccess();
            //this.userDataAccess = new UserDataAccess();
        }