MCPcopy Create free account
hub / github.com/boostorg/json / testDescribed

Method testDescribed

test/value_to.cpp:447–520  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

445
446 template< class... Context >
447 static
448 void testDescribed( Context const& ... ctx )
449 {
450 ignore_unused( ctx... );
451#ifdef BOOST_DESCRIBE_CXX14
452 {
453 value jv = {{"n", -78}, {"d", 0.125}};
454 auto res = try_value_to<::value_to_test_ns::T6>(
455 jv, ctx... );
456 BOOST_TEST( res );
457 BOOST_TEST( res->n == -78 );
458 BOOST_TEST( res->d == 0.125 );
459
460 jv.as_object()["x"] = 0;
461 res = try_value_to<::value_to_test_ns::T6>(
462 jv, ctx... );
463 BOOST_TEST( res );
464 }
465 {
466 value jv = {{"n", 1}, {"d", 2}, {"s", "xyz"}, {"b", true}};
467 auto res = try_value_to<::value_to_test_ns::T7>(
468 jv, ctx... );
469 BOOST_TEST( res );
470 BOOST_TEST( res->n == 1 );
471 BOOST_TEST( res->d == 2 );
472 BOOST_TEST( res->s == "xyz" );
473 BOOST_TEST( res->get_b() == true );
474 }
475
476 BOOST_TEST_THROWS_WITH_LOCATION(
477 value_to<::value_to_test_ns::T6>( value(1), ctx... ));
478 BOOST_TEST_THROWS_WITH_LOCATION(
479 value_to<::value_to_test_ns::T6>( value{{"x", 0}}, ctx... ));
480 BOOST_TEST_THROWS_WITH_LOCATION(
481 value_to<::value_to_test_ns::T6>(
482 value{{"n", 0}, {"x", 0}}, ctx... ));
483
484 {
485 value jv = "a";
486 auto e1 = value_to<::value_to_test_ns::E1>( jv, ctx... );
487 BOOST_TEST( e1 == ::value_to_test_ns::E1::a );
488
489 jv = "b";
490 e1 = value_to<::value_to_test_ns::E1>( jv, ctx... );
491 BOOST_TEST( e1 == ::value_to_test_ns::E1::b );
492 }
493
494 BOOST_TEST_THROWS_WITH_LOCATION(
495 value_to<::value_to_test_ns::E1>( value(1), ctx... ));
496 BOOST_TEST_THROWS_WITH_LOCATION(
497 value_to<::value_to_test_ns::E1>( value("x"), ctx... ));
498
499 {
500#ifndef BOOST_NO_CXX17_HDR_OPTIONAL
501 value jv = {{"n", -78}, {"d", 0.125}};
502 auto res = try_value_to<::value_to_test_ns::T8>(
503 jv, ctx... );
504 BOOST_TEST( res );

Callers

nothing calls this directly

Calls 2

get_bMethod · 0.80
valueClass · 0.70

Tested by

no test coverage detected