public async Task GetTxOutAsync_IncludeInMempool_UnspentTransactionFound_ReturnsModelAsync() { var txId = new uint256(1243124); Transaction transaction = this.CreateTransaction(); var unspentOutputs = new UnspentOutputs(1, transaction); this.pooledGetUnspentTransaction.Setup(s => s.GetUnspentTransactionAsync(txId)) .ReturnsAsync(unspentOutputs) .Verifiable(); this.controller = new NodeController(this.fullNode.Object, this.LoggerFactory.Object, this.dateTimeProvider.Object, this.chainState.Object, this.nodeSettings, this.connectionManager.Object, this.chain, this.network, this.pooledTransaction.Object, this.pooledGetUnspentTransaction.Object, this.getUnspentTransaction.Object, this.networkDifficulty.Object); string txid = txId.ToString(); uint vout = 0; bool includeMemPool = true; var json = (JsonResult)await this.controller.GetTxOutAsync(txid, vout, includeMemPool).ConfigureAwait(false); GetTxOutModel resultModel = (GetTxOutModel)json.Value; this.pooledGetUnspentTransaction.Verify(); Assert.Equal(this.chain.Tip.HashBlock, resultModel.BestBlock); Assert.True(resultModel.Coinbase); Assert.Equal(3, resultModel.Confirmations); Assert.Equal(new ScriptPubKey(transaction.Outputs[0].ScriptPubKey, this.network).Hex, resultModel.ScriptPubKey.Hex); Assert.Equal(transaction.Outputs[0].Value, resultModel.Value); }
public async Task GetTxOutAsync_IncludeMempool_PooledGetUnspentTransactionNotAvailable_UnspentTransactionNotFound_ReturnsNullAsync() { var txId = new uint256(1243124); this.controller = new FullNodeController(this.LoggerFactory.Object, this.pooledTransaction.Object, null, this.getUnspentTransaction.Object, this.networkDifficulty.Object, this.consensusLoop.Object, this.fullNode.Object, this.nodeSettings, this.network, this.chain, this.chainState.Object, this.connectionManager.Object); GetTxOutModel result = await this.controller.GetTxOutAsync(txId.ToString(), 0, true).ConfigureAwait(false); Assert.Null(result); }
public async Task GetTxOutAsync_IncludeMempool_UnspentTransactionNotFound_ReturnsNullAsync() { var txId = new uint256(1243124); this.pooledGetUnspentTransaction.Setup(s => s.GetUnspentTransactionAsync(txId)) .ReturnsAsync((UnspentOutputs)null) .Verifiable(); GetTxOutModel result = await this.controller.GetTxOutAsync(txId.ToString(), 0, true).ConfigureAwait(true); Assert.Null(result); this.pooledGetUnspentTransaction.Verify(); }
public async Task GetTxOutAsync_IncludeInMempool_UnspentTransactionFound_VOutNotFound_ReturnsModelAsync() { var txId = new uint256(1243124); Transaction transaction = this.CreateTransaction(); var unspentOutputs = new UnspentOutput(new OutPoint(transaction, 0), new Coins(1, transaction.Outputs[0], transaction.IsCoinBase)); this.pooledGetUnspentTransaction.Setup(s => s.GetUnspentTransactionAsync(new OutPoint(txId, 0))) .ReturnsAsync(unspentOutputs) .Verifiable(); GetTxOutModel model = await this.controller.GetTxOutAsync(txId.ToString(), 0, true).ConfigureAwait(false); this.pooledGetUnspentTransaction.Verify(); Assert.Equal(this.chain.Tip.HashBlock, model.BestBlock); Assert.True(model.Coinbase); Assert.Equal(3, model.Confirmations); }
public async Task GetTxOutAsync_NotIncludeInMempool_UnspentTransactionFound_VOutNotFound_ReturnsModelAsync() { var txId = new uint256(1243124); Transaction transaction = this.CreateTransaction(); var unspentOutputs = new UnspentOutputs(1, transaction); this.getUnspentTransaction.Setup(s => s.GetUnspentTransactionAsync(txId)) .ReturnsAsync(unspentOutputs) .Verifiable(); GetTxOutModel model = await this.controller.GetTxOutAsync(txId.ToString(), 13, false).ConfigureAwait(false); this.getUnspentTransaction.Verify(); Assert.Equal(this.chain.Tip.HashBlock, model.BestBlock); Assert.True(model.Coinbase); Assert.Equal(3, model.Confirmations); Assert.Null(model.ScriptPubKey); Assert.Null(model.Value); }
public async Task GetTxOutAsync_NotIncludeInMempool_UnspentTransactionFound_ReturnsModelAsync() { Transaction transaction = this.CreateTransaction(); var unspentOutputs = new UnspentOutput(new OutPoint(transaction, 0), new Coins(1, transaction.Outputs[0], transaction.IsCoinBase)); this.getUnspentTransaction.Setup(s => s.GetUnspentTransactionAsync(new OutPoint(transaction, 0))) .ReturnsAsync(unspentOutputs) .Verifiable(); GetTxOutModel model = await this.controller.GetTxOutAsync(transaction.ToString(), 0, false).ConfigureAwait(false); this.getUnspentTransaction.Verify(); Assert.Equal(this.chain.Tip.HashBlock, model.BestBlock); Assert.True(model.Coinbase); Assert.Equal(3, model.Confirmations); Assert.Equal(new ScriptPubKey(transaction.Outputs[0].ScriptPubKey, this.network).Hex, model.ScriptPubKey.Hex); Assert.Equal(transaction.Outputs[0].Value, model.Value); }
public async Task GetTxOutAsync_IncludeInMempool_UnspentTransactionFound_ReturnsModelAsync() { var txId = new uint256(1243124); Transaction transaction = this.CreateTransaction(); var unspentOutputs = new UnspentOutputs(1, transaction); this.pooledGetUnspentTransaction.Setup(s => s.GetUnspentTransactionAsync(txId)) .ReturnsAsync(unspentOutputs) .Verifiable(); this.controller = new FullNodeController(this.LoggerFactory.Object, this.pooledTransaction.Object, this.pooledGetUnspentTransaction.Object, this.getUnspentTransaction.Object, this.networkDifficulty.Object, this.consensusLoop.Object, this.fullNode.Object, this.nodeSettings, this.network, this.chain, this.chainState.Object, this.connectionManager.Object); GetTxOutModel model = await this.controller.GetTxOutAsync(txId.ToString(), 0, true).ConfigureAwait(false); this.pooledGetUnspentTransaction.Verify(); Assert.Equal(this.chain.Tip.HashBlock, model.BestBlock); Assert.True(model.Coinbase); Assert.Equal(3, model.Confirmations); Assert.Equal(new ScriptPubKey(transaction.Outputs[0].ScriptPubKey, this.network).Hex, model.ScriptPubKey.Hex); Assert.Equal(transaction.Outputs[0].Value, model.Value); }
public async Task GetTxOutAsync_NullVoutandInMempool_PooledUnspentTransactionFound_ReturnsModelVoutZeroAsync() { var txId = new uint256(1243124); Transaction transaction = this.CreateTransaction(); var unspentOutputs = new UnspentOutputs(1, transaction); this.pooledGetUnspentTransaction.Setup(s => s.GetUnspentTransactionAsync(txId)) .ReturnsAsync(unspentOutputs) .Verifiable(); string txid = txId.ToString(); var json = (JsonResult)await this.controller.GetTxOutAsync(txid).ConfigureAwait(false); GetTxOutModel resultModel = (GetTxOutModel)json.Value; this.getUnspentTransaction.Verify(); Assert.Equal(this.chain.Tip.HashBlock, resultModel.BestBlock); Assert.True(resultModel.Coinbase); Assert.Equal(3, resultModel.Confirmations); Assert.Equal(new ScriptPubKey(transaction.Outputs[0].ScriptPubKey, this.network).Hex, resultModel.ScriptPubKey.Hex); Assert.Equal(transaction.Outputs[0].Value, resultModel.Value); }
public async Task GetTxOutAsync_IncludeInMempool_UnspentTransactionFound_VOutNotFound_ReturnsModelAsync() { var txId = new uint256(1243124); Transaction transaction = this.CreateTransaction(); var unspentOutputs = new UnspentOutputs(1, transaction); this.pooledGetUnspentTransaction.Setup(s => s.GetUnspentTransactionAsync(txId)) .ReturnsAsync(unspentOutputs) .Verifiable(); string txid = txId.ToString(); uint vout = 13; bool includeMemPool = true; var json = (JsonResult)await this.controller.GetTxOutAsync(txid, vout, includeMemPool).ConfigureAwait(false); GetTxOutModel resultModel = (GetTxOutModel)json.Value; this.pooledGetUnspentTransaction.Verify(); Assert.Equal(this.chain.Tip.HashBlock, resultModel.BestBlock); Assert.True(resultModel.Coinbase); Assert.Equal(3, resultModel.Confirmations); Assert.Null(resultModel.ScriptPubKey); Assert.Null(resultModel.Value); }