1 #define BOOST_TEST_MODULE (databaseinterface test)
3 #include "boost/test/auto_unit_test.hpp"
12 #include "otsdaq-core/ConfigurationInterface/DatabaseConfigurationInterface.h"
14 #include "artdaq-database/JsonDocument/JSONDocument.h"
16 #include "artdaq-database/ConfigurationDB/configuration_common.h"
17 #include "artdaq-database/ConfigurationDB/dispatch_common.h"
19 #include "artdaq-database/JsonDocument/JSONDocument.h"
20 #include "artdaq-database/JsonDocument/JSONDocumentBuilder.h"
21 #include "artdaq-database/StorageProviders/FileSystemDB/provider_filedb.h"
22 #include "artdaq-database/StorageProviders/MongoDB/provider_mongodb.h"
24 #include "artdaq-database/DataFormats/Json/json_reader.h"
30 void printJSON(std::stringstream& ss)
const { ss << _json; }
31 int fillFromJSON(std::string
const& newjson) {
35 std::string _json =
"{ \"testJSON\" : 123 }";
76 std::cout <<
"setup fixture\n";
80 std::cout <<
"setup fixture\n";
83 void updateConfigCount(
int count) { _oldConfigCount = count; }
85 int version() {
return _version; }
86 int oldConfigCount() {
return _oldConfigCount; }
88 const int _version = (srand(time(NULL)), rand() % 99999 + 100000);
90 int _oldConfigCount = 0;
97 BOOST_AUTO_TEST_SUITE(databaseinterface_test)
100 std::cout <<
"TestData::version=" << fixture.version() <<
"\n";
105 std::shared_ptr<ConfigurationBase> cfg1 = std::make_shared<TestConfiguration001>();
108 cfg1->getViewP()->setVersion(fixture.version());
110 BOOST_CHECK_EQUAL(cfg1->getViewP()->getVersion(), fixture.version());
114 ifc.saveActiveVersion(cfg1.get());
120 std::shared_ptr<ConfigurationBase> cfg1 = std::make_shared<TestConfiguration001>();
129 std::shared_ptr<ConfigurationBase> cfg1 = std::make_shared<TestConfiguration001>();
130 std::shared_ptr<ConfigurationBase> cfg2 = std::make_shared<TestConfiguration002>();
134 cfg1->getViewP()->setVersion(fixture.version() + 1);
135 cfg2->getViewP()->setVersion(fixture.version() + 2);
137 ifc.saveActiveVersion(cfg1.get());
139 ifc.saveActiveVersion(cfg2.get());
141 auto map = DatabaseConfigurationInterface::config_version_map_t{};
142 map[cfg1->getConfigurationName()] = cfg1->getView().getVersion();
143 map[cfg2->getConfigurationName()] = cfg2->getView().getVersion();
145 auto configName = std::string{
"config"} + std::to_string(fixture.version());
147 auto list = ifc.getAllConfigurationGroupNames();
149 fixture.updateConfigCount(list.size());
151 ifc.saveConfigurationGroup(map, configName);
159 auto configName = std::string{
"config"} + std::to_string(fixture.version());
161 auto map = ifc.getConfigurationGroupMembers(configName);
163 BOOST_CHECK_EQUAL(map.size(), 2);
165 std::shared_ptr<ConfigurationBase> cfg1 = std::make_shared<TestConfiguration001>();
166 std::shared_ptr<ConfigurationBase> cfg2 = std::make_shared<TestConfiguration002>();
168 BOOST_CHECK_EQUAL(map.at(cfg1->getConfigurationName()), fixture.version() + 1);
169 BOOST_CHECK_EQUAL(map.at(cfg2->getConfigurationName()), fixture.version() + 2);
177 auto list = ifc.getAllConfigurationGroupNames();
179 BOOST_CHECK_EQUAL(list.size(), fixture.oldConfigCount() + 1);
181 auto configName = std::string{
"config"} + std::to_string(fixture.version());
183 auto found = (std::find(list.begin(), list.end(), configName) != list.end());
185 BOOST_CHECK_EQUAL(found,
true);
193 auto list = ifc.getAllConfigurationNames();
195 BOOST_CHECK_EQUAL(list.size(), 2);
197 std::shared_ptr<ConfigurationBase> cfg1 = std::make_shared<TestConfiguration001>();
198 std::shared_ptr<ConfigurationBase> cfg2 = std::make_shared<TestConfiguration002>();
200 auto found1 = (std::find(list.begin(), list.end(), cfg1->getConfigurationName()) != list.end());
202 BOOST_CHECK_EQUAL(found1,
true);
204 auto found2 = (std::find(list.begin(), list.end(), cfg2->getConfigurationName()) != list.end());
206 BOOST_CHECK_EQUAL(found2,
true);
214 std::shared_ptr<ConfigurationBase> cfg1 = std::make_shared<TestConfiguration001>();
216 auto list = ifc.getVersions(cfg1.get());
218 auto found1 = (std::find(list.begin(), list.end(), fixture.version()) != list.end());
220 BOOST_CHECK_EQUAL(found1,
true);
222 auto found2 = (std::find(list.begin(), list.end(), fixture.version() + 1) != list.end());
224 BOOST_CHECK_EQUAL(found2,
true);
232 std::shared_ptr<ConfigurationBase> cfg1 = std::make_shared<TestConfiguration001>();
234 auto version = ifc.findLatestVersion(cfg1.get());
236 auto list = ifc.getVersions(cfg1.get());
238 std::cout <<
"Found versions\n";
240 for(
auto version:list) { std::cout << version <<
", "; }
242 std::cout <<
"\nGot latest version: " << version <<
"\n";
247 BOOST_AUTO_TEST_SUITE_END()