libinvdb/unittest/initdb.cc

57 lines
1.1 KiB
C++

#include "item.hh"
#include "item_impl.hh"
#include "dbsession.hh"
#include "dbobjectvec.hh"
#include "dbobjecttree.hh"
#include "dbobjecttree_impl.hh"
#include "dbobjecttreeptr.hh"
#include "category.hh"
#include <gtest/gtest.h>
#include <iostream>
using namespace inventory;
using namespace datamodel;
using namespace inventory::db;
std::string g_test_db_url;
class DBInitTest : public ::testing::Test {
public:
DBInitTest()
: m_session(g_test_db_url.c_str()) {}
virtual void setUp() {}
virtual void tearDown() {}
protected:
DBSession m_session;
};
TEST_F(DBInitTest, ItemInit) {
Item::create_tables(m_session);
}
TEST_F(DBInitTest, CategoryInit) {
Category::create_tables(m_session);
}
TEST_F(DBInitTest, ItemInsert) {
Item root;
root.name = "Root object";
root.insert(m_session);
}
TEST_F(DBInitTest, ItemRetrieve) {
DBContainerPtr<Item> items = Item::get_all(m_session);
ASSERT_STREQ((*items)[0]->name.c_str(), "Root object");
}
int main(int argc, char *argv[]) {
::testing::InitGoogleTest(&argc, argv);
g_test_db_url = argv[1];
return RUN_ALL_TESTS();
}