Merge remote-tracking branch 'upstream/pull/4640'

This commit is contained in:
Tom Hughes 2024-04-01 18:42:33 +01:00
commit d8a2794c2c
7 changed files with 261 additions and 26 deletions

View file

@ -362,4 +362,86 @@ class NodeTest < ActiveSupport::TestCase
assert_equal relation_member2.relation.id, cr.second.id
assert_equal relation_member3.relation.id, cr.third.id
end
test "raises missing changeset exception when creating" do
user = create(:user)
node = Node.new
assert_raises OSM::APIChangesetMissingError do
node.create_with_history(user)
end
end
test "raises user-changeset mismatch exception when creating" do
user = create(:user)
changeset = create(:changeset)
node = Node.new(:changeset => changeset)
assert_raises OSM::APIUserChangesetMismatchError do
node.create_with_history(user)
end
end
test "raises already closed changeset exception when creating" do
user = create(:user)
changeset = create(:changeset, :closed, :user => user)
node = Node.new(:changeset => changeset)
assert_raises OSM::APIChangesetAlreadyClosedError do
node.create_with_history(user)
end
end
test "raises id precondition exception when updating" do
user = create(:user)
node = Node.new(:id => 23)
new_node = Node.new(:id => 42)
assert_raises OSM::APIPreconditionFailedError do
node.update_from(new_node, user)
end
end
test "raises version mismatch exception when updating" do
user = create(:user)
node = Node.new(:id => 42, :version => 7)
new_node = Node.new(:id => 42, :version => 12)
assert_raises OSM::APIVersionMismatchError do
node.update_from(new_node, user)
end
end
test "raises missing changeset exception when updating" do
user = create(:user)
node = Node.new(:id => 42, :version => 12)
new_node = Node.new(:id => 42, :version => 12)
assert_raises OSM::APIChangesetMissingError do
node.update_from(new_node, user)
end
end
test "raises user-changeset mismatch exception when updating" do
user = create(:user)
changeset = create(:changeset)
node = Node.new(:id => 42, :version => 12)
new_node = Node.new(:id => 42, :version => 12, :changeset => changeset)
assert_raises OSM::APIUserChangesetMismatchError do
node.update_from(new_node, user)
end
end
test "raises already closed changeset exception when updating" do
user = create(:user)
changeset = create(:changeset, :closed, :user => user)
node = Node.new(:id => 42, :version => 12)
new_node = Node.new(:id => 42, :version => 12, :changeset => changeset)
assert_raises OSM::APIChangesetAlreadyClosedError do
node.update_from(new_node, user)
end
end
test "raises id precondition exception when deleting" do
user = create(:user)
node = Node.new(:id => 23, :visible => true)
new_node = Node.new(:id => 42, :visible => false)
assert_raises OSM::APIPreconditionFailedError do
node.delete_with_history!(new_node, user)
end
end
end

View file

@ -250,4 +250,86 @@ class RelationTest < ActiveSupport::TestCase
end
end
end
test "raises missing changeset exception when creating" do
user = create(:user)
relation = Relation.new
assert_raises OSM::APIChangesetMissingError do
relation.create_with_history(user)
end
end
test "raises user-changeset mismatch exception when creating" do
user = create(:user)
changeset = create(:changeset)
relation = Relation.new(:changeset => changeset)
assert_raises OSM::APIUserChangesetMismatchError do
relation.create_with_history(user)
end
end
test "raises already closed changeset exception when creating" do
user = create(:user)
changeset = create(:changeset, :closed, :user => user)
relation = Relation.new(:changeset => changeset)
assert_raises OSM::APIChangesetAlreadyClosedError do
relation.create_with_history(user)
end
end
test "raises id precondition exception when updating" do
user = create(:user)
relation = Relation.new(:id => 23)
new_relation = Relation.new(:id => 42)
assert_raises OSM::APIPreconditionFailedError do
relation.update_from(new_relation, user)
end
end
test "raises version mismatch exception when updating" do
user = create(:user)
relation = Relation.new(:id => 42, :version => 7)
new_relation = Relation.new(:id => 42, :version => 12)
assert_raises OSM::APIVersionMismatchError do
relation.update_from(new_relation, user)
end
end
test "raises missing changeset exception when updating" do
user = create(:user)
relation = Relation.new(:id => 42, :version => 12)
new_relation = Relation.new(:id => 42, :version => 12)
assert_raises OSM::APIChangesetMissingError do
relation.update_from(new_relation, user)
end
end
test "raises user-changeset mismatch exception when updating" do
user = create(:user)
changeset = create(:changeset)
relation = Relation.new(:id => 42, :version => 12)
new_relation = Relation.new(:id => 42, :version => 12, :changeset => changeset)
assert_raises OSM::APIUserChangesetMismatchError do
relation.update_from(new_relation, user)
end
end
test "raises already closed changeset exception when updating" do
user = create(:user)
changeset = create(:changeset, :closed, :user => user)
relation = Relation.new(:id => 42, :version => 12)
new_relation = Relation.new(:id => 42, :version => 12, :changeset => changeset)
assert_raises OSM::APIChangesetAlreadyClosedError do
relation.update_from(new_relation, user)
end
end
test "raises id precondition exception when deleting" do
user = create(:user)
relation = Relation.new(:id => 23, :visible => true)
new_relation = Relation.new(:id => 42, :visible => false)
assert_raises OSM::APIPreconditionFailedError do
relation.delete_with_history!(new_relation, user)
end
end
end

View file

@ -217,4 +217,86 @@ class WayTest < ActiveSupport::TestCase
assert_equal 1, cr.size
assert_equal relation.id, cr.first.id
end
test "raises missing changeset exception when creating" do
user = create(:user)
way = Way.new
assert_raises OSM::APIChangesetMissingError do
way.create_with_history(user)
end
end
test "raises user-changeset mismatch exception when creating" do
user = create(:user)
changeset = create(:changeset)
way = Way.new(:changeset => changeset)
assert_raises OSM::APIUserChangesetMismatchError do
way.create_with_history(user)
end
end
test "raises already closed changeset exception when creating" do
user = create(:user)
changeset = create(:changeset, :closed, :user => user)
way = Way.new(:changeset => changeset)
assert_raises OSM::APIChangesetAlreadyClosedError do
way.create_with_history(user)
end
end
test "raises id precondition exception when updating" do
user = create(:user)
way = Way.new(:id => 23)
new_way = Way.new(:id => 42)
assert_raises OSM::APIPreconditionFailedError do
way.update_from(new_way, user)
end
end
test "raises version mismatch exception when updating" do
user = create(:user)
way = Way.new(:id => 42, :version => 7)
new_way = Way.new(:id => 42, :version => 12)
assert_raises OSM::APIVersionMismatchError do
way.update_from(new_way, user)
end
end
test "raises missing changeset exception when updating" do
user = create(:user)
way = Way.new(:id => 42, :version => 12)
new_way = Way.new(:id => 42, :version => 12)
assert_raises OSM::APIChangesetMissingError do
way.update_from(new_way, user)
end
end
test "raises user-changeset mismatch exception when updating" do
user = create(:user)
changeset = create(:changeset)
way = Way.new(:id => 42, :version => 12)
new_way = Way.new(:id => 42, :version => 12, :changeset => changeset)
assert_raises OSM::APIUserChangesetMismatchError do
way.update_from(new_way, user)
end
end
test "raises already closed changeset exception when updating" do
user = create(:user)
changeset = create(:changeset, :closed, :user => user)
way = Way.new(:id => 42, :version => 12)
new_way = Way.new(:id => 42, :version => 12, :changeset => changeset)
assert_raises OSM::APIChangesetAlreadyClosedError do
way.update_from(new_way, user)
end
end
test "raises id precondition exception when deleting" do
user = create(:user)
way = Way.new(:id => 23, :visible => true)
new_way = Way.new(:id => 42, :visible => false)
assert_raises OSM::APIPreconditionFailedError do
way.delete_with_history!(new_way, user)
end
end
end