aboutsummaryrefslogtreecommitdiff
path: root/test/unit/test_c_api.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-08-20 13:22:01 +0200
committerGitHub <noreply@github.com>2019-08-20 13:22:01 +0200
commit2c9c015a6529548f5a5d448c78bc9b565d751590 (patch)
tree2597c59e8270f1480785c97f7441ee0b295c29b3 /test/unit/test_c_api.cpp
parente52fc2aa58504e6f0658da821bdd543d7a39df34 (diff)
parentcad1c5cf61fc00759bf4ad17b0b34f57f4945de6 (diff)
downloadPROJ-2c9c015a6529548f5a5d448c78bc9b565d751590.tar.gz
PROJ-2c9c015a6529548f5a5d448c78bc9b565d751590.zip
Merge pull request #1547 from rouault/json_export
Add CRS JSON export (refs #1545)
Diffstat (limited to 'test/unit/test_c_api.cpp')
-rw-r--r--test/unit/test_c_api.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp
index e2d013b1..813b9f01 100644
--- a/test/unit/test_c_api.cpp
+++ b/test/unit/test_c_api.cpp
@@ -3555,4 +3555,59 @@ TEST_F(CApi, proj_concatoperation_get_step) {
}
}
+// ---------------------------------------------------------------------------
+
+TEST_F(CApi, proj_as_projjson) {
+ auto obj = proj_create(
+ m_ctxt,
+ Ellipsoid::WGS84->exportToJSON(JSONFormatter::create().get()).c_str());
+ ObjectKeeper keeper(obj);
+ ASSERT_NE(obj, nullptr);
+
+ {
+ auto projjson = proj_as_projjson(m_ctxt, obj, nullptr);
+ ASSERT_NE(projjson, nullptr);
+ EXPECT_EQ(std::string(projjson),
+ "{\n"
+ " \"$schema\": "
+ "\"https://proj.org/schemas/v0.1/projjson.schema.json\",\n"
+ " \"type\": \"Ellipsoid\",\n"
+ " \"name\": \"WGS 84\",\n"
+ " \"semi_major_axis\": 6378137,\n"
+ " \"inverse_flattening\": 298.257223563,\n"
+ " \"id\": {\n"
+ " \"authority\": \"EPSG\",\n"
+ " \"code\": 7030\n"
+ " }\n"
+ "}");
+ }
+ {
+ const char *const options[] = {"INDENTATION_WIDTH=4", "SCHEMA=",
+ nullptr};
+ auto projjson = proj_as_projjson(m_ctxt, obj, options);
+ ASSERT_NE(projjson, nullptr);
+ EXPECT_EQ(std::string(projjson),
+ "{\n"
+ " \"type\": \"Ellipsoid\",\n"
+ " \"name\": \"WGS 84\",\n"
+ " \"semi_major_axis\": 6378137,\n"
+ " \"inverse_flattening\": 298.257223563,\n"
+ " \"id\": {\n"
+ " \"authority\": \"EPSG\",\n"
+ " \"code\": 7030\n"
+ " }\n"
+ "}");
+ }
+ {
+ const char *const options[] = {"MULTILINE=NO", "SCHEMA=", nullptr};
+ auto projjson = proj_as_projjson(m_ctxt, obj, options);
+ ASSERT_NE(projjson, nullptr);
+ EXPECT_EQ(std::string(projjson),
+ "{\"type\":\"Ellipsoid\",\"name\":\"WGS 84\","
+ "\"semi_major_axis\":6378137,"
+ "\"inverse_flattening\":298.257223563,"
+ "\"id\":{\"authority\":\"EPSG\",\"code\":7030}}");
+ }
+}
+
} // namespace