[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);
+    }
+
+}