Skip to content

Commit e75de80

Browse files
authored
Merge pull request #435 from mmd-osm/patch/cleanup20
Fixed compiler warning, added test case for negative version
2 parents 715db73 + 1214aee commit e75de80

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

include/cgimap/api06/changeset_upload/osmobject.hpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <charconv>
1717
#include <map>
1818
#include <optional>
19+
#include <string_view>
1920

2021
#include <fmt/core.h>
2122

@@ -46,7 +47,7 @@ namespace api06 {
4647
m_changeset = changeset;
4748
}
4849

49-
void set_version(osm_version_t version) {
50+
void set_version(int64_t version) {
5051

5152
if (version < 0) {
5253
throw payload_error("Version may not be negative");
@@ -66,7 +67,7 @@ namespace api06 {
6667

6768
// Setters with string conversions
6869

69-
void set_changeset(const std::string &changeset) {
70+
void set_changeset(std::string_view changeset) {
7071

7172
osm_changeset_id_t _changeset = 0;
7273

@@ -82,7 +83,7 @@ namespace api06 {
8283
throw payload_error("Unexpected parsing error");
8384
}
8485

85-
void set_version(const std::string &version) {
86+
void set_version(std::string_view version) {
8687

8788
int64_t _version = 0;
8889

@@ -98,7 +99,7 @@ namespace api06 {
9899
throw payload_error("Unexpected parsing error");
99100
}
100101

101-
void set_id(const std::string &id) {
102+
void set_id(std::string_view id) {
102103

103104
osm_nwr_signed_id_t _id = 0;
104105

test/test_parse_osmchange_xml_input.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,12 @@ TEST_CASE("Modify node, invalid version", "[osmchange][node][xml]") {
190190
REQUIRE_THROWS_AS(process_testmsg(R"(<osmChange><modify><node changeset="858" version="0" id="123"/></modify></osmChange>)"), http::bad_request);
191191
}
192192

193+
TEST_CASE("Modify node, invalid, negative version", "[osmchange][node][xml]") {
194+
REQUIRE_THROWS_MATCHES(process_testmsg(R"(<osmChange><modify><node changeset="858" version="-1" id="123"/></modify></osmChange>)"), http::bad_request,
195+
Catch::Message("Version may not be negative at line 1, column 63"));
196+
}
197+
198+
193199
TEST_CASE("Delete node", "[osmchange][node][xml]") {
194200
REQUIRE_NOTHROW(process_testmsg(R"(<osmChange><delete><node changeset="858" version="1" id="123"/></delete></osmChange>)"));
195201
}

0 commit comments

Comments
 (0)