1 #include <dballe/msg/tests.h> 3 #include <dballe/core/data.h> 4 #include <dballe/db/fwd.h> 5 #include <dballe/db/v7/fwd.h> 7 #include <dballe/db/summary.h> 15 impl::Messages messages_from_db(std::shared_ptr<db::Transaction> tr,
const dballe::Query& query);
16 impl::Messages messages_from_db(std::shared_ptr<db::Transaction> tr,
const char* query);
24 std::map<std::string, core::Data>
data;
29 void populate_db(
DB& db);
44 bool has_driver(
const std::string& backend);
50 static const auto format = db::Format::V7;
51 static std::shared_ptr<DB> create_db(
const std::string& backend,
bool wipe);
58 std::shared_ptr<typename DB::DB> db;
64 virtual void create_db();
72 std::shared_ptr<typename DB::TR> tr;
79 template<
typename DB,
typename TestData>
86 void create_db()
override 89 wassert(test_data.populate_db(*this->db));
105 using Actual::Actual;
108 void station_keys_match(
const DBStation& expected);
111 void data_context_matches(
const Data& expected);
119 if (
auto c = dynamic_cast<dballe::db::CursorStation*>(&_actual))
121 DBValues actual_values = c->get_values();
124 wassert(actual(c->get_values()) == expected);
126 else if (
auto c = dynamic_cast<dballe::CursorStationData*>(&_actual))
127 data_var_matches(expected.
var(c->get_varcode()));
128 else if (
auto c = dynamic_cast<dballe::CursorData*>(&_actual))
129 data_var_matches(expected.
var(c->get_varcode()));
135 data_var_matches(expected.
var(code));
143 if (
auto c = dynamic_cast<dballe::CursorStationData*>(&_actual))
144 data_matches(ds, c->get_varcode());
145 else if (
auto c = dynamic_cast<dballe::CursorData*>(&_actual))
146 data_matches(ds, c->get_varcode());
154 typedef std::function<void(const db::DBSummary&)> result_checker;
156 template<
typename DB>
162 void try_data_query(
const std::string& query,
unsigned expected);
165 void try_data_query(
const Query& query,
unsigned expected);
168 void try_station_query(
const std::string& query,
unsigned expected);
171 void try_summary_query(
const std::string& query,
unsigned expected, result_checker checker=
nullptr);
Cursor iterating over data values.
Definition: cursor.h:65
Forward declarations for public dballe/sql names.
const wreport::Var & var(wreport::Varcode code) const
Lookup a wreport::Var, throwing an exception if not found.
Definition: db/tests.h:69
Definition: db/tests.h:46
void data_var_matches(const DBValues &expected)
Check cursor data variable(s) after a query_data.
Definition: db/tests.h:118
Functions used to connect to DB-All.e and insert, query and delete data.
static const Data & downcast(const dballe::Data &data)
Return a reference to record downcasted as core::Record.
void data_var_matches(const Data &expected, wreport::Varcode code)
Check cursor data variable after a query_data.
Definition: db/tests.h:114
Collection of DBValue objects, indexed by wreport::Varcode.
Definition: values.h:191
bool vars_equal(const DBValues &o) const
Check if the variables are the same, regardless of the data_id.
Cursor iterating over summary entries.
Definition: cursor.h:84
Definition: db/tests.h:33
Definition: db/tests.h:94
void data_var_matches(const Values &expected, wreport::Varcode code)
Check cursor data variable after a query_data.
Definition: db/tests.h:134
Definition: db/tests.h:55
Definition: transaction.h:15
Base class for cursors that iterate over DB query results.
Definition: cursor.h:15
Cursor iterating over station data values.
Definition: cursor.h:55
Cursor iterating over stations.
Definition: cursor.h:46
Query used to filter DB-All.e data.
Definition: query.h:14
Test fixture used by old DB-All.e db tests.
Definition: db/tests.h:39
std::map< std::string, core::Data > data
Arbitrarily named data values.
Definition: db/tests.h:24
DB-ALLe database connection for database format V7.
Definition: db/v7/db.h:20
void data_matches(const Data &ds)
Check cursor data context and variable after a query_data.
Definition: db/tests.h:141
std::map< std::string, core::Data > stations
Arbitrarily named station values.
Definition: db/tests.h:22
Definition: db/tests.h:80
Key/value store where keys are strings and values are wreport variables.
Definition: data.h:17
Definition: db/tests.h:157
Structures used as input to database insert functions.
Base for datasets used to populate test databases.
Definition: db/tests.h:19
Collection of Value objects, indexed by wreport::Varcode.
Definition: values.h:176
Definition: db/tests.h:103