示例#1
0
        public SnapshotObservable(IElasticClient elasticClient, ISnapshotRequest snapshotRequest)
        {
            elasticClient.ThrowIfNull(nameof(elasticClient));
            snapshotRequest.ThrowIfNull(nameof(snapshotRequest));

            _elasticClient                         = elasticClient;
            _snapshotRequest                       = snapshotRequest;
            _snapshotStatusHumbleObject            = new SnapshotStatusHumbleObject(elasticClient, snapshotRequest);
            _snapshotStatusHumbleObject.Completed += StopTimer;
            _snapshotStatusHumbleObject.Error     += StopTimer;
        }
示例#2
0
        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 SnapshotObservable(IOpenSearchClient opensearchClient, ISnapshotRequest snapshotRequest)
        {
            opensearchClient.ThrowIfNull(nameof(opensearchClient));
            snapshotRequest.ThrowIfNull(nameof(snapshotRequest));

            _opensearchClient = opensearchClient;
            _snapshotRequest  = snapshotRequest;
            _snapshotRequest.RequestParameters.SetRequestMetaData(RequestMetaDataFactory.SnapshotHelperRequestMetaData());
            _snapshotStatusHumbleObject            = new SnapshotStatusHumbleObject(opensearchClient, snapshotRequest);
            _snapshotStatusHumbleObject.Completed += StopTimer;
            _snapshotStatusHumbleObject.Error     += StopTimer;
        }
示例#4
0
        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();
        }
示例#5
0
        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);
        }
示例#6
0
        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 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 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();
		}