X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthorization%2Fhibernate%2FPersistentAuthorizationServiceTest.java;h=11b9da50aaff2ee6335c15e1aae66f8c1138af80;hb=ddd261f331280640c5b53c7128230b629ebcd268;hp=b1a369347032d6122a01145543659a5afb5ab6ab;hpb=92e23e5ecf9614f2ab770a8cdedc0b21ddf1e127;p=utils diff --git a/security/src/test/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationServiceTest.java b/security/src/test/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationServiceTest.java index b1a36934..11b9da50 100644 --- a/security/src/test/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationServiceTest.java +++ b/security/src/test/java/org/wamblee/security/authorization/hibernate/PersistentAuthorizationServiceTest.java @@ -1,33 +1,37 @@ /* * Copyright 2005 the original author or authors. - * + * * 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.wamblee.security.authorization.hibernate; -import java.sql.SQLException; - import org.apache.log4j.Logger; + import org.hibernate.cfg.Configuration; + import org.hibernate.dialect.MySQL5Dialect; import org.hibernate.dialect.MySQL5InnoDBDialect; + import org.hibernate.tool.hbm2ddl.SchemaExport; + import org.springframework.orm.hibernate3.HibernateTemplate; + import org.wamblee.general.BeanKernel; + import org.wamblee.security.authorization.AuthorizationService; import org.wamblee.security.authorization.AuthorizationServiceTest; import org.wamblee.security.authorization.TestUserAccessor; + import org.wamblee.system.adapters.ClassConfiguration; import org.wamblee.system.adapters.ClassConfigurationTest; import org.wamblee.system.adapters.DefaultContainer; @@ -36,60 +40,110 @@ import org.wamblee.system.components.DatabaseComponentFactory; import org.wamblee.system.core.Scope; import org.wamblee.system.spring.component.DatabaseTesterComponent; import org.wamblee.system.spring.component.DatasourceComponent; + import org.wamblee.usermgt.UserAccessor; import org.wamblee.usermgt.hibernate.AuthorizationComponent; import org.wamblee.usermgt.hibernate.HibernateUserAdministrationTest; import org.wamblee.usermgt.hibernate.UserAdministrationComponent; +import java.sql.SQLException; + + /** * Unit test for the persistent authorization service. - * + * * @author Erik Brakkee */ -public class PersistentAuthorizationServiceTest extends - AuthorizationServiceTest { - - private static final Logger LOGGER = Logger - .getLogger(PersistentAuthorizationServiceTest.class); +public class PersistentAuthorizationServiceTest extends AuthorizationServiceTest { + /** + * DOCUMENT ME! + */ + private static final Logger LOGGER = Logger.getLogger(PersistentAuthorizationServiceTest.class); + /** + * DOCUMENT ME! + */ private static final String SERVICE_TABLE = "AUTHORIZATION_SERVICE"; + + /** + * DOCUMENT ME! + */ private static final String RULES_TABLE = "AUTHORIZATION_RULES"; + + /** + * DOCUMENT ME! + */ private static final String SERVICE_RULES_TABLE = "AUTHORIZATION_SERVICE_RULES"; + + /** + * DOCUMENT ME! + */ private static final String OPERATIONCOND_TABLE = "OPERATION_CONDITIONS"; + + /** + * DOCUMENT ME! + */ private static final String PATHCOND_TABLE = "PATH_CONDITIONS"; + + /** + * DOCUMENT ME! + */ private static final String USERCOND_TABLE = "USER_CONDITIONS"; + /** + * DOCUMENT ME! + */ private DefaultContainer container; + + /** + * DOCUMENT ME! + */ private Scope scope; + /** + * DOCUMENT ME! + */ private DatabaseTesterComponent databaseTester; + + /** + * DOCUMENT ME! + */ private UserAccessor userAccessor; + + /** + * DOCUMENT ME! + */ private HibernateTemplate hibernateTemplate; + + /** + * DOCUMENT ME! + */ private AuthorizationService authorizationService; + /** + * DOCUMENT ME! + * + * @throws Exception DOCUMENT ME! + */ @Override protected void setUp() throws Exception { - container = new DefaultContainer("top"); DatabaseComponentFactory.addDatabaseConfig(container); container.addComponent(new DatasourceComponent("datasource")); - ClassConfiguration useraccessorConfig = new ClassConfiguration( - TestUserAccessor.class); + + ClassConfiguration useraccessorConfig = new ClassConfiguration(TestUserAccessor.class); useraccessorConfig.getObjectConfig().getSetterConfig().initAllSetters(); container.addComponent("userAccessor", useraccessorConfig); - container.addComponent(new AuthorizationComponent("authorization", - true)); + container.addComponent(new AuthorizationComponent("authorization", true)); - ClassConfiguration dbtesterConfig = new ClassConfiguration( - DatabaseTesterComponent.class); + ClassConfiguration dbtesterConfig = new ClassConfiguration(DatabaseTesterComponent.class); dbtesterConfig.getObjectConfig().getSetterConfig().initAllSetters(); container.addComponent("databaseTester", dbtesterConfig); - ObjectConfiguration config = new ObjectConfiguration( - PersistentAuthorizationServiceTest.class); - config.getSetterConfig().clear().add("setUserAccessor").add( - "setDatabaseTester").add("setHibernateTemplate").add( - "setAuthorizationService"); + ObjectConfiguration config = new ObjectConfiguration(PersistentAuthorizationServiceTest.class); + config.getSetterConfig().clear().add("setUserAccessor") + .add("setDatabaseTester").add("setHibernateTemplate") + .add("setAuthorizationService"); container.addComponent("testcase", this, config); scope = container.start(); @@ -99,78 +153,120 @@ public class PersistentAuthorizationServiceTest extends super.setUp(); } + /** + * DOCUMENT ME! + * + * @param aDatabaseTester DOCUMENT ME! + */ public void setDatabaseTester(DatabaseTesterComponent aDatabaseTester) { databaseTester = aDatabaseTester; } + /** + * DOCUMENT ME! + * + * @param aUserAccessor DOCUMENT ME! + */ public void setUserAccessor(UserAccessor aUserAccessor) { userAccessor = aUserAccessor; } + /** + * DOCUMENT ME! + * + * @param aHibernateTemplate DOCUMENT ME! + */ public void setHibernateTemplate(HibernateTemplate aHibernateTemplate) { hibernateTemplate = aHibernateTemplate; } + /** + * DOCUMENT ME! + * + * @param aAuthorizationService DOCUMENT ME! + */ public void setAuthorizationService( - AuthorizationService aAuthorizationService) { + AuthorizationService aAuthorizationService) { authorizationService = aAuthorizationService; } /* * (non-Javadoc) - * + * * @see * org.wamblee.security.authorization.AuthorizationServiceTest#createService * () */ + /** + * DOCUMENT ME! + * + * @return DOCUMENT ME! + */ @Override protected AuthorizationService createService() { - PersistentAuthorizationService service = new PersistentAuthorizationService( - "DEFAULT", hibernateTemplate, createUserAccessor(), 10000); + PersistentAuthorizationService service = new PersistentAuthorizationService("DEFAULT", + hibernateTemplate, createUserAccessor(), 10000); + return service; } /* * (non-Javadoc) - * + * * @see * org.wamblee.security.authorization.AuthorizationServiceTest#checkRuleCount * (int) */ + /** + * DOCUMENT ME! + * + * @param aCount DOCUMENT ME! + * + * @throws RuntimeException DOCUMENT ME! + */ @Override protected void checkRuleCount(int aCount) { try { assertEquals(1, databaseTester.getTableSize(SERVICE_TABLE)); assertEquals(aCount, databaseTester.getTableSize(RULES_TABLE)); - assertEquals(aCount, databaseTester - .getTableSize(SERVICE_RULES_TABLE)); + assertEquals(aCount, + databaseTester.getTableSize(SERVICE_RULES_TABLE)); assertEquals(aCount, databaseTester.getTableSize(USERCOND_TABLE)); assertEquals(aCount, databaseTester.getTableSize(PATHCOND_TABLE)); - assertEquals(aCount, databaseTester - .getTableSize(OPERATIONCOND_TABLE)); + assertEquals(aCount, + databaseTester.getTableSize(OPERATIONCOND_TABLE)); } catch (SQLException e) { throw new RuntimeException(e); } - } - public void testSchemaExport() { + /** + * DOCUMENT ME! + */ + public void testSchemaExport() { Configuration config = new Configuration(); - for (String mappingFile: new AuthorizationMappingFiles()) { - config.addResource(mappingFile); + + for (String mappingFile : new AuthorizationMappingFiles()) { + config.addResource(mappingFile); } - config.setProperty("hibernate.dialect", MySQL5InnoDBDialect.class.getName()); + + config.setProperty("hibernate.dialect", + MySQL5InnoDBDialect.class.getName()); + SchemaExport exporter = new SchemaExport(config); exporter.setOutputFile("target/mysql5.schema.sql"); - exporter.create(true,false); + exporter.create(true, false); } + /** + * DOCUMENT ME! + */ public void testPerformance() { - PersistentAuthorizationService service = (PersistentAuthorizationService) getService(); - int n = 1000; - long time = System.currentTimeMillis(); + int n = 1000; + long time = System.currentTimeMillis(); + for (int i = 0; i < n; i++) { testFirstRuleGrants(); resetTestRules(); @@ -180,8 +276,9 @@ public class PersistentAuthorizationServiceTest extends resetTestRules(); testNoRulesSupportResource(); } - LOGGER.info("Executed " + 4 * n + " authorization checks in " - + (float) (System.currentTimeMillis() - time) / (float) 1000 - + " seconds."); + + LOGGER.info("Executed " + (4 * n) + " authorization checks in " + + ((float) (System.currentTimeMillis() - time) / (float) 1000) + + " seconds."); } }