private DocumentServiceLeaseStoreManager CreateLeaseStoreManager(
            IChangeFeedDocumentClient documentClient,
            string hostName,
            IDocumentServiceLeaseUpdater leaseUpdater    = null,
            IRequestOptionsFactory requestOptionsFactory = null)
        {
            var settings = new DocumentServiceLeaseStoreManagerSettings
            {
                LeaseCollectionInfo = collectionInfo,
                ContainerNamePrefix = storeNamePrefix,
                LeaseCollectionLink = collectionLink,
                HostName            = hostName,
            };

            // Make sure we test both constructors.
            return(leaseUpdater != null ?
                   new DocumentServiceLeaseStoreManager(
                       settings,
                       documentClient,
                       requestOptionsFactory ?? Mock.Of <IRequestOptionsFactory>(),
                       leaseUpdater) :
                   new DocumentServiceLeaseStoreManager(
                       settings,
                       documentClient,
                       requestOptionsFactory ?? Mock.Of <IRequestOptionsFactory>()));
        }
Exemplo n.º 2
0
 public DocumentServiceLeaseStoreManager(
     DocumentServiceLeaseStoreManagerSettings settings,
     IChangeFeedDocumentClient leaseDocumentClient,
     IRequestOptionsFactory requestOptionsFactory)
     : this(settings, leaseDocumentClient, requestOptionsFactory, new DocumentServiceLeaseUpdater(leaseDocumentClient))
 {
 }
Exemplo n.º 3
0
        public DocumentServiceLeaseStoreManagerBuilder WithRequestOptionsFactory(IRequestOptionsFactory requestOptionsFactory)
        {
            if (requestOptionsFactory == null)
            {
                throw new ArgumentNullException(nameof(requestOptionsFactory));
            }

            this.requestOptionsFactory = requestOptionsFactory;
            return(this);
        }
 public DocumentServiceLeaseStore(
     IChangeFeedDocumentClient client,
     DocumentCollectionInfo leaseCollectionInfo,
     string containerNamePrefix,
     string leaseCollectionLink,
     IRequestOptionsFactory requestOptionsFactory)
 {
     this.client = client;
     this.leaseStoreCollectionInfo = leaseCollectionInfo;
     this.containerNamePrefix      = containerNamePrefix;
     this.leaseCollectionLink      = leaseCollectionLink;
     this.requestOptionsFactory    = requestOptionsFactory;
 }
Exemplo n.º 5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DocumentServiceLeaseStoreManager"/> class.
        /// </summary>
        /// <remarks>
        /// Internal only for testing purposes, otherwise would be private.
        /// </remarks>
        internal DocumentServiceLeaseStoreManager(
            DocumentServiceLeaseStoreManagerSettings settings,
            IChangeFeedDocumentClient leaseDocumentClient,
            IRequestOptionsFactory requestOptionsFactory,
            IDocumentServiceLeaseUpdater leaseUpdater) // For testing purposes only.
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }
            if (settings.LeaseCollectionInfo == null)
            {
                throw new ArgumentNullException(nameof(settings.LeaseCollectionInfo));
            }
            if (settings.ContainerNamePrefix == null)
            {
                throw new ArgumentNullException(nameof(settings.ContainerNamePrefix));
            }
            if (settings.LeaseCollectionLink == null)
            {
                throw new ArgumentNullException(nameof(settings.LeaseCollectionLink));
            }
            if (string.IsNullOrEmpty(settings.HostName))
            {
                throw new ArgumentNullException(nameof(settings.HostName));
            }
            if (leaseDocumentClient == null)
            {
                throw new ArgumentNullException(nameof(leaseDocumentClient));
            }
            if (requestOptionsFactory == null)
            {
                throw new ArgumentException(nameof(requestOptionsFactory));
            }
            if (leaseUpdater == null)
            {
                throw new ArgumentException(nameof(leaseUpdater));
            }

            this.settings = settings;
            this.client   = leaseDocumentClient;
            this.requestOptionsFactory = requestOptionsFactory;
            this.leaseUpdater          = leaseUpdater;
            this.leaseStore            = new DocumentServiceLeaseStore(
                this.client,
                this.settings.LeaseCollectionInfo,
                this.settings.ContainerNamePrefix,
                this.settings.LeaseCollectionLink,
                this.requestOptionsFactory);
        }