@@ -666,5 +666,66 @@ BOOST_AUTO_TEST_CASE (compile_time_named_fields_no_adapt_struct) {
666666 BOOST_REQUIRE (vals == val_deserialized);
667667 }
668668
669+ {
670+ using pre ::cx::key_value_pair;
671+ using namespace datamodel ;
672+ using namespace std ::literals;
673+
674+ auto val = std::make_tuple (
675+ key_value_pair<" ssh_public_key" , std::string> {" key" s},
676+ key_value_pair<" environment_name" , std::string> {" env" s},
677+ key_value_pair<" environment_zip_hash" , std::string> {" zip_hash" s},
678+ key_value_pair<" job_size" , std::size_t > {434343 },
679+ key_value_pair<" environment_zip" , std::string> {" zip" s},
680+ key_value_pair<" user" , cashier> {{ .section =" wine & spirits" , .checkout_number =27 }}
681+ );
682+
683+ auto val_json = pre::json::to_json (val);
684+ std::cout << val_json.dump (2 ) << std::endl;
685+
686+ auto val_deserialized = pre ::json::from_json<decltype (val)>(val_json);
687+
688+ auto val_reserialized = pre::json::to_json (val_deserialized);
689+ std::cout << val_reserialized.dump (2 ) << std::endl;
690+
691+ BOOST_REQUIRE (val == val_deserialized);
692+ }
693+
694+
695+ {
696+ using pre ::cx::key_value_pair;
697+ using namespace datamodel ;
698+ using namespace std ::literals;
699+
700+ auto val = std::make_tuple (
701+ key_value_pair<" ssh_public_key" , std::string> {" key" s},
702+ key_value_pair<" environment_name" , std::string> {" env" s},
703+ key_value_pair<" environment_zip_hash" , std::string> {" zip_hash" s},
704+ key_value_pair<" job_size" , std::size_t > {434343 },
705+ key_value_pair<" environment_zip" , std::string> {" zip" s},
706+ key_value_pair<" user" , cashier> {{ .section =" wine & spirits" , .checkout_number =27 }}
707+ );
708+
709+ std::vector vals { val };
710+ vals.push_back (std::make_tuple (
711+ key_value_pair<" ssh_public_key" , std::string> {" yoooo" s},
712+ key_value_pair<" environment_name" , std::string> {" woui" s},
713+ key_value_pair<" environment_zip_hash" , std::string> {" noooooo" s},
714+ key_value_pair<" job_size" , std::size_t > {540210 },
715+ key_value_pair<" environment_zip" , std::string> {" timeeeee" s},
716+ key_value_pair<" user" , cashier> {{ .section =" Gemüse" , .checkout_number =3486 }}
717+ ));
718+
719+ auto val_json = pre::json::to_json (vals);
720+ std::cout << val_json.dump (2 ) << std::endl;
721+
722+ auto val_deserialized = pre ::json::from_json<decltype (vals)>(val_json);
723+
724+ auto val_reserialized = pre::json::to_json (val_deserialized);
725+ std::cout << val_reserialized.dump (2 ) << std::endl;
726+
727+ BOOST_REQUIRE (vals == val_deserialized);
728+ }
729+
669730
670731}
0 commit comments