[ONOS-5907] Implementing unit test on Security-Mode ONOS
Change-Id: I1bd8e1df60ad3e5115f0a46ff9f621ec8fd82c36
diff --git a/core/api/src/test/java/org/onosproject/security/AppGuardTest.java b/core/api/src/test/java/org/onosproject/security/AppGuardTest.java
new file mode 100755
index 0000000..c85802a
--- /dev/null
+++ b/core/api/src/test/java/org/onosproject/security/AppGuardTest.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.security;
+
+import java.security.AccessControlException;
+
+import org.junit.Test;
+
+/**
+ * Test of AppGuard.
+ */
+public class AppGuardTest {
+
+ @Test(expected = AccessControlException.class)
+ public void testCheckPermission() throws Exception {
+ SecurityManager sm = new SecurityManager();
+ sm.checkPermission(new AppPermission((AppPermission.Type.APP_EVENT)));
+ }
+
+}
diff --git a/core/api/src/test/java/org/onosproject/security/AppPermissionTest.java b/core/api/src/test/java/org/onosproject/security/AppPermissionTest.java
new file mode 100755
index 0000000..9f2011c
--- /dev/null
+++ b/core/api/src/test/java/org/onosproject/security/AppPermissionTest.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.security;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+import org.onosproject.security.AppPermission.Type;
+
+/**
+ * Test of AppPermission.
+ */
+public class AppPermissionTest {
+
+ @Test
+ public void testAppPermissionString() {
+ String name = "app_read".toUpperCase();
+ assertEquals(Type.APP_READ, Type.valueOf(name));
+ }
+
+ @Test
+ public void testAppPermissionStringString() {
+ String name = "app_read".toUpperCase();
+ assertEquals(Type.APP_READ, Type.valueOf(name));
+ }
+
+ @Test
+ public void testAppPermissionType() {
+ Type type = Type.APP_WRITE;
+ assertEquals(Type.APP_WRITE, type);
+ }
+
+ @Test
+ public void testGetType() {
+ AppPermission appPermission = new AppPermission(Type.APP_WRITE);
+ assertEquals(Type.APP_WRITE, appPermission.getType());
+ }
+
+}
diff --git a/core/api/src/test/java/org/onosproject/security/PermissionTest.java b/core/api/src/test/java/org/onosproject/security/PermissionTest.java
new file mode 100755
index 0000000..c47a058
--- /dev/null
+++ b/core/api/src/test/java/org/onosproject/security/PermissionTest.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.security;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+
+import org.junit.Test;
+
+/**
+ * Test of Permission.
+ */
+public class PermissionTest {
+
+ @Test
+ public void testHashCode() {
+ Permission permission = new Permission("classname", "name", "actions");
+ assertEquals(0, permission.hashCode());
+ }
+
+ @Test
+ public void testPermissionStringStringString() {
+ Permission permission = new Permission("classname", "name", "actions");
+ assertEquals("classname", permission.getClassName());
+ assertEquals("name", permission.getName());
+ assertEquals("actions", permission.getActions());
+ }
+
+ @Test
+ public void testPermissionStringString() {
+ Permission permission = new Permission("classname", "name");
+ assertEquals("classname", permission.getClassName());
+ assertEquals("name", permission.getName());
+ assertEquals("", permission.getActions());
+ }
+
+ @Test
+ public void testGetClassName() {
+ Permission permission = new Permission("classname", "name");
+ assertEquals("classname", permission.getClassName());
+ }
+
+ @Test
+ public void testGetName() {
+ Permission permission = new Permission("classname", "name");
+ assertEquals("name", permission.getName());
+ }
+
+ @Test
+ public void testGetActions() {
+ Permission permission = new Permission("classname", "name", "actions");
+ assertEquals("actions", permission.getActions());
+ }
+
+ @Test
+ public void testEqualsObject() {
+ Permission permissionA = new Permission("classname", "name", "actions");
+ Permission permissionB = new Permission("classname", "name", "actions");
+ assertSame(permissionA, permissionA);
+ assertEquals(permissionA.getClassName(), permissionB.getClassName());
+ assertEquals(permissionA.getName(), permissionB.getName());
+ assertEquals(permissionA.getActions(), permissionB.getActions());
+ }
+
+ @Test
+ public void testToString() {
+ Permission permission = new Permission("classname", "name", "actions");
+ assertEquals("(classname, name, actions)", permission.toString());
+ }
+
+}
diff --git a/core/api/src/test/java/org/onosproject/security/SecurityAdminServiceAdapter.java b/core/api/src/test/java/org/onosproject/security/SecurityAdminServiceAdapter.java
new file mode 100755
index 0000000..9849e8d
--- /dev/null
+++ b/core/api/src/test/java/org/onosproject/security/SecurityAdminServiceAdapter.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.security;
+
+import java.security.Permission;
+import java.util.List;
+import java.util.Map;
+
+import org.onosproject.core.ApplicationId;
+
+/**
+ * Test adapter for SecurityAdminService.
+ */
+public class SecurityAdminServiceAdapter implements SecurityAdminService {
+
+ @Override
+ public boolean isSecured(ApplicationId appId) {
+ return false;
+ }
+
+ @Override
+ public void review(ApplicationId appId) {
+ }
+
+ @Override
+ public void acceptPolicy(ApplicationId appId) {
+ }
+
+ @Override
+ public void register(ApplicationId appId) {
+ }
+
+ @Override
+ public Map<Integer, List<Permission>> getPrintableSpecifiedPermissions(ApplicationId appId) {
+ return null;
+ }
+
+ @Override
+ public Map<Integer, List<Permission>> getPrintableGrantedPermissions(ApplicationId appId) {
+ return null;
+ }
+
+ @Override
+ public Map<Integer, List<Permission>> getPrintableRequestedPermissions(ApplicationId appId) {
+ return null;
+ }
+
+}
diff --git a/core/api/src/test/java/org/onosproject/security/SecurityUtilTest.java b/core/api/src/test/java/org/onosproject/security/SecurityUtilTest.java
new file mode 100755
index 0000000..882e95b
--- /dev/null
+++ b/core/api/src/test/java/org/onosproject/security/SecurityUtilTest.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.security;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.onosproject.core.DefaultApplicationId;
+
+/**
+ * Test of SecurityUtil.
+ */
+public class SecurityUtilTest {
+
+ private static SecurityAdminServiceAdapter service = new SecurityAdminServiceAdapter();
+ private DefaultApplicationId appId;
+
+ @Before
+ public void setUp() throws Exception {
+ appId = new DefaultApplicationId(1, "test");
+ }
+
+ @Test
+ public void testIsSecurityModeEnabled() {
+ assertNull(System.getSecurityManager());
+ assertNotNull(service);
+ }
+
+ @Test
+ public void testGetSecurityService() {
+ assertNull(System.getSecurityManager());
+ assertNotNull(service);
+ }
+
+ @Test
+ public void testIsAppSecured() {
+ assertFalse(service.isSecured(appId));
+ }
+
+ @Test
+ public void testRegister() {
+ service.register(appId);
+ }
+
+}