Improve coverage of cadi-aaf
[aaf/authz.git] / cadi / aaf / src / test / java / org / onap / aaf / cadi / aaf / test / JU_PermEval.java
index 29ce741..9433cef 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 package org.onap.aaf.cadi.aaf.test;
 
 import static org.junit.Assert.*;
+import static org.hamcrest.CoreMatchers.*;
+import org.junit.*;
 
-import org.junit.AfterClass;
-import org.junit.Test;
 import org.onap.aaf.cadi.aaf.PermEval;
 
 public class JU_PermEval {
 
-       @AfterClass
-       public static void tearDownAfterClass() throws Exception {
+       @Test
+       public void instanceNullTest() {
+               assertThat(PermEval.evalInstance(null, null), is(false));
+               assertThat(PermEval.evalInstance(null, "test"), is(false));
+               assertThat(PermEval.evalInstance("test", null), is(false));
        }
 
        @Test
-       public void test() {
-               // TRUE
-               assertTrue(PermEval.evalAction("fred","fred"));
-               assertTrue(PermEval.evalAction("fred,wilma","fred"));
-               assertTrue(PermEval.evalAction("barney,betty,fred,wilma","fred"));
-               assertTrue(PermEval.evalAction("*","fred"));
-               
-               assertTrue(PermEval.evalInstance("fred","fred"));
-               assertTrue(PermEval.evalInstance("fred,wilma","fred"));
-               assertTrue(PermEval.evalInstance("barney,betty,fred,wilma","fred"));
+       public void instanceEmptyTest() {
+               assertThat(PermEval.evalInstance("", ""), is(false));
+               assertThat(PermEval.evalInstance("", "test"), is(false));
+               assertThat(PermEval.evalInstance("test", ""), is(false));
+       }
+
+       @Test
+       public void instanceAsterixTest() {
+               assertThat(PermEval.evalInstance("*", "*"), is(true));
                assertTrue(PermEval.evalInstance("*","fred"));
-               
+       }
+
+       @Test
+       public void instanceRegexTest() {
+               assertThat(PermEval.evalInstance("test", "!test"), is(true));
+               assertThat(PermEval.evalInstance(",", "!"), is(true));
+               assertThat(PermEval.evalInstance("test,test", "!test"), is(true));
+
+               assertThat(PermEval.evalInstance("test", "!"), is(false));
+               assertThat(PermEval.evalInstance("test", "!mismatch"), is(false));
+               assertThat(PermEval.evalInstance("test,mismatch", "!mismatch"), is(false));
+       }
+
+       @Test
+       public void instanceKeyTest() {
+               // Reject non-keys
+               assertThat(PermEval.evalInstance("fred", ":fred"), is(false));
+
+               // Reject differing number of keys
+               assertThat(PermEval.evalInstance(":fred:barney", ":fred"), is(false));
+               assertThat(PermEval.evalInstance(":fred", ":fred:barney"), is(false));
+
+               // Accept all wildcard keys
+               assertThat(PermEval.evalInstance(":*", ":fred"), is(true));
+
+               // Accept matching empty keys
+               assertThat(PermEval.evalInstance(":", ":"), is(true));
+
+               // Reject non-matching empty keys
+               assertThat(PermEval.evalInstance(":fred", ":"), is(false));
+
+               // Accept matches starting with a wildcard
+               assertThat(PermEval.evalInstance(":!.*ed", ":fred"), is(true));
+
+               // Reject non-matches starting with a wildcard
+               assertThat(PermEval.evalInstance(":!.*arney", ":fred"), is(false));
+
+               // Accept matches ending with a wildcard
+               assertThat(PermEval.evalInstance(":fr*", ":fred"), is(true));
+
+               // Reject non-matches ending with a wildcard
+               assertThat(PermEval.evalInstance(":bar*", ":fred"), is(false));
+
+               // Accept exact keys
+               assertThat(PermEval.evalInstance(":fred", ":fred"), is(true));
+
+               // Reject mismatched keys
+               assertThat(PermEval.evalInstance(":fred", ":barney"), is(false));
+
+               // Check using alt-start character
+               assertThat(PermEval.evalInstance("/fred", "/fred"), is(true));
+               assertThat(PermEval.evalInstance("/barney", "/fred"), is(false));
+       }
+
+       @Test
+       public void instanceDirectTest() {
+               assertThat(PermEval.evalInstance("fred","fred"), is(true));
+               assertThat(PermEval.evalInstance("fred,wilma","fred"), is(true));
+               assertThat(PermEval.evalInstance("barney,betty,fred,wilma","fred"), is(true));
+               assertThat(PermEval.evalInstance("barney,betty,wilma","fred"), is(false));
+
+               assertThat(PermEval.evalInstance("fr*","fred"), is(true));
+               assertThat(PermEval.evalInstance("freddy*","fred"), is(false));
+               assertThat(PermEval.evalInstance("ba*","fred"), is(false));
+       }
+
+       @Test
+       public void actionTest() {
+               // Accept server *
+               assertThat(PermEval.evalAction("*", ""), is(true));
+               assertThat(PermEval.evalAction("*", "literally anything"), is(true));
+
+               // Reject empty actions
+               assertThat(PermEval.evalAction("literally anything", ""), is(false));
+
+               // Accept match as regex
+               assertThat(PermEval.evalAction("action", "!action"), is(true));
+
+               // Reject non-match as regex
+               assertThat(PermEval.evalAction("action", "!nonaction"), is(false));
+
+               // Accept exact match
+               assertThat(PermEval.evalAction("action", "action"), is(true));
+
+               // Reject non-match
+               assertThat(PermEval.evalAction("action", "nonaction"), is(false));
+       }
+
+       @Test
+       public void redundancyTest() {
+               // TRUE
                assertTrue(PermEval.evalInstance(":fred:fred",":fred:fred"));
                assertTrue(PermEval.evalInstance(":fred:fred,wilma",":fred:fred"));
                assertTrue(PermEval.evalInstance(":fred:barney,betty,fred,wilma",":fred:fred"));
-               assertTrue(PermEval.evalInstance("*","fred"));
                assertTrue(PermEval.evalInstance(":*:fred",":fred:fred"));
                assertTrue(PermEval.evalInstance(":fred:*",":fred:fred"));
                assertTrue(PermEval.evalInstance(":!f.*:fred",":fred:fred"));
                assertTrue(PermEval.evalInstance(":fred:!f.*",":fred:fred"));
-               
-               /// FALSE
+
+               // FALSE
                assertFalse(PermEval.evalInstance("fred","wilma"));
                assertFalse(PermEval.evalInstance("fred,barney,betty","wilma"));
                assertFalse(PermEval.evalInstance(":fred:fred",":fred:wilma"));
@@ -73,10 +164,10 @@ public class JU_PermEval {
                assertTrue(PermEval.evalInstance("/v1/services/features/*","/v1/services/features/api1"));
                assertTrue(PermEval.evalInstance(":v1:services:features:*",":v1:services:features:api2"));
                // MSO - Xue Gao
-               assertTrue(PermEval.evalInstance(":v1:requests:*",":v1:requests:test0-service"));   
+               assertTrue(PermEval.evalInstance(":v1:requests:*",":v1:requests:test0-service"));
+
 
 
-               
                // Same tests, with Slashes
                assertTrue(PermEval.evalInstance("/fred/fred","/fred/fred"));
                assertTrue(PermEval.evalInstance("/fred/fred,wilma","/fred/fred"));
@@ -86,8 +177,8 @@ public class JU_PermEval {
                assertTrue(PermEval.evalInstance("/fred/*","/fred/fred"));
                assertTrue(PermEval.evalInstance("/!f.*/fred","/fred/fred"));
                assertTrue(PermEval.evalInstance("/fred/!f.*","/fred/fred"));
-               
-               /// FALSE
+
+               // FALSE
                assertFalse(PermEval.evalInstance("fred","wilma"));
                assertFalse(PermEval.evalInstance("fred,barney,betty","wilma"));
                assertFalse(PermEval.evalInstance("/fred/fred","/fred/wilma"));
@@ -98,7 +189,7 @@ public class JU_PermEval {
                assertFalse(PermEval.evalInstance("/!f.*/!w.*","/fred/fred"));
 
                assertFalse(PermEval.evalInstance("/fred/!x.*","/fred/fred"));
-               
+
                assertTrue(PermEval.evalInstance(":!com.att.*:role:write",":com.att.temp:role:write"));
 
                // CPFSF-431 Group needed help with Wild Card
@@ -113,7 +204,10 @@ public class JU_PermEval {
                                ":!topic.com.att.ecomp_test.crm.pre.*",
                                ":topic.com.att.ecomp_test.crm.predemo100"
                                ));
-               
+
+               // coverage
+               @SuppressWarnings("unused")
+               PermEval pe = new PermEval();
        }
 
 }