Refactor create element consistency check
This commit is contained in:
parent
50df5eefcc
commit
f50ca826aa
4 changed files with 79 additions and 7 deletions
|
@ -23,13 +23,7 @@ module ConsistencyValidations
|
||||||
|
|
||||||
# This is similar to above, just some validations don't apply
|
# This is similar to above, just some validations don't apply
|
||||||
def check_create_consistency(new, user)
|
def check_create_consistency(new, user)
|
||||||
if new.changeset.nil?
|
check_changeset_consistency(new.changeset, user)
|
||||||
raise OSM::APIChangesetMissingError
|
|
||||||
elsif new.changeset.user_id != user.id
|
|
||||||
raise OSM::APIUserChangesetMismatchError
|
|
||||||
elsif !new.changeset.open?
|
|
||||||
raise OSM::APIChangesetAlreadyClosedError, new.changeset
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|
|
@ -362,4 +362,30 @@ class NodeTest < ActiveSupport::TestCase
|
||||||
assert_equal relation_member2.relation.id, cr.second.id
|
assert_equal relation_member2.relation.id, cr.second.id
|
||||||
assert_equal relation_member3.relation.id, cr.third.id
|
assert_equal relation_member3.relation.id, cr.third.id
|
||||||
end
|
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
|
||||||
end
|
end
|
||||||
|
|
|
@ -250,4 +250,30 @@ class RelationTest < ActiveSupport::TestCase
|
||||||
end
|
end
|
||||||
end
|
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
|
||||||
end
|
end
|
||||||
|
|
|
@ -217,4 +217,30 @@ class WayTest < ActiveSupport::TestCase
|
||||||
assert_equal 1, cr.size
|
assert_equal 1, cr.size
|
||||||
assert_equal relation.id, cr.first.id
|
assert_equal relation.id, cr.first.id
|
||||||
end
|
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
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue