[teiid-commits] teiid SVN: r3459 - in trunk/engine/src: test/java/org/teiid/dqp/internal/process and 1 other directory.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Fri Sep 9 07:24:59 EDT 2011


Author: shawkins
Date: 2011-09-09 07:24:58 -0400 (Fri, 09 Sep 2011)
New Revision: 3459

Modified:
   trunk/engine/src/main/java/org/teiid/query/function/source/SecuritySystemFunctions.java
   trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
Log:
adding a unit test for hasrole

Modified: trunk/engine/src/main/java/org/teiid/query/function/source/SecuritySystemFunctions.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/function/source/SecuritySystemFunctions.java	2011-09-09 02:28:24 UTC (rev 3458)
+++ trunk/engine/src/main/java/org/teiid/query/function/source/SecuritySystemFunctions.java	2011-09-09 11:24:58 UTC (rev 3459)
@@ -31,7 +31,7 @@
 
 public class SecuritySystemFunctions {
 
-    public static boolean hasRole(CommandContext context, Object roleName) throws FunctionExecutionException {
+    public static boolean hasRole(CommandContext context, String roleName) throws FunctionExecutionException {
         SecurityFunctionEvaluator eval = context.getSecurityFunctionEvaluator();
         
         if (eval == null) {
@@ -39,13 +39,13 @@
         }
         
         try {
-            return eval.hasRole(SecurityFunctionEvaluator.DATA_ROLE, (String)roleName);
+            return eval.hasRole(SecurityFunctionEvaluator.DATA_ROLE, roleName);
         } catch (TeiidComponentException err) {
             throw new FunctionExecutionException(err, err.getMessage());
         }
     }
 	
-    public static boolean hasRole(CommandContext context, Object roleType, Object roleName) throws FunctionExecutionException {
+    public static boolean hasRole(CommandContext context, String roleType, String roleName) throws FunctionExecutionException {
         
         SecurityFunctionEvaluator eval = context.getSecurityFunctionEvaluator();
         
@@ -54,7 +54,7 @@
         }
         
         try {
-            return eval.hasRole((String)roleType, (String)roleName);
+            return eval.hasRole(roleType, roleName);
         } catch (TeiidComponentException err) {
             throw new FunctionExecutionException(err, err.getMessage());
         }

Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java	2011-09-09 02:28:24 UTC (rev 3458)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java	2011-09-09 11:24:58 UTC (rev 3459)
@@ -25,6 +25,7 @@
 import static org.junit.Assert.*;
 
 import java.sql.ResultSet;
+import java.util.HashMap;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
@@ -35,6 +36,8 @@
 import org.junit.Ignore;
 import org.junit.Test;
 import org.mockito.Mockito;
+import org.teiid.adminapi.DataPolicy;
+import org.teiid.adminapi.impl.DataPolicyMetadata;
 import org.teiid.api.exception.query.QueryResolverException;
 import org.teiid.cache.CacheConfiguration;
 import org.teiid.cache.DefaultCacheFactory;
@@ -104,6 +107,9 @@
         DQPWorkContext context = RealMetadataFactory.buildWorkContext(RealMetadataFactory.createTransformationMetadata(RealMetadataFactory.exampleBQTCached().getMetadataStore(), "bqt"));
         context.getVDB().getModel("BQT3").setVisible(false); //$NON-NLS-1$
         context.getVDB().getModel("VQT").setVisible(false); //$NON-NLS-1$
+        HashMap<String, DataPolicy> policies = new HashMap<String, DataPolicy>();
+        policies.put("foo", new DataPolicyMetadata());
+        context.setPolicies(policies);
 
         ConnectorManagerRepository repo = Mockito.mock(ConnectorManagerRepository.class);
         context.getVDB().addAttchment(ConnectorManagerRepository.class, repo);
@@ -124,6 +130,9 @@
         config.setMaxActivePlans(1);
         config.setUserRequestSourceConcurrency(2);
         config.setResultsetCacheConfig(new CacheConfiguration());
+        DefaultAuthorizationValidator daa = new DefaultAuthorizationValidator();
+        daa.setPolicyDecider(new DataRolePolicyDecider());
+        config.setAuthorizationValidator(daa);
         core.start(config);
         core.getPrepPlanCache().setModTime(1);
         core.getRsCache().setModTime(1);
@@ -151,6 +160,20 @@
     @Test public void testRequest1() throws Exception {
     	helpExecute("SELECT IntKey FROM BQT1.SmallA", "a"); //$NON-NLS-1$ //$NON-NLS-2$
     }
+    
+    @Test public void testHasRole() throws Exception {
+        String sql = "SELECT hasRole('foo')"; //$NON-NLS-1$
+        String userName = "logon"; //$NON-NLS-1$
+        ResultsMessage rm = helpExecute(sql, userName);
+        assertTrue((Boolean)rm.getResults()[0].get(0));
+    }
+    
+    @Test public void testNotHasRole() throws Exception {
+        String sql = "SELECT hasRole('bar')"; //$NON-NLS-1$
+        String userName = "logon"; //$NON-NLS-1$
+        ResultsMessage rm = helpExecute(sql, userName);
+        assertFalse((Boolean)rm.getResults()[0].get(0));
+    }
 
     @Test public void testUser1() throws Exception {
         String sql = "SELECT IntKey FROM BQT1.SmallA WHERE user() = 'logon'"; //$NON-NLS-1$



More information about the teiid-commits mailing list