From 73628e7e1fd9cd49b5cfae011915a58a349802c3 Mon Sep 17 00:00:00 2001 From: Ben Carman Date: Mon, 27 Jul 2020 14:14:24 -0500 Subject: [PATCH] Add ProcessBlockTest (#1674) --- .../bitcoins/wallet/ProcessBlockTest.scala | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 wallet-test/src/test/scala/org/bitcoins/wallet/ProcessBlockTest.scala diff --git a/wallet-test/src/test/scala/org/bitcoins/wallet/ProcessBlockTest.scala b/wallet-test/src/test/scala/org/bitcoins/wallet/ProcessBlockTest.scala new file mode 100644 index 0000000000..cc81034001 --- /dev/null +++ b/wallet-test/src/test/scala/org/bitcoins/wallet/ProcessBlockTest.scala @@ -0,0 +1,39 @@ +package org.bitcoins.wallet + +import org.bitcoins.core.currency._ +import org.bitcoins.testkit.wallet.{BitcoinSWalletTest, WalletWithBitcoindRpc} +import org.scalatest.FutureOutcome + +class ProcessBlockTest extends BitcoinSWalletTest { + + override def withFixture(test: OneArgAsyncTest): FutureOutcome = + withNewWalletAndBitcoind(test) + + override type FixtureParam = WalletWithBitcoindRpc + + it must "process a block" in { param => + val WalletWithBitcoindRpc(wallet, bitcoind) = param + + for { + startingUtxos <- wallet.listUtxos() + _ = assert(startingUtxos.isEmpty) + + addr <- wallet.getNewAddress() + txId <- bitcoind.sendToAddress(addr, 1.bitcoin) + hash <- + bitcoind.getNewAddress + .flatMap(bitcoind.generateToAddress(1, _)) + .map(_.head) + block <- bitcoind.getBlockRaw(hash) + + _ <- wallet.processBlock(block) + utxos <- wallet.listUtxos() + } yield { + assert(utxos.size == 1) + assert(utxos.head.output.scriptPubKey == addr.scriptPubKey) + assert(utxos.head.output.value == 1.bitcoin) + assert(utxos.head.blockHash.contains(hash)) + assert(utxos.head.txid == txId) + } + } +}