get timzone unit tests to pass get validation tests to pass get updater and timezone unit test files to build with multiline string formatting update validateFeature to validate polygon outterings and tzid add tzid to all test fixtures of geojson features add txid to test fixture added tzid to hongkon test data but it already has timezone property
49 lines
2.4 KiB
C++
49 lines
2.4 KiB
C++
#include "util/exception.hpp"
|
|
#include "util/geojson_validation.hpp"
|
|
#include "util/timezones.hpp"
|
|
|
|
#include <boost/filesystem/path.hpp>
|
|
#include <boost/test/unit_test.hpp>
|
|
|
|
BOOST_AUTO_TEST_SUITE(timezoner)
|
|
|
|
using namespace osrm;
|
|
using namespace osrm::updater;
|
|
|
|
BOOST_AUTO_TEST_CASE(timezoner_test)
|
|
{
|
|
auto json = R"({ "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
|
|
auto bad = R"({ "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
|
|
auto missing_type = R"({ "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);
|
|
|
|
auto missing_featc = R"({ "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()
|