#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace xrpl::test { using namespace jtx; class TMTransaction_test : public beast::unit_test::Suite { PeerTest::SharedContext context_{makeSslContext("")}; ProtocolVersion protocolVersion_{1, 7}; void testFailureDeserializingTransactionIsCharged() { testcase("Undeserializable Transaction Is Charged"); Env env{*this, envconfig()}; PeerTest::resetId(); auto peer = makePeerTest(env, context_, protocolVersion_); auto tx = std::make_shared(); tx->set_status(protocol::tsNEW); // Bytes that are not a serialized transaction, so deserialization fails. tx->set_rawtransaction("\x01\x02\x03", 3); peer->onMessage(tx); BEAST_EXPECT(peer->getCurrentFeeCharge() == resource::kFeeInvalidData); } void run() override { testFailureDeserializingTransactionIsCharged(); } }; BEAST_DEFINE_TESTSUITE(TMTransaction, overlay, xrpl); } // namespace xrpl::test