You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2017/05/04 16:55:04 UTC
svn commit: r1793833 -
/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/SecurityProviderImplTest.java
Author: angela
Date: Thu May 4 16:55:04 2017
New Revision: 1793833
URL: http://svn.apache.org/viewvc?rev=1793833&view=rev
Log:
OAK-6172 : SecurityProviderImpl could cache the configuration set (adding tests as mentioned in the issue)
Added:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/SecurityProviderImplTest.java (with props)
Added: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/SecurityProviderImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/SecurityProviderImplTest.java?rev=1793833&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/SecurityProviderImplTest.java (added)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/SecurityProviderImplTest.java Thu May 4 16:55:04 2017
@@ -0,0 +1,159 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.jackrabbit.oak.security;
+
+import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
+import org.apache.jackrabbit.oak.spi.security.SecurityConfiguration;
+import org.apache.jackrabbit.oak.spi.security.authentication.AuthenticationConfiguration;
+import org.apache.jackrabbit.oak.spi.security.principal.CompositePrincipalConfiguration;
+import org.apache.jackrabbit.oak.spi.security.principal.PrincipalConfiguration;
+import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConfiguration;
+import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.when;
+
+public class SecurityProviderImplTest {
+
+ private SecurityProviderImpl securityProvider = new SecurityProviderImpl();
+
+ @Test
+ public void testBindPrincipalConfiguration() {
+ PrincipalConfiguration defaultConfig = securityProvider.getConfiguration(PrincipalConfiguration.class);
+ assertTrue(defaultConfig instanceof CompositePrincipalConfiguration);
+ CompositePrincipalConfiguration cpc = (CompositePrincipalConfiguration) defaultConfig;
+
+
+ PrincipalConfiguration pc = Mockito.mock(PrincipalConfiguration.class);
+ when(pc.getParameters()).thenReturn(ConfigurationParameters.EMPTY);
+
+ securityProvider.bindPrincipalConfiguration(pc);
+
+ assertNotSame(pc, securityProvider.getConfiguration(PrincipalConfiguration.class));
+ assertSame(defaultConfig, securityProvider.getConfiguration(PrincipalConfiguration.class));
+
+ for (SecurityConfiguration sc : securityProvider.getConfigurations()) {
+ if (sc instanceof PrincipalConfiguration) {
+ assertSame(defaultConfig, sc);
+ }
+ }
+ assertTrue(cpc.getConfigurations().contains(pc));
+ }
+
+ @Test
+ public void testUnbinPrincipalConfiguration() {
+ CompositePrincipalConfiguration cpc = (CompositePrincipalConfiguration) securityProvider.getConfiguration(PrincipalConfiguration.class);
+
+ PrincipalConfiguration pc = Mockito.mock(PrincipalConfiguration.class);
+ when(pc.getParameters()).thenReturn(ConfigurationParameters.EMPTY);
+
+ securityProvider.bindPrincipalConfiguration(pc);
+ assertTrue(cpc.getConfigurations().contains(pc));
+
+ securityProvider.unbindPrincipalConfiguration(pc);
+ assertFalse(cpc.getConfigurations().contains(pc));
+ }
+
+
+ @Test
+ public void testBindUserConfiguration() {
+ UserConfiguration uc = Mockito.mock(UserConfiguration.class);
+ securityProvider.bindUserConfiguration(uc);
+
+ assertSame(uc, securityProvider.getConfiguration(UserConfiguration.class));
+ for (SecurityConfiguration sc : securityProvider.getConfigurations()) {
+ if (sc instanceof UserConfiguration) {
+ assertSame(uc, sc);
+ }
+ }
+ }
+
+ @Test
+ public void testUnBindUserConfiguration() {
+ UserConfiguration uc = Mockito.mock(UserConfiguration.class);
+ securityProvider.bindUserConfiguration(uc);
+ securityProvider.unbindUserConfiguration(uc);
+
+ assertNull(securityProvider.getConfiguration(UserConfiguration.class));
+ for (SecurityConfiguration sc : securityProvider.getConfigurations()) {
+ if (sc instanceof UserConfiguration) {
+ fail();
+ }
+ }
+ }
+
+ @Test
+ public void testBindAuthenticationConfiguration() {
+ AuthenticationConfiguration ac = Mockito.mock(AuthenticationConfiguration.class);
+ securityProvider.bindAuthenticationConfiguration(ac);
+
+ assertSame(ac, securityProvider.getConfiguration(AuthenticationConfiguration.class));
+ for (SecurityConfiguration sc : securityProvider.getConfigurations()) {
+ if (sc instanceof AuthenticationConfiguration) {
+ assertSame(ac, sc);
+ }
+ }
+ }
+
+ @Test
+ public void testUnBindAuthenticationConfiguration() {
+ AuthenticationConfiguration ac = Mockito.mock(AuthenticationConfiguration.class);
+ securityProvider.bindAuthenticationConfiguration(ac);
+ securityProvider.unbindAuthenticationConfiguration(ac);
+
+ assertNull(securityProvider.getConfiguration(AuthenticationConfiguration.class));
+ for (SecurityConfiguration sc : securityProvider.getConfigurations()) {
+ if (sc instanceof AuthenticationConfiguration) {
+ fail();
+ }
+ }
+ }
+
+ @Test
+ public void testBindPrivilegeConfiguration() {
+ PrivilegeConfiguration pc = Mockito.mock(PrivilegeConfiguration.class);
+ securityProvider.bindPrivilegeConfiguration(pc);
+
+ assertSame(pc, securityProvider.getConfiguration(PrivilegeConfiguration.class));
+ for (SecurityConfiguration sc : securityProvider.getConfigurations()) {
+ if (sc instanceof PrivilegeConfiguration) {
+ assertSame(pc, sc);
+ }
+ }
+ }
+
+ @Test
+ public void testUnBindPrivilegeConfiguration() {
+ PrivilegeConfiguration pc = Mockito.mock(PrivilegeConfiguration.class);
+ securityProvider.bindPrivilegeConfiguration(pc);
+ securityProvider.unbindPrivilegeConfiguration(pc);
+
+ assertNull(securityProvider.getConfiguration(PrivilegeConfiguration.class));
+ for (SecurityConfiguration sc : securityProvider.getConfigurations()) {
+ if (sc instanceof PrivilegeConfiguration) {
+ fail();
+ }
+ }
+ }
+}
\ No newline at end of file
Propchange: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/SecurityProviderImplTest.java
------------------------------------------------------------------------------
svn:eol-style = native