コード例 #1
0
        public async Task QueryTransactionStatusNotConsistent()
        {
            var node0Response = new RpcGetRawTransaction
            {
                Txid      = "tx1",
                Blockhash = "b1"
            };

            var node1Response = new RpcGetRawTransaction
            {
                Txid      = "tx1",
                Blockhash = "**this*is*some*other*block"
            };

            var r = await ExecuteGetRawTransaction("tx1", node0Response, node1Response);

            Assert.AreEqual(null, r.error);
            Assert.IsFalse(r.allTheSame);
            Assert.IsNull(r.result);
        }
コード例 #2
0
        public async Task QueryTransactionStatusOK()
        {
            var node0Response = new RpcGetRawTransaction
            {
                Txid      = "tx1",
                Blockhash = "b1"
            };

            var node1Response = new RpcGetRawTransaction
            {
                Txid      = "tx1",
                Blockhash = "b1"
            };

            var r = await ExecuteGetRawTransaction("tx1", node0Response, node1Response);

            Assert.AreEqual(null, r.error);
            Assert.IsTrue(r.allTheSame);
            Assert.AreEqual("tx1", r.result.Txid);
            Assert.AreEqual("b1", r.result.Blockhash);
        }
コード例 #3
0
        public async Task QueryTransactionStatusWithOneDisconnectedNode()
        {
            rpcClientFactoryMock.DisconnectNode("umockNode0");
            var node0Response = new RpcGetRawTransaction
            {
                Txid      = "tx1",
                Blockhash = "b1"
            };

            var node1Response = new RpcGetRawTransaction
            {
                Txid      = "tx1",
                Blockhash = "b1"
            };

            var r = await ExecuteGetRawTransaction("tx1", node0Response, node1Response);

            Assert.IsNotNull(r.result);
            Assert.IsTrue(r.allTheSame);
            Assert.AreEqual("tx1", r.result.Txid);
            Assert.AreEqual("b1", r.result.Blockhash);
        }
コード例 #4
0
        async Task <(RpcGetRawTransaction result, bool allTheSame, Exception error)> ExecuteGetRawTransaction(string txId, RpcGetRawTransaction node0Response, RpcGetRawTransaction node1Response)
        {
            rpcClientFactoryMock.SetUpPredefinedResponse(
                ("umockNode0:getrawtransaction", node0Response),
                ("umockNode1:getrawtransaction", node1Response));


            var c = new RpcMultiClient(new MockNodes(2), rpcClientFactoryMock, NullLogger <RpcMultiClient> .Instance);

            return(await c.GetRawTransactionAsync(txId));
        }