#include <node/warnings.h>
#include <util/translation.h>
#include <test/util/setup_common.h>
#include <boost/test/unit_test.hpp>
BOOST_FIXTURE_TEST_SUITE(node_warnings_tests, BasicTestingSetup)
BOOST_AUTO_TEST_CASE(warnings)
{
node::Warnings warnings;
warnings.Unset(node::Warning::PRE_RELEASE_TEST_BUILD);
const auto warning_1{node::Warning::CLOCK_OUT_OF_SYNC};
const auto warning_2{node::Warning::FATAL_INTERNAL_ERROR};
BOOST_CHECK(warnings.GetMessages().size() == 0);
BOOST_CHECK(warnings.Set(warning_1, _("warning 1")));
BOOST_CHECK(warnings.Set(warning_2, _("warning 2")));
BOOST_CHECK(warnings.Unset(warning_2));
BOOST_CHECK(!warnings.Unset(warning_2));
BOOST_CHECK(warnings.Set(warning_2, _("warning 2 - revision 1")));
BOOST_CHECK(!warnings.Set(warning_2, _("warning 2 - revision 2")));
const auto messages{warnings.GetMessages()};
BOOST_CHECK(messages.size() == 2);
BOOST_CHECK(messages[0].original == "warning 1");
BOOST_CHECK(messages[1].original == "warning 2 - revision 1");
BOOST_CHECK(warnings.Unset(warning_1));
BOOST_CHECK(warnings.Unset(warning_2));
BOOST_CHECK(warnings.GetMessages().size() == 0);
}
BOOST_AUTO_TEST_SUITE_END()