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); }
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(); }
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>()); }
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); }
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); }