public void Before_each_test()
        {
            _organisationId   = Guid.NewGuid();
            _repository       = new Mock <ICreateOrganisationRepository>();
            _eventsRepository = new Mock <IEventsRepository>();
            _repository.Setup(x => x.CreateOrganisation(It.IsAny <CreateOrganisationCommand>()))
            .ReturnsAsync(_organisationId);
            _duplicateCheckRepository = new Mock <IDuplicateCheckRepository>();
            _duplicateCheckRepository.Setup(x => x.DuplicateUKPRNExists(It.IsAny <Guid>(), It.IsAny <long>()))
            .ReturnsAsync(new DuplicateCheckResponse {
                DuplicateOrganisationName = "", DuplicateFound = false
            });
            _logger    = new Mock <ILogger <CreateOrganisationHandler> >();
            _mapper    = new MapCreateOrganisationRequestToCommand();
            _validator = new Mock <IOrganisationValidator>();
            _validator.Setup(x => x.IsValidOrganisationTypeId(It.IsAny <int>())).Returns(true);
            _validator.Setup(x => x.IsValidLegalName(It.IsAny <string>())).Returns(true);
            _validator.Setup(x => x.IsValidTradingName(It.IsAny <string>())).Returns(true);
            _validator.Setup(x => x.IsValidProviderTypeId(It.IsAny <int>())).Returns(true);
            _validator.Setup(x => x.IsValidOrganisationTypeId(It.IsAny <int>())).Returns(true);
            _validator.Setup(x => x.IsValidStatusId(It.IsAny <int>())).Returns(true);
            _validator.Setup(x => x.IsValidStatusDate(It.IsAny <DateTime>())).Returns(true);
            _validator.Setup(x => x.IsValidUKPRN(It.IsAny <long>())).Returns(true);
            _validator.Setup(x => x.IsValidCompanyNumber(It.IsAny <string>())).Returns(true);
            _validator.Setup(x => x.IsValidCharityNumber(It.IsAny <string>())).Returns(true);
            _validator.Setup(x => x.IsValidApplicationDeterminedDate(It.IsAny <DateTime?>())).Returns(true);
            _validator.Setup(x => x.DuplicateUkprnInAnotherOrganisation(It.IsAny <long>(), It.IsAny <Guid>()))
            .Returns(new DuplicateCheckResponse {
                DuplicateFound = false, DuplicateOrganisationName = ""
            });
            _validator.Setup(x => x.DuplicateCompanyNumberInAnotherOrganisation(It.IsAny <string>(), It.IsAny <Guid>()))
            .Returns(new DuplicateCheckResponse {
                DuplicateFound = false, DuplicateOrganisationName = ""
            });
            _validator.Setup(x => x.DuplicateCharityNumberInAnotherOrganisation(It.IsAny <string>(), It.IsAny <Guid>()))
            .Returns(new DuplicateCheckResponse {
                DuplicateFound = false, DuplicateOrganisationName = ""
            });
            _textSanitiser = new Mock <ITextSanitiser>();
            _textSanitiser.Setup(x => x.SanitiseInputText(It.IsAny <string>())).Returns <string>(x => x);

            _handler = new CreateOrganisationHandler(_repository.Object, _eventsRepository.Object, _logger.Object, _validator.Object, new ProviderTypeValidator(), _mapper, _textSanitiser.Object);

            _request = new CreateOrganisationRequest
            {
                LegalName          = "Legal Name",
                TradingName        = "TradingName",
                ProviderTypeId     = 1,
                OrganisationTypeId = 0,
                StatusDate         = DateTime.Now,
                Ukprn         = 10002000,
                CompanyNumber = "11223344",
                CharityNumber = "10000000",
                Username      = "******"
            };
        }
 public CreateOrganisationHandler(ICreateOrganisationRepository repository, IEventsRepository eventsRepository,
                                  ILogger <CreateOrganisationHandler> logger, IOrganisationValidator organisationValidator,
                                  IProviderTypeValidator providerTypeValidator, IMapCreateOrganisationRequestToCommand mapper,
                                  ITextSanitiser textSanitiser)
 {
     _organisationRepository = repository;
     _eventsRepository       = eventsRepository;
     _logger = logger;
     _organisationValidator = organisationValidator;
     _providerTypeValidator = providerTypeValidator;
     _mapper        = mapper;
     _textSanitiser = textSanitiser;
 }