X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/f50ca826aad559c77f948ccca61cbdc0bbddf3d1..0b7435ab32b3271ae000894f6798cc087b3c058c:/test/models/node_test.rb?ds=sidebyside diff --git a/test/models/node_test.rb b/test/models/node_test.rb index dd2411554..94cb5ec81 100644 --- a/test/models/node_test.rb +++ b/test/models/node_test.rb @@ -388,4 +388,60 @@ class NodeTest < ActiveSupport::TestCase 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