3604: Verify permission cache behavior in unsetup test
[arvados.git] / services / api / test / unit / owner_test.rb
index 2cb40630dd46c1ff904f83155f6f3f5dbd03c40d..c177bc3901cdc74db85d448b32222eb586bedcb1 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),
@@ -59,7 +73,7 @@ class OwnerTest < ActiveSupport::TestCase
     end
   end
 
-  ['users(:active)', 'groups(:afolder)'].each do |ofixt|
+  ['users(:active)', 'groups(:aproject)'].each do |ofixt|
     test "delete #{ofixt} that owns other objects" do
       o = eval ofixt
       assert_equal(true, Specimen.where(owner_uuid: o.uuid).any?,