/// <summary>
        /// Default Constructor
        /// </summary>
        /// <param name="processor">Processor</param>
        /// <param name="poller">Poller</param>
        /// <param name="tracker">Tracker</param>
        /// <param name="minimumPeriodInSeconds">Minimum, time in seconds</param>
        /// <param name="maximumPeriodInSeconds">Maximum, time in seconds</param>
        public DequeueBatchDynamic(IPoller <T> poller, IProcessor <T> processor, ITimingTracker tracker, int minimumPeriodInSeconds = BaseTimes.DefaultMinimumTiming, int maximumPeriodInSeconds = BaseTimes.DefaultMaximumTiming)
            : base(poller, processor, DequeueBatch <T> .MinimumBatchSize, minimumPeriodInSeconds, maximumPeriodInSeconds)
        {
            if (null == tracker)
            {
                throw new ArgumentNullException("tracker");
            }

            this.tracker = tracker;
        }
 /// <summary>
 /// Mockable Constructor
 /// </summary>
 /// <param name="queue">Storage Queue</param>
 /// <param name="processor">Processor</param>
 /// <param name="batchCount">Batch Count</param>
 /// <param name="minimumPeriodInSeconds">Minimum Period In Seconds</param>
 /// <param name="maximumPeriodInSeconds">Maximum Period In Seconds</param>
 public StorageDequeueBatchDynamic(IStorageQueue queue, IProcessor <T> processor, ITimingTracker tracker, int minimumPeriodInSeconds = BaseTimes.DefaultMinimumTiming, int maximumPeriodInSeconds = BaseTimes.DefaultMaximumTiming)
     : base(new StorageQueuePoller <T>(queue), processor, tracker, minimumPeriodInSeconds, maximumPeriodInSeconds)
 {
 }