#include "Basics/datetime.h" #include "catch.hpp" #include using namespace arangodb; using namespace arangodb::basics; SCENARIO("testing", "[datetime]") { using namespace std::chrono; using namespace date; tp_sys_clock_ms tp; std::vector dates{"2017", "2017-11", "2017-11-12"}; std::vector times{"", "T12:34", "T12:34+10:22", "T12:34-10:22", "T12:34:56", "T12:34:56+10:22", "T12:34:56-10:22", "T12:34:56.789", "T12:34:56.789+10:22", "T12:34:56.789-10:22"}; std::vector datesToTest{}; for (auto const& d : dates) { for (auto const& t : times) { datesToTest.push_back(d+t); } } std::vector datesToFail{"2017-01-01-12", "2017-01-01:12:34", "2017-01-01:12:34Z+10:20", "2017-01-01:12:34Z-10:20"}; for (auto const& dateTime : datesToTest) { GIVEN(dateTime) { bool ret = parseDateTime(dateTime, tp); THEN(dateTime) { REQUIRE(ret == true); } } } for (auto const& dateTime : datesToFail) { GIVEN(dateTime) { bool ret = parseDateTime(dateTime, tp); THEN(dateTime) { REQUIRE(ret == false); } } } }