X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthorization%2Fhibernate%2FPersistentAuthorizationServiceTest.java;h=453cf1a98f6229e1d1fc475ea3e1329a16d94220;hb=bfdfe5ac1e02bff97a56e14f7ef790f67c407ae6;hp=6cbbd39e7f90699252137712189e02f1694d9f67;hpb=652b3a33aeb0d362784c1926c1931ca865aaef9e;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 6cbbd39e..453cf1a9 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 @@ -12,7 +12,7 @@ * 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; @@ -23,71 +23,135 @@ 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.DefaultContainer; +import org.wamblee.system.adapters.ObjectConfiguration; +import org.wamblee.system.core.Scope; +import org.wamblee.system.spring.DatabaseTesterComponent; +import org.wamblee.usermgt.UserAccessor; +import org.wamblee.usermgt.hibernate.AuthorizationComponent; +import org.wamblee.usermgt.hibernate.ExternalDatasourceComponent; +import org.wamblee.usermgt.hibernate.HibernateUserAdministrationTest; +import org.wamblee.usermgt.hibernate.UserAdministrationComponent; /** - * Unit test for the persistent authorization service. - * + * 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 { + + private static final Logger LOGGER = Logger + .getLogger(PersistentAuthorizationServiceTest.class); + private static final String SERVICE_TABLE = "AUTHORIZATION_SERVICE"; - private static final String RULES_TABLE = "AUTHORIZATION_RULES"; + private static final String RULES_TABLE = "AUTHORIZATION_RULES"; private static final String SERVICE_RULES_TABLE = "AUTHORIZATION_SERVICE_RULES"; private static final String OPERATIONCOND_TABLE = "OPERATION_CONDITIONS"; private static final String PATHCOND_TABLE = "PATH_CONDITIONS"; private static final String USERCOND_TABLE = "USER_CONDITIONS"; - - public PersistentAuthorizationServiceTest() { - super(AuthorizationSpringConfigFiles.class, AuthorizationMappingFiles.class); + private DefaultContainer _container; + private Scope _scope; + + private DatabaseTesterComponent _databaseTester; + private UserAccessor _userAccessor; + private HibernateTemplate _hibernateTemplate; + private AuthorizationService _authorizationService; + + @Override + protected void setUp() throws Exception { + + _container = new DefaultContainer("top"); + _container.addComponent(new ExternalDatasourceComponent("datasource")); + _container.addComponent("userAccessor", TestUserAccessor.class); + _container.addComponent(new AuthorizationComponent("authorization", + true)); + + _container + .addComponent("databaseTester", DatabaseTesterComponent.class); + + ObjectConfiguration config = new ObjectConfiguration( + PersistentAuthorizationServiceTest.class); + config.getSetterConfig().clear().add("userAccessor").add( + "databaseTester").add("hibernateTemplate").add( + "authorizationService"); + _container.addComponent("testcase", this, config); + + _scope = _container.start(); + + _databaseTester.cleanDatabase(); + + super.setUp(); + } + + public void setDatabaseTester(DatabaseTesterComponent aDatabaseTester) { + _databaseTester = aDatabaseTester; + } + + public void setUserAccessor(UserAccessor aUserAccessor) { + _userAccessor = aUserAccessor; + } + + public void setHibernateTemplate(HibernateTemplate aHibernateTemplate) { + _hibernateTemplate = aHibernateTemplate; } - /* (non-Javadoc) + public void setAuthorizationService( + AuthorizationService aAuthorizationService) { + _authorizationService = aAuthorizationService; + } + + /* + * (non-Javadoc) + * * @see org.wamblee.security.authorization.AuthorizationServiceTest#createService() */ @Override protected AuthorizationService createService() { - PersistentAuthorizationService service = new PersistentAuthorizationService("DEFAULT", - BeanKernel.getBeanFactory().find(HibernateTemplate.class), createUserAccessor(), 10000); - return service; + PersistentAuthorizationService service = new PersistentAuthorizationService( + "DEFAULT", _hibernateTemplate, createUserAccessor(), 10000); + return service; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.wamblee.security.authorization.AuthorizationServiceTest#checkRuleCount(int) */ @Override protected void checkRuleCount(int aCount) { - try { - assertEquals(1, getTableSize(SERVICE_TABLE)); - assertEquals(aCount, getTableSize(RULES_TABLE)); - assertEquals(aCount, getTableSize(SERVICE_RULES_TABLE)); - assertEquals(aCount, getTableSize(USERCOND_TABLE)); - assertEquals(aCount, getTableSize(PATHCOND_TABLE)); - assertEquals(aCount, getTableSize(OPERATIONCOND_TABLE)); - } catch (SQLException e) { + try { + assertEquals(1, _databaseTester.getTableSize(SERVICE_TABLE)); + assertEquals(aCount, _databaseTester.getTableSize(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)); + } catch (SQLException e) { throw new RuntimeException(e); } - + } - - public void testPerformance() { - - PersistentAuthorizationService service = (PersistentAuthorizationService)getService(); - - int n = 1000; + + public void testPerformance() { + + PersistentAuthorizationService service = (PersistentAuthorizationService) getService(); + + int n = 1000; long time = System.currentTimeMillis(); - for (int i = 0; i < n; i++) { - testFirstRuleGrants(); + for (int i = 0; i < n; i++) { + testFirstRuleGrants(); resetTestRules(); testSecondRuleDenies(); resetTestRules(); testThirdRuleGrants(); - resetTestRules(); + 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."); } }