private void Snapshot(object state) { var observer = state as IObserver <SnapshotStatusResponse>; if (observer == null) { throw new ArgumentException("state"); } try { var watch = new Stopwatch(); watch.Start(); _snapshotStatusHumbleObject.CheckStatus(); _timer.Change(TimeSpan.FromMilliseconds(Math.Max(0, _interval.TotalMilliseconds - watch.ElapsedMilliseconds)), Timeout.InfiniteTimeSpan); } catch (Exception exception) { observer.OnError(exception); StopTimer(null, null); } }
public void OnNext_WhenDoneLessThanTotalForAllSnapshotShardStats() { var elastickClientMock = ElastickClientMock(SnapshotStatusFixture(1, 1, 2)); var sut = new SnapshotStatusHumbleObject(elastickClientMock.Object, new SnapshotRequest("repository", "snapshot")); sut.Next += (sender, args) => Assert.AreEqual(1, args.SnapshotStatusResponse.Snapshots.Count()); sut.Completed += (sender, args) => Assert.Fail("Can't complete"); sut.Error += (sender, args) => Assert.Fail(args.Exception.Message); sut.CheckStatus(); }
public void OnCompleted_WhenDoneEqualsToTotalForAllSnapshotShardStats() { var elastickClientMock = ElastickClientMock(SnapshotStatusFixture(1, 2, 2)); var sut = new SnapshotStatusHumbleObject(elastickClientMock.Object, new SnapshotRequest("repository", "snapshot")); sut.Next += (sender, args) => Assert.Fail(); sut.Completed += (sender, args) => Assert.NotNull(args.SnapshotStatusResponse); sut.Error += (sender, args) => Assert.Fail(args.Exception.Message); sut.CheckStatus(); }
public void ShouldCallSnapshotStatus() { var elastickClientMock = new Mock <IElasticClient>(); var sut = new SnapshotStatusHumbleObject(elastickClientMock.Object, new SnapshotRequest("repository", "snapshot")); sut.CheckStatus(); elastickClientMock.Verify(x => x .SnapshotStatus( It.Is <ISnapshotStatusRequest>( request => request.Repository == "repository" && request.Snapshot == "snapshot")), Times.AtLeastOnce); }
public void SnapshotStatusResponseInvalid_Exception() { var elastickClientMock = new Mock <IElasticClient>(); var snapshotStatusResponseMock = new Mock <ISnapshotStatusResponse>(); snapshotStatusResponseMock.Setup(x => x.IsValid).Returns(false); elastickClientMock.Setup( x => x.SnapshotStatus(It.IsAny <ISnapshotStatusRequest>())) .Returns(() => snapshotStatusResponseMock.Object); var sut = new SnapshotStatusHumbleObject(elastickClientMock.Object, new SnapshotRequest("repository", "snapshot")); sut.Next += (sender, args) => Assert.Fail(""); sut.Completed += (sender, args) => Assert.Fail("Can't complete"); sut.Error += (sender, args) => { throw args.Exception; }; sut.CheckStatus(); }
public void OnNext_WhenDoneLessThanTotalForAtLeastOneSnapshotShardStats() { var snapshotStatusFixture = SnapshotStatusFixture(1, 1, 2).ToList(); snapshotStatusFixture.Insert(1, new SnapshotStatusWrapper(new SnapshotShardsStatsWrapper(2, 2))); var elastickClientMock = ElastickClientMock(snapshotStatusFixture); var sut = new SnapshotStatusHumbleObject(elastickClientMock.Object, new SnapshotRequest("repository", "snapshot")); sut.Next += (sender, args) => Assert.AreEqual(2, args.SnapshotStatusResponse.Snapshots.Count()); sut.Completed += (sender, args) => Assert.Fail("Can't complete"); sut.Error += (sender, args) => Assert.Fail(args.Exception.Message); sut.CheckStatus(); }
public void ShouldCallSnapshotStatus() { var elastickClientMock = new Mock<IElasticClient>(); var sut = new SnapshotStatusHumbleObject(elastickClientMock.Object, new SnapshotRequest("repository", "snapshot")); sut.CheckStatus(); elastickClientMock.Verify(x => x .SnapshotStatus( It.Is<ISnapshotStatusRequest>( request => request.Repository == "repository" && request.Snapshot == "snapshot")), Times.AtLeastOnce); }
public void SnapshotStatusResponseInvalid_Exception() { var elastickClientMock = new Mock<IElasticClient>(); var snapshotStatusResponseMock = new Mock<ISnapshotStatusResponse>(); snapshotStatusResponseMock.Setup(x => x.IsValid).Returns(false); elastickClientMock.Setup( x => x.SnapshotStatus(It.IsAny<ISnapshotStatusRequest>())) .Returns(() => snapshotStatusResponseMock.Object); var sut = new SnapshotStatusHumbleObject(elastickClientMock.Object, new SnapshotRequest("repository", "snapshot")); sut.Next += (sender, args) => Assert.Fail(""); sut.Completed += (sender, args) => Assert.Fail("Can't complete"); sut.Error += (sender, args) => { throw args.Exception; }; sut.CheckStatus(); }