Merge branch '2755-api-collection-permissions'
[arvados.git] / services / api / test / unit / owner_test.rb
index 2cb40630dd46c1ff904f83155f6f3f5dbd03c40d..f159294f6b64c3b3f705f31ea3e91729a593be74 100644 (file)
@@ -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),