X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/e19b02f69914c086f979ec31eb603bb3b456cd15..45216b83b108a3c48cdd8b1aaf898ccd93188507:/services/api/test/unit/owner_test.rb diff --git a/services/api/test/unit/owner_test.rb b/services/api/test/unit/owner_test.rb index 2cb40630dd..f159294f6b 100644 --- a/services/api/test/unit/owner_test.rb +++ b/services/api/test/unit/owner_test.rb @@ -24,11 +24,25 @@ class OwnerTest < ActiveSupport::TestCase assert Specimen.where(uuid: i.uuid).any?, "new item should really be in DB" end + test "create object with non-existent #{o_class} owner" do + assert_raises(ActiveRecord::RecordInvalid, + "create should fail with random owner_uuid") do + i = Specimen.create!(owner_uuid: o_class.generate_uuid) + end + + i = Specimen.create(owner_uuid: o_class.generate_uuid) + assert !i.valid?, "object with random owner_uuid should not be valid?" + + i = Specimen.new(owner_uuid: o_class.generate_uuid) + assert !i.valid?, "new item should not pass validation" + assert !i.uuid, "new item should not have an ID" + end + [User, Group].each do |new_o_class| test "change owner from legit #{o_class} to legit #{new_o_class} owner" do o = o_class.create i = Specimen.create(owner_uuid: o.uuid) - new_o = o_class.create + new_o = new_o_class.create assert(Specimen.where(uuid: i.uuid).any?, "new item should really be in DB") assert(i.update_attributes(owner_uuid: new_o.uuid),