public async Task ShouldSetOrganisationStatus(string companiesHouseStatus, OrganisationStatus expectedMappedStatus)
        {
            //Arrange
            const string searchTerm = "test";
            var          resultItem = new CompanySearchResultsItem
            {
                CompanyName = "Test Company",
                Address     = new Domain.Models.Company.Address
                {
                    Premises            = "12",
                    CompaniesHouseLine1 = "Test Street",
                    CompaniesHouseLine2 = "Test Park",
                    TownOrCity          = "Test Town",
                    County   = "Testshire",
                    PostCode = "TE51 3TS"
                },
                DateOfIncorporation = DateTime.Now,
                CompanyNumber       = "12345678",
                CompanyStatus       = companiesHouseStatus
            };

            _verificationService.Setup(x => x.FindCompany(It.IsAny <string>(), 10)).ReturnsAsync(new CompanySearchResults
            {
                Companies = new List <CompanySearchResultsItem> {
                    resultItem
                }
            });

            //Act
            var results = await _searchService.Search(searchTerm, 10);

            //Assert
            Assert.AreEqual(expectedMappedStatus, results.FirstOrDefault().OrganisationStatus);
        }
        public Organisation GetOrganisationWithDetails(string name, string tradingName, string companyRegistrationNumber, OrganisationType type, OrganisationStatus status)
        {
            Organisation organisation;

            if (type == OrganisationType.RegisteredCompany)
            {
                organisation = Organisation.CreateRegisteredCompany(name, companyRegistrationNumber, tradingName);
            }
            else if (type == OrganisationType.Partnership)
            {
                organisation = Organisation.CreatePartnership(tradingName);
            }
            else
            {
                organisation = Organisation.CreateSoleTrader(tradingName);
            }

            organisation.AddOrUpdateAddress(AddressType.OrganisationAddress, GetAddress());

            organisation.AddOrUpdateMainContactPerson(GetContact());

            if (status == OrganisationStatus.Complete)
            {
                organisation.CompleteRegistration();
            }

            var properties = typeof(Organisation).GetProperties();

            foreach (var propertyInfo in properties)
            {
                if (propertyInfo.Name.Equals("Id", StringComparison.InvariantCultureIgnoreCase))
                {
                    var baseProperty = typeof(Organisation).BaseType.GetProperty(propertyInfo.Name);

                    baseProperty.SetValue(organisation, Guid.NewGuid(), null);

                    break;
                }
            }

            return organisation;
        }
        public void Setup()
        {
            _applyApiClient = new Mock <IRoatpApplicationApiClient>();
            _roatpApiClient = new Mock <IRoatpRegisterApiClient>();
            _logger         = new Mock <ILogger <GatewayRegisterChecksOrchestrator> >();
            _orchestrator   = new GatewayRegisterChecksOrchestrator(_applyApiClient.Object, _roatpApiClient.Object, _logger.Object);

            var commonDetails = new GatewayCommonDetails
            {
                ApplicationId          = _applicationId,
                ApplicationSubmittedOn = DateTime.Now.AddDays(-3),
                SourcesCheckedOn       = DateTime.Now,
                LegalName = UKRLPLegalName,
                Ukprn     = ukprn
            };

            _applyApiClient.Setup(x => x.GetPageCommonDetails(_applicationId, It.IsAny <string>(), UserId, UserName)).ReturnsAsync(commonDetails);

            _applyApiClient.Setup(x => x.GetProviderRouteName(_applicationId)).ReturnsAsync($"{roatpProviderTypeId}");

            var providerType = new ProviderType
            {
                Id   = roatpProviderTypeId,
                Type = $"{roatpProviderTypeId}"
            };

            _roatpApiClient.Setup(x => x.GetProviderTypes()).ReturnsAsync(new List <ProviderType> {
                providerType
            });

            var organisationStatus = new OrganisationStatus
            {
                Id     = roatpStatusId,
                Status = $"{roatpStatusId}"
            };

            _roatpApiClient.Setup(x => x.GetOrganisationStatuses(It.IsAny <int?>())).ReturnsAsync(new List <OrganisationStatus> {
                organisationStatus
            });
        }
        private void SetInitialStatus(Organisation organisation, User user, SourceOfData sourceOfData)
        {
            OrganisationStatuses status;
            string organisationStatusDetails;

            switch (sourceOfData)
            {
            case SourceOfData.CompaniesHouse:
                status = OrganisationStatuses.Active;
                organisationStatusDetails = "Imported from CoHo";
                break;

            case SourceOfData.Manual:
                status = OrganisationStatuses.Pending;
                organisationStatusDetails = "Manually registered";
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(sourceOfData), sourceOfData, null);
            }

            organisation.Status        = status;
            organisation.StatusDate    = VirtualDateTime.Now;
            organisation.StatusDetails = organisationStatusDetails;

            var organisationStatus = new OrganisationStatus
            {
                Organisation  = organisation,
                Status        = status,
                StatusDate    = VirtualDateTime.Now,
                StatusDetails = organisationStatusDetails,
                ByUser        = user
            };

            organisation.OrganisationStatuses.Add(organisationStatus);

            dataRepository.Insert(organisationStatus);
        }
Beispiel #5
0
        public Organisation GetOrganisationWithDetails(string name, string tradingName, string companyRegistrationNumber, OrganisationType type, OrganisationStatus status)
        {
            Organisation organisation;

            if (type == OrganisationType.RegisteredCompany)
            {
                organisation = Organisation.CreateRegisteredCompany(name, companyRegistrationNumber, tradingName);
            }
            else if (type == OrganisationType.Partnership)
            {
                organisation = Organisation.CreatePartnership(tradingName);
            }
            else
            {
                organisation = Organisation.CreateSoleTrader(name, tradingName);
            }

            if (status == OrganisationStatus.Complete)
            {
                organisation.CompleteRegistration();
            }

            organisation.AddOrUpdateAddress(AddressType.RegisteredOrPPBAddress, GetAddress());

            var properties = typeof(Organisation).GetProperties();

            foreach (var propertyInfo in properties)
            {
                if (propertyInfo.Name.Equals("Id", StringComparison.InvariantCultureIgnoreCase))
                {
                    var baseProperty = typeof(Organisation).BaseType.GetProperty(propertyInfo.Name);

                    baseProperty.SetValue(organisation, Guid.NewGuid(), null);

                    break;
                }
            }

            return(organisation);
        }
        public void Before_each_test()
        {
            _request = new UpdateOrganisationStatusRequest
            {
                OrganisationId       = Guid.NewGuid(),
                OrganisationStatusId = 0,
                UpdatedBy            = "unit test",
                RemovedReasonId      = null
            };

            _logger = new Mock <ILogger <UpdateOrganisationStatusHandler> >();

            _validator = new Mock <IOrganisationValidator>();
            _validator.Setup(x => x.IsValidProviderTypeId(It.IsAny <int>())).Returns(true);
            _validator.Setup(x => x.IsValidOrganisationTypeIdForProvider(It.IsAny <int>(), It.IsAny <int>()))
            .ReturnsAsync(true);
            _validator.Setup(x => x.IsValidStatusId(It.IsAny <int>())).Returns(true);
            _validator.Setup(x => x.IsValidOrganisationStatusIdForOrganisation(It.IsAny <int>(), It.IsAny <Guid>())).Returns(true);

            _updateRepository     = new Mock <IUpdateOrganisationRepository>();
            _lookupDataRepository = new Mock <ILookupDataRepository>();
            _repository           = new Mock <IOrganisationRepository>();
            _eventsRepository     = new Mock <IEventsRepository>();

            var activeStatus = new OrganisationStatus {
                Id = 1, Status = "Active"
            };

            _lookupDataRepository.Setup(x => x.GetOrganisationStatus(1)).ReturnsAsync(activeStatus);
            var removedStatus = new OrganisationStatus {
                Id = 0, Status = "Removed"
            };

            _lookupDataRepository.Setup(x => x.GetOrganisationStatus(0)).ReturnsAsync(removedStatus);
            var notTakingOnStatus = new OrganisationStatus {
                Id = 2, Status = "Active - not taking on"
            };

            _lookupDataRepository.Setup(x => x.GetOrganisationStatus(2)).ReturnsAsync(notTakingOnStatus);
            var onboardingStatus = new OrganisationStatus {
                Id = 3, Status = "On-boarding"
            };

            _lookupDataRepository.Setup(x => x.GetOrganisationStatus(3)).ReturnsAsync(onboardingStatus);

            _eventsRepository
            .Setup((x => x.AddOrganisationStatusEventsFromOrganisationId(It.IsAny <Guid>(), It.IsAny <int>(),
                                                                         It.IsAny <DateTime>()))).ReturnsAsync(true);
            RemovedReason nullReason = null;

            _repository.Setup(x => x.GetRemovedReason(It.IsAny <Guid>())).ReturnsAsync(nullReason);
            _auditLogService = new Mock <IAuditLogService>();
            _auditLogService.Setup(x => x.CreateAuditData(It.IsAny <Guid>(), It.IsAny <string>()))
            .Returns(new AuditData {
                FieldChanges = new List <AuditLogEntry>()
            });
            _auditLogService.Setup(x => x.AuditOrganisationStatus(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int?>()))
            .Returns(new AuditData {
                FieldChanges = new List <AuditLogEntry>()
            });
            _handler = new UpdateOrganisationStatusHandler(_logger.Object, _validator.Object,
                                                           _updateRepository.Object,
                                                           _lookupDataRepository.Object, _repository.Object,
                                                           _auditLogService.Object, _eventsRepository.Object);
        }
Beispiel #7
0
 public bool IsValidStatus(OrganisationStatus status)
 {
     return(status != null && IsValidStatusId(status.Id));
 }
        private void VerifyOrganisation(string expectedName, string expectedTradingName, string expectedCrn, OrganisationStatus expectedStatus, OrganisationType expectedType, Organisation fromDatabase)
        {
            Assert.NotNull(fromDatabase);

            if (expectedType == OrganisationType.RegisteredCompany)
            {
                Assert.Equal(expectedName, fromDatabase.Name);
            }
            else
            {
                Assert.Equal(expectedTradingName, fromDatabase.TradingName);
            }

            Assert.Equal(expectedCrn, fromDatabase.CompanyRegistrationNumber);
            Assert.Equal(expectedStatus, fromDatabase.OrganisationStatus);
            Assert.Equal(expectedType, fromDatabase.OrganisationType);

            var thisTestOrganisationAddress = fromDatabase.BusinessAddress;

            Assert.NotNull(thisTestOrganisationAddress);
        }
        private void VerifyOrganisation(string expectedName, string expectedTradingName, string expectedCrn, OrganisationStatus expectedStatus, OrganisationType expectedType, Organisation fromDatabase)
        {
            Assert.NotNull(fromDatabase);

            if (expectedType == OrganisationType.RegisteredCompany)
            {
                Assert.Equal(expectedName, fromDatabase.Name);
            }
            else
            {
                Assert.Equal(expectedTradingName, fromDatabase.TradingName);
            }

            Assert.Equal(expectedCrn, fromDatabase.CompanyRegistrationNumber);
            Assert.Equal(expectedStatus, fromDatabase.OrganisationStatus);
            Assert.Equal(expectedType, fromDatabase.OrganisationType);

            var thisTestOrganisationAddress = fromDatabase.OrganisationAddress;
            Assert.NotNull(thisTestOrganisationAddress);
        }