From a46efc9a78e71e7f7ba21fab693ff59c4850b514 Mon Sep 17 00:00:00 2001 From: gulliver Date: Sun, 11 Dec 2022 17:04:37 +0100 Subject: [PATCH] reformatted sources --- test/test.cpp | 548 ++++++++++++++++++++++++++------------------------ 1 file changed, 281 insertions(+), 267 deletions(-) diff --git a/test/test.cpp b/test/test.cpp index 111f03e..d4b88b9 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -1,368 +1,382 @@ -#include #include "crow/json.h" #include "model.hpp" +#include -TEST_CASE( "PublicKey::to_json", "[to_json]" ) { - PublicKey k {"daaa63ddda38c189b8c49020c8276adbe0a695685a...", - "65537" }; +TEST_CASE("PublicKey::to_json", "[to_json]") { + PublicKey k{"daaa63ddda38c189b8c49020c8276adbe0a695685a...", "65537"}; auto json = k.to_json(); - REQUIRE( json["modulus"].dump() == "\"" + k.modulus + "\"" ); - REQUIRE( json["public_exponent"].dump() == "\"" + k.public_exponent+"\"" ); - REQUIRE( json["type"].dump() == "\"rsa public key\"" ); - REQUIRE( json.keys().size() == 3 ); + REQUIRE(json["modulus"].dump() == "\"" + k.modulus + "\""); + REQUIRE(json["public_exponent"].dump() == "\"" + k.public_exponent + "\""); + REQUIRE(json["type"].dump() == "\"rsa public key\""); + REQUIRE(json.keys().size() == 3); } -TEST_CASE( "RequestCDDSerial::from_string", "[from_string]" ) { +TEST_CASE("RequestCDDSerial::from_string", "[from_string]") { // good case - std::string good = - "{" - "\"message_reference\": 100000," - "\"type\": \"request cdd serial\"" - "}"; + std::string good = "{" + "\"message_reference\": 100000," + "\"type\": \"request cdd serial\"" + "}"; auto res = RequestCDDSerial::from_string(good); - REQUIRE(res.has_value()==true); + REQUIRE(res.has_value() == true); REQUIRE(res->message_reference == 100000); // bad cases res = RequestCDDSerial::from_string(""); - REQUIRE(res.has_value()==false); + REQUIRE(res.has_value() == false); // invalid type - res = RequestCDDSerial::from_string( "{" - "\"message_reference\": 100000," - "\"type\": \"request something wrong\"" - "}"); - REQUIRE(res.has_value()==false); + res = RequestCDDSerial::from_string("{" + "\"message_reference\": 100000," + "\"type\": \"request something wrong\"" + "}"); + REQUIRE(res.has_value() == false); // invalid attribute name res = RequestCDDSerial::from_string("{" - "\"x_message_reference\": 100000," - "}"); - REQUIRE(res.has_value()==false); + "\"x_message_reference\": 100000," + "}"); + REQUIRE(res.has_value() == false); } -TEST_CASE( "RequestCDDC::from_string", "[from_string]" ) { +TEST_CASE("RequestCDDC::from_string", "[from_string]") { // good case auto res = RequestCDDC::from_string("{" - "\"cdd_serial\": 1," - "\"message_reference\": 100001," - "\"type\": \"request cddc\"" - "}"); - REQUIRE(res.has_value()==true); + "\"cdd_serial\": 1," + "\"message_reference\": 100001," + "\"type\": \"request cddc\"" + "}"); + REQUIRE(res.has_value() == true); REQUIRE(res->cdd_serial == 1); REQUIRE(res->message_reference == 100001); - + // bad cases res = RequestCDDC::from_string(""); - REQUIRE(res.has_value()==false); + REQUIRE(res.has_value() == false); // invalid type - res = RequestCDDC::from_string( "{" - "\"cdd_serial\": 1," - "\"message_reference\": 100001," - "\"type\": \"wrong type\"," - "}"); - REQUIRE(res.has_value()==false); + res = RequestCDDC::from_string("{" + "\"cdd_serial\": 1," + "\"message_reference\": 100001," + "\"type\": \"wrong type\"," + "}"); + REQUIRE(res.has_value() == false); // invalid attribute name res = RequestCDDC::from_string("{" - "\"cdd_serial\": 1," - "\"x_ message_reference\": 100001," - "\"type\": \"request cddc\"," - "}"); - REQUIRE(res.has_value()==false); + "\"cdd_serial\": 1," + "\"x_ message_reference\": 100001," + "\"type\": \"request cddc\"," + "}"); + REQUIRE(res.has_value() == false); } -TEST_CASE( "RequestMKCs::from_string", "[from_string]" ) { +TEST_CASE("RequestMKCs::from_string", "[from_string]") { // good case - auto res = RequestMKCs::from_string( "{" - "\"denominations\": [1, 2, 5]," - "\"message_reference\": 100002," - "\"mint_key_ids\": []," - "\"type\": \"request mint key certificates\"" - "}"); - const std::vector EXPECTED_DENOMINATIONS = {1,2,5}; + auto res = + RequestMKCs::from_string("{" + "\"denominations\": [1, 2, 5]," + "\"message_reference\": 100002," + "\"mint_key_ids\": []," + "\"type\": \"request mint key certificates\"" + "}"); + const std::vector EXPECTED_DENOMINATIONS = {1, 2, 5}; const std::vector EXPECTED_MINT_KEY_IDS = {}; - REQUIRE(res.has_value()==true); + REQUIRE(res.has_value() == true); REQUIRE(res->denominations == EXPECTED_DENOMINATIONS); REQUIRE(res->message_reference == 100002); REQUIRE(res->mint_key_ids == EXPECTED_MINT_KEY_IDS); - + // bad cases res = RequestMKCs::from_string(""); - REQUIRE(res.has_value()==false); + REQUIRE(res.has_value() == false); // invalid type - res = RequestMKCs::from_string( "{" - "\"denominations\": [1, 2, 5]," - "\"message_reference\": 100002," - "\"mint_key_ids\": []," - "\"type\": \"request wrong type\"" - "}"); - REQUIRE(res.has_value()==false); + res = RequestMKCs::from_string("{" + "\"denominations\": [1, 2, 5]," + "\"message_reference\": 100002," + "\"mint_key_ids\": []," + "\"type\": \"request wrong type\"" + "}"); + REQUIRE(res.has_value() == false); // invalid attribute name - res = RequestMKCs::from_string("{" - "\"denominations\": [1, 2, 5]," - "\"x_message_reference\": 100002," // WRONG NAME - "\"mint_key_ids\": []," - "\"type\": \"request wrong type\"" - "}"); - REQUIRE(res.has_value()==false); - + res = + RequestMKCs::from_string("{" + "\"denominations\": [1, 2, 5]," + "\"x_message_reference\": 100002," // WRONG NAME + "\"mint_key_ids\": []," + "\"type\": \"request wrong type\"" + "}"); + REQUIRE(res.has_value() == false); + // invalid attribute type (not an array as expected) res = RequestMKCs::from_string("{" - "\"denominations\": 1," - "\"message_reference\": 100002," // WRONG NAME - "\"mint_key_ids\": []," - "\"type\": \"request wrong type\"" - "}"); - REQUIRE(res.has_value()==false); - + "\"denominations\": 1," + "\"message_reference\": 100002," // WRONG NAME + "\"mint_key_ids\": []," + "\"type\": \"request wrong type\"" + "}"); + REQUIRE(res.has_value() == false); } -TEST_CASE( "Blind::from_json", "[from_string]" ) { +TEST_CASE("Blind::from_json", "[from_string]") { - auto good = crow::json::load("{" - "\"blinded_payload_hash\": \"924edb672c3345492f38341ff86b57181da4c673ef...\"," - "\"mint_key_id\": \"1ceb977bb531c65f133ab8b0d60862b17369d96\"," - "\"reference\": \"a0\"," - "\"type\": \"blinded payload hash\"" - "}"); + auto good = crow::json::load( + "{" + "\"blinded_payload_hash\": " + "\"924edb672c3345492f38341ff86b57181da4c673ef...\"," + "\"mint_key_id\": \"1ceb977bb531c65f133ab8b0d60862b17369d96\"," + "\"reference\": \"a0\"," + "\"type\": \"blinded payload hash\"" + "}"); auto res = Blind::from_json(good); - REQUIRE(res.has_value()==true); - REQUIRE(res->blinded_payload_hash== - "924edb672c3345492f38341ff86b57181da4c673ef..."); - REQUIRE(res->mint_key_id=="1ceb977bb531c65f133ab8b0d60862b17369d96"); - REQUIRE(res->reference=="a0"); - // bad cases - // wrong_type["blinded_payload_hash"]= "924edb672c3345492f38341ff86b57181da4c673ef..."; - // wrong_type["mint_key_id"]= "1ceb977bb531c65f133ab8b0d60862b17369d96"; - // wrong_type["reference"] = "a0"; + REQUIRE(res.has_value() == true); + REQUIRE(res->blinded_payload_hash == + "924edb672c3345492f38341ff86b57181da4c673ef..."); + REQUIRE(res->mint_key_id == "1ceb977bb531c65f133ab8b0d60862b17369d96"); + REQUIRE(res->reference == "a0"); + // bad cases + // wrong_type["blinded_payload_hash"]= + // "924edb672c3345492f38341ff86b57181da4c673ef..."; wrong_type["mint_key_id"]= + // "1ceb977bb531c65f133ab8b0d60862b17369d96"; wrong_type["reference"] = "a0"; // wrong_type["type"]= "wrong type"; // res = Blind::from_json(wrong_type); } -TEST_CASE( "RequestMint::from_string", "[from_string]" ) { +TEST_CASE("RequestMint::from_string", "[from_string]") { // good case - auto res = RequestMint::from_string( "{" - "\"blinds\": [" - "{" - "\"blinded_payload_hash\": \"924edb672c3345492f38341ff86b57181da4c673ef...\"," - "\"mint_key_id\": \"1ceb977bb531c65f133ab8b0d60862b17369d96\"," - "\"reference\": \"a0\"," - "\"type\": \"blinded payload hash\"" - "}," - "{" - "\"blinded_payload_hash\": \"95db92e1c46ebea5edec5e508a831263de6fb78b4c...\"," - "\"mint_key_id\": \"f2864e5cd937dbaa4825e73a81062de162143682\"," - "\"reference\": \"a1\"," - "\"type\": \"blinded payload hash\"" - "}," - "{" - "\"blinded_payload_hash\": \"10afac98ac43eb40e996c621d5db4d2238348e3f74...\"," - "\"mint_key_id\": \"897a16bf12bd9ba474ef7be0e3a53553a7b4ece8\"," - "\"reference\": \"a2\"," - "\"type\": \"blinded payload hash\"" - "}" - "]," - "\"message_reference\": 100003," - "\"transaction_reference\": \"b2221a58008a05a6c4647159c324c985\"," - "\"type\": \"request mint\"" - "}"); + auto res = RequestMint::from_string( + "{" + "\"blinds\": [" + "{" + "\"blinded_payload_hash\": " + "\"924edb672c3345492f38341ff86b57181da4c673ef...\"," + "\"mint_key_id\": \"1ceb977bb531c65f133ab8b0d60862b17369d96\"," + "\"reference\": \"a0\"," + "\"type\": \"blinded payload hash\"" + "}," + "{" + "\"blinded_payload_hash\": " + "\"95db92e1c46ebea5edec5e508a831263de6fb78b4c...\"," + "\"mint_key_id\": \"f2864e5cd937dbaa4825e73a81062de162143682\"," + "\"reference\": \"a1\"," + "\"type\": \"blinded payload hash\"" + "}," + "{" + "\"blinded_payload_hash\": " + "\"10afac98ac43eb40e996c621d5db4d2238348e3f74...\"," + "\"mint_key_id\": \"897a16bf12bd9ba474ef7be0e3a53553a7b4ece8\"," + "\"reference\": \"a2\"," + "\"type\": \"blinded payload hash\"" + "}" + "]," + "\"message_reference\": 100003," + "\"transaction_reference\": \"b2221a58008a05a6c4647159c324c985\"," + "\"type\": \"request mint\"" + "}"); - REQUIRE(res.has_value()==true); - REQUIRE(res->message_reference==100003); + REQUIRE(res.has_value() == true); + REQUIRE(res->message_reference == 100003); REQUIRE(res->transaction_reference == "b2221a58008a05a6c4647159c324c985"); /// \todo check blinds - + // bad cases res = RequestMint::from_string(""); - REQUIRE(res.has_value()==false); + REQUIRE(res.has_value() == false); // invalid type - res = RequestMint::from_string( "{" - "\"blinds\": []," - "\"message_reference\": 100003," - "\"transaction_reference\": \"b2221a58008a05a6c4647159c324c985\"," - "\"type\": \"request wrong type\"" - "}"); - REQUIRE(res.has_value()==false); + res = RequestMint::from_string( + "{" + "\"blinds\": []," + "\"message_reference\": 100003," + "\"transaction_reference\": \"b2221a58008a05a6c4647159c324c985\"," + "\"type\": \"request wrong type\"" + "}"); + REQUIRE(res.has_value() == false); // invalid attribute name - res = RequestMint::from_string("{" - "\"blinds\": []," - "\"x_message_reference\": 100003," - "\"transaction_reference\": \"b2221a58008a05a6c4647159c324c985\"," - "\"type\": \"request mint\"" - "}"); - REQUIRE(res.has_value()==false); - + res = RequestMint::from_string( + "{" + "\"blinds\": []," + "\"x_message_reference\": 100003," + "\"transaction_reference\": \"b2221a58008a05a6c4647159c324c985\"," + "\"type\": \"request mint\"" + "}"); + REQUIRE(res.has_value() == false); + // invalid attribute type (not an array as expected) - res = RequestMint::from_string("{" - "\"blinds\": 1," - "\"message_reference\": 100003," - "\"transaction_reference\": \"b2221a58008a05a6c4647159c324c985\"," - "\"type\": \"request mint\"" - "}"); - REQUIRE(res.has_value()==false); + res = RequestMint::from_string( + "{" + "\"blinds\": 1," + "\"message_reference\": 100003," + "\"transaction_reference\": \"b2221a58008a05a6c4647159c324c985\"," + "\"type\": \"request mint\"" + "}"); + REQUIRE(res.has_value() == false); } -TEST_CASE( "RequestRenew::from_string", "[from_string]" ) { +TEST_CASE("RequestRenew::from_string", "[from_string]") { auto res = RequestRenew::from_string( - "{" - " \"blinds\": [" - " {" - " \"blinded_payload_hash\": \"7ed0cda1c1b36f544514b12848b8436974b7b9f6c7...\"," - " \"mint_key_id\": \"f2864e5cd937dbaa4825e73a81062de162143682\"," - " \"reference\": \"b0\"," - " \"type\": \"blinded payload hash\"" - " }" - " ]," - " \"coins\": [" - " {" - " \"payload\": {" - " \"cdd_location\": \"https://opencent.org\"," - " \"denomination\": 1," - " \"issuer_id\": \"23ed956e629ba35f0002eaf833ea436aea7db5c2\"," - " \"mint_key_id\": \"1ceb977bb531c65f133ab8b0d60862b17369d96\"," - " \"protocol_version\": \"https://opencoin.org/1.0\"," - " \"serial\": \"cd613e30d8f16adf91b7584a2265b1f5\"," - " \"type\": \"payload\"" - " }," - " \"signature\": \"2ec0af339566b19fb9867b491ce58025dcefcab649...\"," - " \"type\": \"coin\"" - " }" - " ]," - " \"message_reference\": 100004," - " \"transaction_reference\": \"ad45f23d3b1a11df587fd2803bab6c39\"," - " \"type\": \"request renew\"" - "}"); - REQUIRE(res.has_value()==true); + "{" + " \"blinds\": [" + " {" + " \"blinded_payload_hash\": " + "\"7ed0cda1c1b36f544514b12848b8436974b7b9f6c7...\"," + " \"mint_key_id\": \"f2864e5cd937dbaa4825e73a81062de162143682\"," + " \"reference\": \"b0\"," + " \"type\": \"blinded payload hash\"" + " }" + " ]," + " \"coins\": [" + " {" + " \"payload\": {" + " \"cdd_location\": \"https://opencent.org\"," + " \"denomination\": 1," + " \"issuer_id\": \"23ed956e629ba35f0002eaf833ea436aea7db5c2\"," + " \"mint_key_id\": \"1ceb977bb531c65f133ab8b0d60862b17369d96\"," + " \"protocol_version\": \"https://opencoin.org/1.0\"," + " \"serial\": \"cd613e30d8f16adf91b7584a2265b1f5\"," + " \"type\": \"payload\"" + " }," + " \"signature\": \"2ec0af339566b19fb9867b491ce58025dcefcab649...\"," + " \"type\": \"coin\"" + " }" + " ]," + " \"message_reference\": 100004," + " \"transaction_reference\": \"ad45f23d3b1a11df587fd2803bab6c39\"," + " \"type\": \"request renew\"" + "}"); + REQUIRE(res.has_value() == true); // invalid attribute name - res = RequestRenew::from_string("{" - "\"blinds\": []," - "\"coins\": []," - "\"x_message_reference\": 100003," - "\"transaction_reference\": \"b2221a58008a05a6c4647159c324c985\"," - "\"type\": \"request mint\"" - "}"); - REQUIRE(res.has_value()==false); - + res = RequestRenew::from_string( + "{" + "\"blinds\": []," + "\"coins\": []," + "\"x_message_reference\": 100003," + "\"transaction_reference\": \"b2221a58008a05a6c4647159c324c985\"," + "\"type\": \"request mint\"" + "}"); + REQUIRE(res.has_value() == false); + // invalid attribute type (not an array as expected) - res = RequestRenew::from_string("{" - "\"blinds\": 1," - "\"coins\": []," - "\"message_reference\": 100003," - "\"transaction_reference\": \"b2221a58008a05a6c4647159c324c985\"," - "\"type\": \"request mint\"" - "}"); - REQUIRE(res.has_value()==false); + res = RequestRenew::from_string( + "{" + "\"blinds\": 1," + "\"coins\": []," + "\"message_reference\": 100003," + "\"transaction_reference\": \"b2221a58008a05a6c4647159c324c985\"," + "\"type\": \"request mint\"" + "}"); + REQUIRE(res.has_value() == false); } -TEST_CASE( "RequestResume::from_string", "[from_string]" ) { +TEST_CASE("RequestResume::from_string", "[from_string]") { // good case - auto res = RequestResume::from_string( "{" - "\"message_reference\": 100005," - "\"transaction_reference\": \"ad45f23d3b1a11df587fd2803bab6c39\"," - "\"type\": \"request resume\"" - "}"); + auto res = RequestResume::from_string( + "{" + "\"message_reference\": 100005," + "\"transaction_reference\": \"ad45f23d3b1a11df587fd2803bab6c39\"," + "\"type\": \"request resume\"" + "}"); + + REQUIRE(res.has_value() == true); + REQUIRE(res->message_reference == 100005); + REQUIRE(res->transaction_reference == "ad45f23d3b1a11df587fd2803bab6c39"); - REQUIRE(res.has_value()==true); - REQUIRE(res->message_reference==100005); - REQUIRE(res->transaction_reference=="ad45f23d3b1a11df587fd2803bab6c39"); - // bad cases res = RequestResume::from_string(""); - REQUIRE(res.has_value()==false); + REQUIRE(res.has_value() == false); // invalid type - res = RequestResume::from_string( "{" - "\"message_reference\": 100005," - "\"transaction_reference\": \"ad45f23d3b1a11df587fd2803bab6c39\"," - "\"type\": \"Wrong type\"" - "}"); - REQUIRE(res.has_value()==false); + res = RequestResume::from_string( + "{" + "\"message_reference\": 100005," + "\"transaction_reference\": \"ad45f23d3b1a11df587fd2803bab6c39\"," + "\"type\": \"Wrong type\"" + "}"); + REQUIRE(res.has_value() == false); // invalid attribute name res = RequestResume::from_string("{" - "\"message_reference\": 100005," - "\"WRONG_ATTR_transaction_reference\": \"ad45f23d3b1a11df587fd2803bab6c39\"," - "\"type\": \"request resume\"" - "}"); - REQUIRE(res.has_value()==false); + "\"message_reference\": 100005," + "\"WRONG_ATTR_transaction_reference\": " + "\"ad45f23d3b1a11df587fd2803bab6c39\"," + "\"type\": \"request resume\"" + "}"); + REQUIRE(res.has_value() == false); } -TEST_CASE( "RequestRedeem::from_string", "[from_string]" ) { +TEST_CASE("RequestRedeem::from_string", "[from_string]") { - auto res = RequestRedeem::from_string( "{" - "\"coins\": [" - "{" - "\"payload\": {" - "\"cdd_location\": \"https://opencent.org\"," - "\"denomination\": 2," - "\"issuer_id\": \"23ed956e629ba35f0002eaf833ea436aea7db5c2\"," - "\"mint_key_id\": \"f2864e5cd937dbaa4825e73a81062de162143682\"," - "\"protocol_version\": \"https://opencoin.org/1.0\"," - "\"serial\": \"cd447e35b8b6d8fe442e3d437204e52d\"," - "\"type\": \"payload\"" - "}," - "\"signature\": \"11b6bfa18134c300f4440df1db17a08fa71a071b71...\"," - "\"type\": \"coin\"" - "}," - "{" - "\"payload\": {" - "\"cdd_location\": \"https://opencent.org\"," - "\"denomination\": 2," - "\"issuer_id\": \"23ed956e629ba35f0002eaf833ea436aea7db5c2\"," - "\"mint_key_id\": \"f2864e5cd937dbaa4825e73a81062de162143682\"," - "\"protocol_version\": \"https://opencoin.org/1.0\"," - "\"serial\": \"5b6e6e307d4bedc51431193e6c3f339\"," - "\"type\": \"payload\"" - "}," - "\"signature\": \"a6dd7b7f1f12c4e411289e8ea0355f24a8597bbc38...\"," - "\"type\": \"coin\"" - "}" - "]," - "\"message_reference\": 100006," - "\"type\": \"request redeem\"" - "}"); + auto res = RequestRedeem::from_string( + "{" + "\"coins\": [" + "{" + "\"payload\": {" + "\"cdd_location\": \"https://opencent.org\"," + "\"denomination\": 2," + "\"issuer_id\": \"23ed956e629ba35f0002eaf833ea436aea7db5c2\"," + "\"mint_key_id\": \"f2864e5cd937dbaa4825e73a81062de162143682\"," + "\"protocol_version\": \"https://opencoin.org/1.0\"," + "\"serial\": \"cd447e35b8b6d8fe442e3d437204e52d\"," + "\"type\": \"payload\"" + "}," + "\"signature\": \"11b6bfa18134c300f4440df1db17a08fa71a071b71...\"," + "\"type\": \"coin\"" + "}," + "{" + "\"payload\": {" + "\"cdd_location\": \"https://opencent.org\"," + "\"denomination\": 2," + "\"issuer_id\": \"23ed956e629ba35f0002eaf833ea436aea7db5c2\"," + "\"mint_key_id\": \"f2864e5cd937dbaa4825e73a81062de162143682\"," + "\"protocol_version\": \"https://opencoin.org/1.0\"," + "\"serial\": \"5b6e6e307d4bedc51431193e6c3f339\"," + "\"type\": \"payload\"" + "}," + "\"signature\": \"a6dd7b7f1f12c4e411289e8ea0355f24a8597bbc38...\"," + "\"type\": \"coin\"" + "}" + "]," + "\"message_reference\": 100006," + "\"type\": \"request redeem\"" + "}"); + + REQUIRE(res.has_value() == true); + REQUIRE(res->message_reference == 100006); - REQUIRE(res.has_value()==true); - REQUIRE(res->message_reference==100006); - // bad cases res = RequestRedeem::from_string(""); - REQUIRE(res.has_value()==false); + REQUIRE(res.has_value() == false); // invalid type - res = RequestRedeem::from_string( "{" - "\"coins\": []," - "\"message_reference\": 100006," - "\"type\": \"WRONG TYPE\"" - "}"); - REQUIRE(res.has_value()==false); + res = RequestRedeem::from_string("{" + "\"coins\": []," + "\"message_reference\": 100006," + "\"type\": \"WRONG TYPE\"" + "}"); + REQUIRE(res.has_value() == false); // invalid attribute name res = RequestRedeem::from_string("{" - "\"INVALID_coins\": []," - "\"message_reference\": 100006," - "\"type\": \"request redeem\"" - "}"); - REQUIRE(res.has_value()==false); + "\"INVALID_coins\": []," + "\"message_reference\": 100006," + "\"type\": \"request redeem\"" + "}"); + REQUIRE(res.has_value() == false); // invalid coin type res = RequestRedeem::from_string("{" - "\"coins\": 1," - "\"message_reference\": 100006," - "\"type\": \"request redeem\"" - "}"); - REQUIRE(res.has_value()==false); + "\"coins\": 1," + "\"message_reference\": 100006," + "\"type\": \"request redeem\"" + "}"); + REQUIRE(res.has_value() == false); } -