#include "util/exception.hpp" #include "util/geojson_validation.hpp" #include "util/timezones.hpp" #include #include BOOST_AUTO_TEST_SUITE(timezoner) using namespace osrm; using namespace osrm::updater; BOOST_AUTO_TEST_CASE(timezoner_test) { const char json[] = "{ \"type\" : \"FeatureCollection\", \"features\": [" "{ \"type\" : \"Feature\"," "\"properties\" : { \"TZID\" : \"Europe/Berlin\"}, \"geometry\" : { \"type\": \"polygon\", " "\"coordinates\": [[[8.28369,48.88277], [8.57757, " "48.88277], [8.57757, 49.07206], [8.28369, " "49.07206], [8.28369, 48.88277]]] }} ]}"; std::time_t now = time(0); BOOST_CHECK_NO_THROW(Timezoner tz(json, now)); boost::filesystem::path test_path(TEST_DATA_DIR "/test.geojson"); BOOST_CHECK_NO_THROW(Timezoner tz(test_path, now)); // missing opening bracket const char bad[] = "\"type\" : \"FeatureCollection\", \"features\": [" "{ \"type\" : \"Feature\"," "\"properties\" : { \"TZID\" : \"Europe/Berlin\"}, \"geometry\" : { \"type\": \"polygon\", " "\"coordinates\": [[[8.28369,48.88277], [8.57757, " "48.88277], [8.57757, 49.07206], [8.28369, " "49.07206], [8.28369, 48.88277]]] }} ]}"; BOOST_CHECK_THROW(Timezoner tz(bad, now), util::exception); // missing/malformed FeatureCollection type field const char missing_type[] = "{ \"FeatureCollection\", \"features\": [" "{ \"type\" : \"Feature\"," "\"properties\" : { \"TZID\" : \"Europe/Berlin\"}, \"geometry\" : { \"type\": \"polygon\", " "\"coordinates\": [[[8.28369,48.88277], [8.57757, " "48.88277], [8.57757, 49.07206], [8.28369, " "49.07206], [8.28369, 48.88277]]] }} ]}"; BOOST_CHECK_THROW(Timezoner tz(missing_type, now), util::exception); const char missing_featc[] = "{ \"type\" : \"Collection\", \"features\": [" "{ \"type\" : \"Feature\"," "\"properties\" : { \"TZID\" : \"Europe/Berlin\"}, \"geometry\" : { \"type\": \"polygon\", " "\"coordinates\": [[[8.28369,48.88277], [8.57757, " "48.88277], [8.57757, 49.07206], [8.28369, " "49.07206], [8.28369, 48.88277]]] }} ]}"; BOOST_CHECK_THROW(Timezoner tz(missing_featc, now), util::exception); } BOOST_AUTO_TEST_SUITE_END()