/// <summary>
        /// Initializes a new instance of the <see cref="JudgementServiceFactory"/> class.
        /// </summary>
        /// <param name="ruleViolationServiceFactory">
        /// The rule violation service factory.
        /// </param>
        /// <param name="judgementRepository">
        /// The judgement repository.
        /// </param>
        /// <param name="highProfitJudgementMapper">
        /// The high profit judgement mapper.
        /// </param>
        /// <param name="fixedIncomeHighProfitJudgementMapper">
        /// The fixed income high profit judgement mapper.
        /// </param>
        /// <param name="fixedIncomeHighVolumeJudgementMapper">
        /// The fixed income high volume judgement mapper.
        /// </param>
        /// <param name="logger">
        /// The logger.
        /// </param>
        public JudgementServiceFactory(
            IRuleViolationServiceFactory ruleViolationServiceFactory,
            IJudgementRepository judgementRepository,
            IHighProfitJudgementMapper highProfitJudgementMapper,
            IFixedIncomeHighProfitJudgementMapper fixedIncomeHighProfitJudgementMapper,
            IFixedIncomeHighVolumeJudgementMapper fixedIncomeHighVolumeJudgementMapper,
            ILogger <JudgementService> logger)
        {
            this.ruleViolationServiceFactory =
                ruleViolationServiceFactory ?? throw new ArgumentNullException(nameof(ruleViolationServiceFactory));

            this.judgementRepository =
                judgementRepository ?? throw new ArgumentNullException(nameof(judgementRepository));

            this.highProfitJudgementMapper =
                highProfitJudgementMapper ?? throw new ArgumentNullException(nameof(highProfitJudgementMapper));

            this.fixedIncomeHighProfitJudgementMapper =
                fixedIncomeHighProfitJudgementMapper ?? throw new ArgumentNullException(nameof(fixedIncomeHighProfitJudgementMapper));
            this.fixedIncomeHighVolumeJudgementMapper =
                fixedIncomeHighVolumeJudgementMapper ?? throw new ArgumentNullException(nameof(fixedIncomeHighVolumeJudgementMapper));

            this.logger =
                logger ?? throw new ArgumentNullException(nameof(logger));
        }
 public void Setup()
 {
     this.ruleViolationServiceFactory          = A.Fake <IRuleViolationServiceFactory>();
     this.fixedIncomeJudgementMapper           = A.Fake <IFixedIncomeHighProfitJudgementMapper>();
     this.judgementRepository                  = A.Fake <IJudgementRepository>();
     this.highProfitJudgementMapper            = A.Fake <IHighProfitJudgementMapper>();
     this.fixedIncomeHighVolumeJudgementMapper = A.Fake <IFixedIncomeHighVolumeJudgementMapper>();
     this.logger = A.Fake <ILogger <JudgementService> >();
 }