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));
        }
        void ExecuteAndCheckSendTransactions(string[] txsHex, RpcSendTransactions expected, RpcSendTransactions node0Response,
                                             RpcSendTransactions node1Response)
        {
            rpcClientFactoryMock.SetUpPredefinedResponse(
                ("umockNode0:sendrawtransactions", node0Response),
                ("umockNode1:sendrawtransactions", node1Response));


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

            var r = c.SendRawTransactionsAsync(
                txsHex.Select(x =>
                              (HelperTools.HexStringToByteArray(x), true, true)).ToArray()).Result;

            Assert.AreEqual(JsonSerializer.Serialize(expected), JsonSerializer.Serialize(r));
        }
        public async Task GetBlockChainInfoShouldReturnOldestBLock()
        {
            var responses = rpcClientFactoryMock.PredefinedResponse;

            responses.TryAdd("umockNode0:getblockchaininfo",
                             new RpcGetBlockchainInfo
            {
                BestBlockHash = "oldest",
                Blocks        = 100
            }
                             );

            responses.TryAdd("umockNode1:getblockchaininfo",
                             new RpcGetBlockchainInfo
            {
                BestBlockHash = "younger",
                Blocks        = 101
            }
                             );

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

            Assert.AreEqual("oldest", (await c.GetWorstBlockchainInfoAsync()).BestBlockHash);
        }