summaryrefslogtreecommitdiff
path: root/test/json.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/json.cpp')
-rw-r--r--test/json.cpp104
1 files changed, 0 insertions, 104 deletions
diff --git a/test/json.cpp b/test/json.cpp
deleted file mode 100644
index fe924ab..0000000
--- a/test/json.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright (c) 2022 Klemens D. Morgenstern
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/sqlite/json.hpp>
-#include <boost/sqlite/connection.hpp>
-#include <boost/sqlite/function.hpp>
-#include <boost/json.hpp>
-#include "test.hpp"
-
-using namespace boost;
-
-
-BOOST_AUTO_TEST_SUITE(json_);
-
-BOOST_AUTO_TEST_CASE(to_value)
-{
- sqlite::connection conn(":memory:");
- conn.execute(
-#include "test-db.sql"
- );
-
- auto q = conn.prepare("select 'foo', json_array($1, '2', null)").execute(std::make_tuple(1));
-
- sqlite::row r = q.current();
-
- BOOST_CHECK(!sqlite::is_json(r[0]));
- BOOST_CHECK( sqlite::is_json(r[1]));
- BOOST_CHECK(sqlite::as_json(r[1]) == (json::array{1, "2", nullptr}));
- BOOST_CHECK(json::value_from(r[1]) == (json::array{1, "2", nullptr}));
- BOOST_CHECK(!q.read_next());
- BOOST_CHECK(!q.read_next());
-
- // language=sqlite
- q = conn.query(R"(select first_name, "name" from library inner join author a on a.id = library.author order by library.name asc)");
-
- auto js = json::value_from(std::move(q));
-
- json::array aa {
- {
- {"first_name", "vinnie"},
- {"name", "beast"}
- },
- {
- {"first_name", "peter"},
- {"name", "mp11"}
- },
- {
- {"first_name", "ruben"},
- {"name", "mysql"}
- },
- {
- {"first_name","peter"},
- {"name", "variant2"}
- },
- };
-
- BOOST_CHECK(aa == aa);
-};
-
-BOOST_AUTO_TEST_CASE(blob)
-{
- sqlite::connection conn(":memory:");
- BOOST_CHECK_THROW(json::value_from(conn.prepare("select $1;").execute({sqlite::zero_blob(1024)})), std::invalid_argument);
- BOOST_CHECK(nullptr == json::value_from(conn.query("select null;").current().at(0)));
- BOOST_CHECK(1234 == json::value_from(conn.query("select 1234;"). current().at(0)));
- BOOST_CHECK(12.4 == json::value_from(conn.query("select 12.4;"). current().at(0)));
-}
-
-BOOST_AUTO_TEST_CASE(value)
-{
- sqlite::connection conn(":memory:");
- BOOST_CHECK_THROW(json::value_from(conn.prepare("select $1;").execute({sqlite::zero_blob(1024)}).current().at(0)), std::invalid_argument);
- BOOST_CHECK(nullptr == json::value_from(conn.query("select null;").current().at(0).get_value()));
- BOOST_CHECK(1234 == json::value_from(conn.query("select 1234;"). current().at(0).get_value()));
- BOOST_CHECK(12.4 == json::value_from(conn.query("select 12.4;"). current().at(0).get_value()));
- BOOST_CHECK("txt" == json::value_from(conn.query("select 'txt';"). current().at(0).get_value()));
-}
-
-
-BOOST_AUTO_TEST_CASE(subtype)
-{
- sqlite::connection conn(":memory:");
- BOOST_CHECK(!sqlite::is_json(conn.prepare("select $1;").execute({"foobar"}).current().at(0)));
- BOOST_CHECK(sqlite::is_json(conn.prepare("select json_array($1);").execute({"foobar"}).current().at(0)));
-}
-
-
-BOOST_AUTO_TEST_CASE(function)
-{
- sqlite::connection conn(":memory:");
- sqlite::create_scalar_function(conn, "my_json_parse",
- [](boost::sqlite::context<> , boost::span<boost::sqlite::value, 1u> s)
- {
- return json::parse(s[0].get_text());
- });
-
- BOOST_CHECK(sqlite::is_json(conn.prepare("select my_json_parse($1);")
- .execute({R"({"foo" : 42, "bar" : "xyz"})"}).current().at(0)));
-}
-
-
-BOOST_AUTO_TEST_SUITE_END(); \ No newline at end of file