예제 #1
0
        public void InitializationShouldLoadLastSynchronizedEtagFromStorage()
        {
            var synchronizer  = new DatabaseEtagSynchronizer(storage);
            var iSynchronizer = synchronizer.GetSynchronizer(EtagSynchronizerType.Indexer);

            Assert.Equal(1, numberOfCalls);
        }
예제 #2
0
 public IndexingExecuter(WorkContext context, DatabaseEtagSynchronizer synchronizer, Prefetcher prefetcher)
     : base(context)
 {
     autoTuner           = new IndexBatchSizeAutoTuner(context);
     etagSynchronizer    = synchronizer.GetSynchronizer(EtagSynchronizerType.Indexer);
     prefetchingBehavior = prefetcher.GetPrefetchingBehavior(PrefetchingUser.Indexer);
 }
예제 #3
0
        public void Calculation2()
        {
            var synchronizer  = new DatabaseEtagSynchronizer(storage);
            var iSynchronizer = synchronizer.GetSynchronizer(EtagSynchronizerType.Indexer);

            Assert.Equal(Etag.Empty, iSynchronizer.CalculateSynchronizationEtag(null, null));
        }
예제 #4
0
        public void Calculation3()
        {
            var synchronizer  = new DatabaseEtagSynchronizer(storage);
            var iSynchronizer = synchronizer.GetSynchronizer(EtagSynchronizerType.Indexer);

            var someEtag = EtagUtil.Increment(Etag.Empty, 1);

            Assert.Equal(Etag.Empty, iSynchronizer.CalculateSynchronizationEtag(someEtag, null));
        }
예제 #5
0
        public void CalculationShouldPersist1()
        {
            var synchronizer  = new DatabaseEtagSynchronizer(storage);
            var iSynchronizer = synchronizer.GetSynchronizer(EtagSynchronizerType.Indexer);

            var lowerEtag = EtagUtil.Increment(Etag.Empty, 1);

            Assert.Equal(lowerEtag, iSynchronizer.CalculateSynchronizationEtag(null, lowerEtag));
            Assert.Equal(2, numberOfCalls);
        }
예제 #6
0
        public void Calculation5()
        {
            var synchronizer  = new DatabaseEtagSynchronizer(storage);
            var iSynchronizer = synchronizer.GetSynchronizer(EtagSynchronizerType.Indexer);

            var lowerEtag  = EtagUtil.Increment(Etag.Empty, 1);
            var higherEtag = EtagUtil.Increment(Etag.Empty, 2);

            Assert.Equal(lowerEtag, iSynchronizer.CalculateSynchronizationEtag(higherEtag, lowerEtag));
        }
예제 #7
0
        public void SynchronizerShouldReturnNullIfNoNewEtagsArrivedFromLastGet()
        {
            var synchronizer  = new DatabaseEtagSynchronizer(storage);
            var iSynchronizer = synchronizer.GetSynchronizer(EtagSynchronizerType.Indexer);

            var someEtag = EtagUtil.Increment(Etag.Empty, 1);

            iSynchronizer.UpdateSynchronizationState(someEtag);

            var etag = iSynchronizer.GetSynchronizationEtag();

            Assert.Equal(someEtag, etag);
            Assert.Null(iSynchronizer.GetSynchronizationEtag());
        }
예제 #8
0
        public void CalculationShouldNotPersist()
        {
            var synchronizer  = new DatabaseEtagSynchronizer(storage);
            var iSynchronizer = synchronizer.GetSynchronizer(EtagSynchronizerType.Indexer);

            var lowerEtag  = EtagUtil.Increment(Etag.Empty, 1);
            var higherEtag = EtagUtil.Increment(Etag.Empty, 2);

            iSynchronizer.UpdateSynchronizationState(higherEtag);

            Assert.Equal(higherEtag, iSynchronizer.GetSynchronizationEtag());

            iSynchronizer.CalculateSynchronizationEtag(null, higherEtag);

            Assert.Equal(3, numberOfCalls);
        }
예제 #9
0
        public void SynchronizerShouldReturnLowestEtagInEachCycle()
        {
            var synchronizer  = new DatabaseEtagSynchronizer(storage);
            var iSynchronizer = synchronizer.GetSynchronizer(EtagSynchronizerType.Indexer);

            var lowestEtag  = EtagUtil.Increment(Etag.Empty, 1);
            var higherEtag  = EtagUtil.Increment(Etag.Empty, 2);
            var highestEtag = EtagUtil.Increment(Etag.Empty, 2);

            iSynchronizer.UpdateSynchronizationState(higherEtag);
            iSynchronizer.UpdateSynchronizationState(lowestEtag);
            iSynchronizer.UpdateSynchronizationState(highestEtag);

            var etag = iSynchronizer.GetSynchronizationEtag();

            Assert.Equal(lowestEtag, etag);
        }