Beispiel #1
0
        public async void HistoryQueryIterator_next_emits_OnData_when_data_is_available()
        {
            var response = new QueryResponse()
            {
                HasMore = true
            };

            response.Results.AddRange(new[]
            {
                new QueryResultBytes()
                {
                    ResultBytes = new KeyModification()
                    {
                        TxId     = "txid1",
                        IsDelete = false,
                        Value    = "foo".ToByteString()
                    }
                    .ToByteString()
                },
                new QueryResultBytes()
                {
                    ResultBytes = new KeyModification()
                    {
                        TxId     = "txid2",
                        IsDelete = true,
                        Value    = "foo".ToByteString()
                    }
                    .ToByteString()
                }
            });

            QueryResult <KeyModification> queryResult = null;

            var iterator = new HistoryQueryIterator(null, null, null, response);

            iterator.Data += result => queryResult = result;

            var iteratorResult = await iterator.Next();

            iteratorResult.Should().NotBeNull();
            queryResult.Should().NotBeNull();
            iteratorResult.Should().BeSameAs(queryResult);

            queryResult.Value.IsDelete.Should().BeFalse();
            queryResult.Value.TxId.Should().Be("txid1");
            queryResult.Value.Value.ToStringUtf8().Should().Be("foo");

            iteratorResult = await iterator.Next();

            iteratorResult.Should().NotBeNull();
            queryResult.Should().NotBeNull();
            iteratorResult.Should().BeSameAs(queryResult);

            queryResult.Value.IsDelete.Should().BeTrue();
            queryResult.Value.TxId.Should().Be("txid2");
            queryResult.Value.Value.ToStringUtf8().Should().Be("foo");
        }
        public async void GetHistoryForKey_invokes_the_handlers_GetHistoryForKey_handler()
        {
            var iteratorMock = new HistoryQueryIterator(null, string.Empty, string.Empty, null);
            var handlerMock  = new Mock <IHandler>();

            handlerMock.Setup(m =>
                              m.HandleGetHistoryForKey("key1", "ChannelId", "TxId"))
            .ReturnsAsync(iteratorMock);

            var stub = CreateValidChaincodeStubWithHandler(handlerMock.Object);

            var result = await stub.GetHistoryForKey("key1");

            handlerMock.VerifyAll();
            result.Should().BeSameAs(iteratorMock);
        }