public async Task CreateRegisteredCompanyRequestHandler_HappyPath_CreatesPartnershipAndApprovedOrganisationUser()
        {
            var context     = GetPreparedContext();
            var userContext = GetPreparedUserContext();

            const string BusinessName = "Some business name";
            const string CompanyRegistrationNumber = "Some CRN";
            const string TradingName = "Some trading name";

            var handler = new CreateRegisteredCompanyRequestHandler(permissiveAuthorization, context, userContext);
            await handler.HandleAsync(new CreateRegisteredCompanyRequest
            {
                BusinessName = BusinessName,
                CompanyRegistrationNumber = CompanyRegistrationNumber,
                TradingName = TradingName
            });

            DoSharedAssertions(TradingName);
            Assert.Equal(BusinessName, addedOrganisation.Name);
            Assert.Equal(CompanyRegistrationNumber, addedOrganisation.CompanyRegistrationNumber);
            Assert.Equal(OrganisationType.RegisteredCompany, addedOrganisation.OrganisationType);
        }
        public async Task CreateRegisteredCompanyRequestHandler_HappyPath_CreatesPartnershipAndApprovedOrganisationUser()
        {
            var context = GetPreparedContext();
            var userContext = GetPreparedUserContext();

            const string BusinessName = "Some business name";
            const string CompanyRegistrationNumber = "Some CRN";
            const string TradingName = "Some trading name";

            var handler = new CreateRegisteredCompanyRequestHandler(permissiveAuthorization, context, userContext);
            await handler.HandleAsync(new CreateRegisteredCompanyRequest
            {
                BusinessName = BusinessName,
                CompanyRegistrationNumber = CompanyRegistrationNumber,
                TradingName = TradingName
            });

            DoSharedAssertions(TradingName);
            Assert.Equal(BusinessName, addedOrganisation.Name);
            Assert.Equal(CompanyRegistrationNumber, addedOrganisation.CompanyRegistrationNumber);
            Assert.Equal(OrganisationType.RegisteredCompany, addedOrganisation.OrganisationType);
        }
        public async Task CreateRegisteredCompanyRequestHandler_NotExternalUser_ThrowsSecurityException()
        {
            var handler = new CreateRegisteredCompanyRequestHandler(denyingAuthorization, A.Dummy <WeeeContext>(), A.Dummy <IUserContext>());

            await Assert.ThrowsAsync <SecurityException>(async() => await handler.HandleAsync(A.Dummy <CreateRegisteredCompanyRequest>()));
        }
        public async Task CreateRegisteredCompanyRequestHandler_NotExternalUser_ThrowsSecurityException()
        {
            var handler = new CreateRegisteredCompanyRequestHandler(denyingAuthorization, A.Dummy<WeeeContext>(), A.Dummy<IUserContext>());

            await Assert.ThrowsAsync<SecurityException>(async () => await handler.HandleAsync(A.Dummy<CreateRegisteredCompanyRequest>()));
        }