public void Setup()
 {
     this.scheduleDisassembler = A.Fake <IScheduleDisassembler>();
     this.awsClient            = A.Fake <IAwsQueueClient>();
     this.awsConfiguration     = A.Fake <IAwsConfiguration>();
     this.busSerialiser        = A.Fake <IScheduledExecutionMessageBusSerialiser>();
     this.systemProcessContext = A.Fake <ISystemProcessContext>();
     this.logger = A.Fake <ILogger <QueueDistributedRuleSubscriber> >();
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="QueueDistributedRuleSubscriber"/> class.
        /// </summary>
        /// <param name="scheduleDisassembler">
        /// The schedule disassembler.
        /// </param>
        /// <param name="awsQueueClient">
        /// The aws queue client.
        /// </param>
        /// <param name="awsConfiguration">
        /// The aws configuration.
        /// </param>
        /// <param name="messageBusSerialiser">
        /// The message bus serializer.
        /// </param>
        /// <param name="systemProcessContext">
        /// The system process context.
        /// </param>
        /// <param name="logger">
        /// The logger.
        /// </param>
        public QueueDistributedRuleSubscriber(
            IScheduleDisassembler scheduleDisassembler,
            IAwsQueueClient awsQueueClient,
            IAwsConfiguration awsConfiguration,
            IScheduledExecutionMessageBusSerialiser messageBusSerialiser,
            ISystemProcessContext systemProcessContext,
            ILogger <QueueDistributedRuleSubscriber> logger)
        {
            this.scheduleDisassembler =
                scheduleDisassembler ?? throw new ArgumentNullException(nameof(scheduleDisassembler));
            this.awsQueueClient       = awsQueueClient ?? throw new ArgumentNullException(nameof(awsQueueClient));
            this.awsConfiguration     = awsConfiguration ?? throw new ArgumentNullException(nameof(awsConfiguration));
            this.messageBusSerializer =
                messageBusSerialiser ?? throw new ArgumentNullException(nameof(messageBusSerialiser));
            this.logger = logger ?? throw new ArgumentNullException(nameof(logger));

            this.systemProcessContext =
                systemProcessContext ?? throw new ArgumentNullException(nameof(systemProcessContext));
        }