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