| 51 | BOOST_FIXTURE_TEST_SUITE(rpc_tests, RPCTestingSetup) |
| 52 | |
| 53 | BOOST_AUTO_TEST_CASE(rpc_rawparams) |
| 54 | { |
| 55 | // Test raw transaction API argument handling |
| 56 | UniValue r; |
| 57 | |
| 58 | BOOST_CHECK_THROW(CallRPC("getrawtransaction"), std::runtime_error); |
| 59 | BOOST_CHECK_THROW(CallRPC("getrawtransaction not_hex"), std::runtime_error); |
| 60 | BOOST_CHECK_THROW(CallRPC("getrawtransaction a3b807410df0b60fcb9736768df5823938b2f838694939ba45f3c0a1bff150ed not_int"), std::runtime_error); |
| 61 | |
| 62 | BOOST_CHECK_THROW(CallRPC("createrawtransaction"), std::runtime_error); |
| 63 | BOOST_CHECK_THROW(CallRPC("createrawtransaction null null"), std::runtime_error); |
| 64 | BOOST_CHECK_THROW(CallRPC("createrawtransaction not_array"), std::runtime_error); |
| 65 | BOOST_CHECK_THROW(CallRPC("createrawtransaction {} {}"), std::runtime_error); |
| 66 | BOOST_CHECK_THROW(CallRPC("createrawtransaction [] {}"), std::runtime_error); |
| 67 | BOOST_CHECK_THROW(CallRPC("createrawtransaction [] [] extra"), std::runtime_error); |
| 68 | |
| 69 | BOOST_CHECK_THROW(CallRPC("decoderawtransaction"), std::runtime_error); |
| 70 | BOOST_CHECK_THROW(CallRPC("decoderawtransaction null"), std::runtime_error); |
| 71 | BOOST_CHECK_THROW(CallRPC("decoderawtransaction DEADBEEF"), std::runtime_error); |
| 72 | std::string rawtx = "0100000001a15d57094aa7a21a28cb20b59aab8fc7d1149a3bdbcddba9c622e4f5f6a99ece010000006c493046022100f93bb0e7d8db7bd46e40132d1f8242026e045f03a0efe71bbb8e3f475e970d790221009337cd7f1f929f00cc6ff01f03729b069a7c21b59b1736ddfee5db5946c5da8c0121033b9b137ee87d5a812d6f506efdd37f0affa7ffc310711c06c7f3e097c9447c52ffffffff0100e1f505000000001976a9140389035a9225b3839e2bbf32d826a1e222031fd888ac00000000"; |
| 73 | BOOST_CHECK_NO_THROW(r = CallRPC(std::string("decoderawtransaction ")+rawtx)); |
| 74 | BOOST_CHECK_EQUAL(find_value(r.get_obj(), "size").get_int(), 193); |
| 75 | BOOST_CHECK_EQUAL(find_value(r.get_obj(), "version").get_int(), 1); |
| 76 | BOOST_CHECK_EQUAL(find_value(r.get_obj(), "locktime").get_int(), 0); |
| 77 | BOOST_CHECK_THROW(CallRPC(std::string("decoderawtransaction ")+rawtx+" extra"), std::runtime_error); |
| 78 | BOOST_CHECK_NO_THROW(r = CallRPC(std::string("decoderawtransaction ")+rawtx+" false")); |
| 79 | BOOST_CHECK_THROW(r = CallRPC(std::string("decoderawtransaction ")+rawtx+" false extra"), std::runtime_error); |
| 80 | |
| 81 | // Only check failure cases for sendrawtransaction, there's no network to send to... |
| 82 | BOOST_CHECK_THROW(CallRPC("sendrawtransaction"), std::runtime_error); |
| 83 | BOOST_CHECK_THROW(CallRPC("sendrawtransaction null"), std::runtime_error); |
| 84 | BOOST_CHECK_THROW(CallRPC("sendrawtransaction DEADBEEF"), std::runtime_error); |
| 85 | BOOST_CHECK_THROW(CallRPC(std::string("sendrawtransaction ")+rawtx+" extra"), std::runtime_error); |
| 86 | } |
| 87 | |
| 88 | BOOST_AUTO_TEST_CASE(rpc_togglenetwork) |
| 89 | { |
nothing calls this directly
no test coverage detected