Mercurial > malikania
view tests/libmlk-db/account/main.cpp @ 199:9ef01392a7f1
tests: make a database test fixture, closes #939 @4h
Start PostgreSQL for each test in a clean directory and initialize a malikaniadb
within. Only enable unix domain sockets to avoid collision with a system
instance.
While here, move out the init script into a dedicated file until we find a good
solution for initializing databases and upgrading.
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 30 Oct 2018 13:21:55 +0100 |
parents | |
children |
line wrap: on
line source
/* * main.cpp -- test mlk::db::account * * Copyright (c) 2013-2018 David Demelier <markand@malikania.fr> * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #define BOOST_TEST_MODULE "mlk::db::account" #include <boost/test/unit_test.hpp> #include <malikania/db/account.hpp> #include <malikania/db/test/db_fixture.hpp> namespace mlk::db { namespace { BOOST_FIXTURE_TEST_SUITE(account_suite, test::db_fixture) BOOST_AUTO_TEST_CASE(simple) { { account ac("markand", "plop"); ac.set_email("markand@malikania.fr"); ac.set_firstname("David"); ac.set_lastname("Demelier"); BOOST_TEST(ac.is_draft()); ac.publish(); BOOST_TEST(ac.is_published()); } const auto ac = account::find_by_login("markand"); BOOST_TEST(ac.has_value()); BOOST_TEST(ac->is_published()); BOOST_TEST(ac->get_email() == "markand@malikania.fr"); BOOST_TEST(ac->get_firstname() == "David"); BOOST_TEST(ac->get_lastname() == "Demelier"); } BOOST_AUTO_TEST_CASE(not_found) { const auto ac = account::find_by_login("notexist"); BOOST_TEST(!ac); } BOOST_AUTO_TEST_SUITE_END() } // !namespace } // !mlk