Example #1
0
        public async Task Sync_Can_Complete()
        {
            var sync = new Synchroniser(new SyncState(), _peerSyncManager, _deltaCache, _deltaHeightWatcher, _deltaHashProvider, _deltaDfsReader, _deltaIndexService,
                                        _mapperProvider, _userOutput, Substitute.For <ILogger>());

            sync.SyncCompleted.Subscribe(x => { _manualResetEventSlim.Set(); });

            await sync.StartAsync(CancellationToken.None);

            _manualResetEventSlim.Wait();

            sync.CurrentHighestDeltaIndexStored.Should().Be((ulong)_syncTestHeight);
        }
Example #2
0
        public async Task StartAsync_Should_Start_Sync()
        {
            _deltaHeightWatcher = Substitute.For <IDeltaHeightWatcher>();
            _deltaHeightWatcher.GetHighestDeltaIndexAsync().Returns(new DeltaIndex {
                Cid = ByteString.Empty, Height = 10000
            });

            var sync = new Synchroniser(new SyncState(), _peerSyncManager, _deltaCache, _deltaHeightWatcher, _deltaHashProvider, _deltaDfsReader,
                                        _deltaIndexService, _mapperProvider, _userOutput, Substitute.For <ILogger>());

            await sync.StartAsync(CancellationToken.None);

            sync.State.IsRunning.Should().BeTrue();
        }
Example #3
0
        public async Task Sync_Can_Update_State()
        {
            _syncTestHeight = 10;

            var sync = new Synchroniser(new SyncState(), _peerSyncManager, _deltaCache, _deltaHeightWatcher, _deltaHashProvider, _deltaDfsReader, _deltaIndexService,
                                        _mapperProvider, _userOutput, Substitute.For <ILogger>(), _syncTestHeight);

            sync.SyncCompleted.Subscribe(x => { _manualResetEventSlim.Set(); });

            await sync.StartAsync(CancellationToken.None);

            _manualResetEventSlim.Wait();

            _deltaHashProvider.Received(_syncTestHeight).TryUpdateLatestHash(Arg.Any <Cid>(), Arg.Any <Cid>());
        }
Example #4
0
        public async Task Sync_Can_Add_DeltaIndexRange_To_Repository()
        {
            _syncTestHeight = 10;
            var expectedData = GenerateSampleData(0, _syncTestHeight, _syncTestHeight);
            var sync         = new Synchroniser(new SyncState(), _peerSyncManager, _deltaCache, _deltaHeightWatcher, _deltaHashProvider, _deltaDfsReader, _deltaIndexService,
                                                _mapperProvider, _userOutput, Substitute.For <ILogger>(), _syncTestHeight);

            sync.SyncCompleted.Subscribe(x => { _manualResetEventSlim.Set(); });

            await sync.StartAsync(CancellationToken.None);

            _manualResetEventSlim.Wait();

            var range = _deltaIndexService.GetRange(0, (ulong)_syncTestHeight).Select(x => DeltaIndexDao.ToProtoBuff <DeltaIndex>(x, _mapperProvider));

            range.Should().BeEquivalentTo(expectedData.DeltaIndex);
        }
Example #5
0
        public async Task Can_Restore_DeltaIndex()
        {
            const int sampleCurrentDeltaHeight = 100;

            var cid = _hashProvider.ComputeUtf8MultiHash(sampleCurrentDeltaHeight.ToString()).ToCid();

            _deltaIndexService.Add(new DeltaIndexDao {
                Cid = cid, Height = sampleCurrentDeltaHeight
            });

            var sync = new Synchroniser(new SyncState(), _peerSyncManager, _deltaCache, Substitute.For <IDeltaHeightWatcher>(), _deltaHashProvider, _deltaDfsReader,
                                        _deltaIndexService, _mapperProvider, _userOutput, Substitute.For <ILogger>());

            await sync.StartAsync(CancellationToken.None);

            sync.CurrentHighestDeltaIndexStored.Should().Be(sampleCurrentDeltaHeight);
        }