From f08603905eb87dde8e037d5ea6adfaf709445126 Mon Sep 17 00:00:00 2001
From: brinn <brinn>
Date: Sun, 24 Feb 2013 17:39:05 +0000
Subject: [PATCH] Fix a bug in SampleUpdatesCollectionPredicate for instance
 samples; adapt unit test expectations.

SVN: 28425
---
 .../predicate/SampleTechIdCollectionPredicate.java    |  7 ++++++-
 .../predicate/SampleUpdatesCollectionPredicate.java   |  7 ++++---
 .../predicate/SampleOwnerIdentifierPredicateTest.java | 11 ++++-------
 .../SampleUpdatesCollectionPredicateTest.java         |  4 ++--
 4 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleTechIdCollectionPredicate.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleTechIdCollectionPredicate.java
index 1cb0ce2a4aa..a5e4a1d7451 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleTechIdCollectionPredicate.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleTechIdCollectionPredicate.java
@@ -37,9 +37,14 @@ public class SampleTechIdCollectionPredicate extends
         DelegatedPredicate<List<SampleOwnerIdentifier>, List<TechId>>
 {
 
+    public SampleTechIdCollectionPredicate(boolean isReadAccess)
+    {
+        super(new SampleOwnerIdentifierCollectionPredicate(isReadAccess));
+    }
+
     public SampleTechIdCollectionPredicate()
     {
-        super(new SampleOwnerIdentifierCollectionPredicate(true));
+        this(true);
     }
 
     @Override
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicate.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicate.java
index 3c51be158d2..ddfc654ce3a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicate.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicate.java
@@ -19,9 +19,9 @@ package ch.systemsx.cisd.openbis.generic.server.authorization.predicate;
 import java.util.ArrayList;
 import java.util.List;
 
+import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.openbis.common.conversation.context.ServiceConversationsThreadContext;
 import ch.systemsx.cisd.openbis.common.conversation.progress.IServiceConversationProgressListener;
-import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.openbis.generic.server.authorization.IAuthorizationDataProvider;
 import ch.systemsx.cisd.openbis.generic.server.authorization.RoleWithIdentifier;
 import ch.systemsx.cisd.openbis.generic.server.authorization.annotation.ShouldFlattenCollections;
@@ -49,9 +49,10 @@ public class SampleUpdatesCollectionPredicate extends AbstractPredicate<List<Sam
 
     public SampleUpdatesCollectionPredicate()
     {
-        sampleTechIdCollectionPredicate = new SampleTechIdCollectionPredicate();
+        this.sampleTechIdCollectionPredicate = new SampleTechIdCollectionPredicate(false);
         this.spacePredicate = new SpaceIdentifierPredicate();
-        sampleOwnerIdentifierCollectionPredicate = new SampleOwnerIdentifierCollectionPredicate();
+        this.sampleOwnerIdentifierCollectionPredicate =
+                new SampleOwnerIdentifierCollectionPredicate(false);
     }
 
     @Override
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleOwnerIdentifierPredicateTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleOwnerIdentifierPredicateTest.java
index 2cadacebdc0..c760e53e00f 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleOwnerIdentifierPredicateTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleOwnerIdentifierPredicateTest.java
@@ -23,7 +23,6 @@ import org.testng.annotations.Test;
 import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.openbis.generic.server.authorization.AuthorizationTestCase;
 import ch.systemsx.cisd.openbis.generic.server.authorization.RoleWithIdentifier;
-import ch.systemsx.cisd.openbis.generic.server.authorization.predicate.SampleOwnerIdentifierPredicate;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleOwnerIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
@@ -84,7 +83,7 @@ public class SampleOwnerIdentifierPredicateTest extends AuthorizationTestCase
     }
 
     @Test
-    public void testNotAllowedDatabaseInstance()
+    public void testGenericAllowedDatabaseInstance()
     {
         SampleOwnerIdentifierPredicate predicate = new SampleOwnerIdentifierPredicate();
         PersonPE person = createPerson();
@@ -95,14 +94,12 @@ public class SampleOwnerIdentifierPredicateTest extends AuthorizationTestCase
 
         Status status = predicate.evaluate(person, roles, identifier);
 
-        assertEquals(true, status.isError());
-        assertEquals("User 'megapixel' does not have enough privileges to read "
-                + "from database instance 'DB2'.", status.tryGetErrorMessage());
+        assertEquals(Status.OK, status);
         context.assertIsSatisfied();
     }
 
     @Test
-    public void testAllowedGroup()
+    public void testAllowedSpace()
     {
         SampleOwnerIdentifierPredicate predicate = new SampleOwnerIdentifierPredicate();
         PersonPE person = createPerson();
@@ -119,7 +116,7 @@ public class SampleOwnerIdentifierPredicateTest extends AuthorizationTestCase
     }
 
     @Test
-    public void testNotAllowedGroup()
+    public void testNotAllowedSpace()
     {
         SampleOwnerIdentifierPredicate predicate = new SampleOwnerIdentifierPredicate();
         PersonPE person = createPerson();
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicateTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicateTest.java
index d401f4bfd35..d5e51444c30 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicateTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/authorization/predicate/SampleUpdatesCollectionPredicateTest.java
@@ -99,8 +99,8 @@ public class SampleUpdatesCollectionPredicateTest extends AuthorizationTestCase
                 predicate.evaluate(createPerson(), createRoles(false), Arrays.asList(sampleWithId,
                         sampleWithIdAndExperiment, sampleWithIdAndIdentifer));
 
-        assertEquals("ERROR: \"User 'megapixel' does not have enough privileges to read "
-                + "from database instance 'DB2'.\"", result.toString());
+        assertEquals("ERROR: \"User 'megapixel' does not have enough privileges to modify "
+                + "database instance 'DB2'.\"", result.toString());
         context.assertIsSatisfied();
     }
 
-- 
GitLab