[jboss-user] [JBoss Seam] - testng unit tests not working with testng eclipse plugin sin
knuwu
do-not-reply at jboss.com
Wed Apr 4 08:55:48 EDT 2007
I had well working testng test in version 1.2.0 sp1, i could execute from ant or inside eclipse with the testng pugling.
Since 1.2.1 GA i get the following error message when i execute my login tests:
| "[RuleBasedIdentity] no security rule base available - please install a RuleBase with the name 'securityRules' if permission checks are required."
|
Full stack trace:
| [Parser] Running:
| C:\seat\workspace\aldebaran\src\test\com\swisscom\seat\services\security\test\testngServiceSecurityTest.xml
|
| 14:47:08,821 INFO [Scanner] scanning: /C:/seat/workspace/aldebaran/lib/jboss-seam.jar
| 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/security, package: org.jboss.seam.security, prefix: org.jboss.seam.security
| 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/drools, package: org.jboss.seam.drools, prefix: org.jboss.seam.drools
| 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/mail, package: org.jboss.seam.mail, prefix: org.jboss.seam.mail
| 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/web, package: org.jboss.seam.web, prefix: org.jboss.seam.web
| 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/theme, package: org.jboss.seam.theme, prefix: org.jboss.seam.theme
| 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/core, package: org.jboss.seam.core, prefix: org.jboss.seam.core
| 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/jms, package: org.jboss.seam.jms, prefix: org.jboss.seam.jms
| 14:47:08,837 INFO [Initialization] Namespace: http://jboss.com/products/seam/framework, package: org.jboss.seam.framework, prefix: org.jboss.seam.core.framework
| 14:47:08,837 INFO [Scanner] scanning: /C:/seat/workspace/aldebaran/lib/jboss-seam-debug.jar
| 14:47:08,837 INFO [Scanner] scanning: /C:/seat/workspace/aldebaran/lib/jboss-seam-ui.jar
| 14:47:08,853 INFO [Initialization] reading jar:file:/C:/seat/workspace/aldebaran/lib/jboss-seam.jar!/META-INF/components.xml
| 14:47:08,962 INFO [Initialization] reading properties from: /seam.properties
| 14:47:08,962 INFO [Initialization] reading properties from: /jndi.properties
| 14:47:08,962 INFO [Initialization] initializing Seam
| 14:47:08,993 INFO [Scanner] scanning: /C:/seat/workspace/aldebaran/lib/jboss-seam-debug.jar
| 14:47:09,071 INFO [Scanner] scanning: /C:/seat/workspace/aldebaran/lib/jboss-seam-ui.jar
| 14:47:09,274 INFO [Scanner] scanning: /C:/seat/workspace/aldebaran/lib/jboss-seam.jar
| 14:47:10,257 INFO [Initialization] two components with same name, higher precedence wins: org.jboss.seam.persistence.persistenceProvider
| 14:47:10,273 INFO [Initialization] two components with same name, higher precedence wins: org.jboss.seam.security.identity
| 14:47:10,304 INFO [Component] Component: org.jboss.seam.core.init, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Init
| 14:47:10,351 INFO [Initialization] Installing components...
| 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.applicationContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.ApplicationContext
| 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.businessProcessContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.BusinessProcessContext
| 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.conversation, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.Conversation
| 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.conversationContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationContext
| 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.conversationEntries, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationEntries
| 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.conversationList, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationList
| 14:47:10,367 INFO [Component] Component: org.jboss.seam.core.conversationStack, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationStack
| 14:47:10,382 INFO [Component] Component: org.jboss.seam.core.eventContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.EventContext
| 14:47:10,382 INFO [Component] Component: org.jboss.seam.core.events, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Events
| 14:47:10,382 INFO [Component] Component: org.jboss.seam.core.exceptions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Exceptions
| 14:47:10,382 INFO [Component] Component: org.jboss.seam.core.expressions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Expressions
| 14:47:10,382 INFO [Component] Component: org.jboss.seam.core.facesContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.FacesContext
| 14:47:10,382 INFO [Component] Component: org.jboss.seam.core.facesMessages, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.FacesMessages
| 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.facesPage, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.FacesPage
| 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.httpError, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.HttpError
| 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.image, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.Image
| 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.interpolator, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Interpolator
| 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.isUserInRole, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.IsUserInRole
| 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.locale, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Locale
| 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.localeSelector, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.LocaleSelector
| 14:47:10,398 INFO [Component] Component: org.jboss.seam.core.manager, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.core.Manager
| 14:47:10,413 INFO [Component] Component: org.jboss.seam.core.messages, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.Messages
| 14:47:10,413 INFO [Component] Component: org.jboss.seam.core.methodContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.MethodContext
| 14:47:10,413 INFO [Component] Component: org.jboss.seam.core.pageContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.PageContext
| 14:47:10,413 INFO [Component] Component: org.jboss.seam.core.pages, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Pages
| 14:47:10,429 INFO [Component] Component: org.jboss.seam.core.persistenceContexts, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.PersistenceContexts
| 14:47:10,460 INFO [Component] Component: org.jboss.seam.core.pojoCache, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.PojoCache
| 14:47:10,460 INFO [Component] Component: org.jboss.seam.core.redirect, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.Redirect
| 14:47:10,460 INFO [Component] Component: org.jboss.seam.core.renderer, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.ui.facelet.FaceletsRenderer
| 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.resourceBundle, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.ResourceBundle
| 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.safeActions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.SafeActions
| 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.sessionContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.SessionContext
| 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.switcher, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.Switcher
| 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.uiComponent, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.UiComponent
| 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.userPrincipal, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.UserPrincipal
| 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.validation, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.core.Validation
| 14:47:10,476 INFO [Component] Component: org.jboss.seam.core.validators, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Validators
| 14:47:10,476 INFO [Component] Component: org.jboss.seam.framework.currentDate, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentDate
| 14:47:10,507 INFO [Component] Component: org.jboss.seam.framework.currentDatetime, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentDatetime
| 14:47:10,507 INFO [Component] Component: org.jboss.seam.framework.currentTime, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentTime
| 14:47:10,507 INFO [Component] Component: org.jboss.seam.security.configuration, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.security.Configuration
| 14:47:10,507 INFO [Component] Component: org.jboss.seam.security.identity, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.security.RuleBasedIdentity
| 14:47:10,507 INFO [Component] Component: org.jboss.seam.servlet.exceptionFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.ExceptionFilter
| 14:47:10,523 INFO [Component] Component: org.jboss.seam.servlet.multipartFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.MultipartFilter
| 14:47:10,523 INFO [Component] Component: org.jboss.seam.servlet.redirectFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.RedirectFilter
| 14:47:10,523 INFO [Component] Component: org.jboss.seam.theme.theme, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.theme.Theme
| 14:47:10,523 INFO [Component] Component: org.jboss.seam.theme.themeSelector, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.theme.ThemeSelector
| 14:47:10,523 INFO [Component] Component: org.jboss.seam.ui.entityConverter, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.ui.EntityConverter
| 14:47:10,523 INFO [Component] Component: org.jboss.seam.ui.entityConverterStore, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.ui.EntityConverterStore
| 14:47:10,523 INFO [Component] Component: org.jboss.seam.ui.graphicImage.dynamicImageResource, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.ui.graphicImage.DynamicImageResource
| 14:47:10,523 INFO [Component] Component: org.jboss.seam.ui.graphicImage.dynamicImageStore, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.ui.graphicImage.DynamicImageStore
| 14:47:10,523 INFO [Component] Component: org.jboss.seam.ui.resource.webResource, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.ui.resource.WebResource
| 14:47:10,538 INFO [Lifecycle] starting up: org.jboss.seam.servlet.exceptionFilter
| 14:47:10,538 INFO [Lifecycle] starting up: org.jboss.seam.ui.graphicImage.dynamicImageResource
| 14:47:10,538 INFO [Lifecycle] starting up: org.jboss.seam.servlet.multipartFilter
| 14:47:10,538 INFO [Lifecycle] starting up: org.jboss.seam.ui.resource.webResource
| 14:47:10,538 INFO [Lifecycle] starting up: org.jboss.seam.servlet.redirectFilter
| 14:47:10,538 INFO [Initialization] done initializing Seam
| 14:47:10,679 WARN [RuleBasedIdentity] no security rule base available - please install a RuleBase with the name 'securityRules' if permission checks are required.
| 14:47:10,710 ERROR [SeamLoginModule] Error invoking login method
| java.lang.NullPointerException
| at org.jboss.seam.security.jaas.SeamLoginModule.login(SeamLoginModule.java:104)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
| at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
| at javax.security.auth.login.LoginContext$5.run(LoginContext.java:706)
| at java.security.AccessController.doPrivileged(Native Method)
| at javax.security.auth.login.LoginContext.invokeCreatorPriv(LoginContext.java:703)
| at javax.security.auth.login.LoginContext.login(LoginContext.java:575)
| at org.jboss.seam.security.Identity.authenticate(Identity.java:247)
| at org.jboss.seam.security.Identity.authenticate(Identity.java:240)
| at org.jboss.seam.security.Identity.login(Identity.java:170)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at com.sun.el.parser.AstValue.invoke(AstValue.java:174)
| at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:286)
| at org.jboss.seam.util.UnifiedELMethodBinding.invoke(UnifiedELMethodBinding.java:36)
| at org.jboss.seam.actionparam.ActionParamBindingHelper.invokeTheExpression(ActionParamBindingHelper.java:58)
| at org.jboss.seam.actionparam.ActionParamMethodBinding.invoke(ActionParamMethodBinding.java:75)
| at org.jboss.seam.actionparam.ActionParamBindingHelper.invokeTheExpression(ActionParamBindingHelper.java:58)
| at org.jboss.seam.actionparam.ActionParamMethodBinding.invoke(ActionParamMethodBinding.java:75)
| at org.jboss.seam.mock.SeamTest$Request.invokeMethod(SeamTest.java:401)
| at com.swisscom.seat.services.security.test.LoginTest$2.invokeApplication(LoginTest.java:39)
| at org.jboss.seam.mock.SeamTest$Request.run(SeamTest.java:489)
| at com.swisscom.seat.services.security.test.LoginTest.loginTest(LoginTest.java:50)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:645)
| at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:479)
| at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:715)
| at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
| at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
| at org.testng.TestRunner.runWorkers(TestRunner.java:673)
| at org.testng.TestRunner.privateRun(TestRunner.java:620)
| at org.testng.TestRunner.run(TestRunner.java:480)
| at org.testng.SuiteRunner.runTest(SuiteRunner.java:278)
| at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:273)
| at org.testng.SuiteRunner.privateRun(SuiteRunner.java:253)
| at org.testng.SuiteRunner.run(SuiteRunner.java:168)
| at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:987)
| at org.testng.TestNG.runSuitesLocally(TestNG.java:951)
| at org.testng.TestNG.run(TestNG.java:719)
| at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
| at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:122)
| FAILED: loginTest("tsggora1", "test")
| javax.el.PropertyNotFoundException: ELResolver cannot handle a null base Object with identifier 'currentUser'
| at com.sun.el.lang.ELSupport.throwUnhandled(ELSupport.java:52)
| at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:75)
| at com.sun.el.parser.AstValue.getValue(AstValue.java:114)
| at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:195)
| at org.jboss.seam.util.UnifiedELValueBinding.getValue(UnifiedELValueBinding.java:34)
| at org.jboss.seam.mock.SeamTest$Request.getValue(SeamTest.java:366)
| at com.swisscom.seat.services.security.test.LoginTest$2.renderResponse(LoginTest.java:44)
| at org.jboss.seam.mock.SeamTest$Request.run(SeamTest.java:521)
| at com.swisscom.seat.services.security.test.LoginTest.loginTest(LoginTest.java:50)
| ... Removed 21 stack frames
|
| ===============================================
| Security Tests
| Tests run: 1, Failures: 1, Skips: 0
| ===============================================
|
|
| ===============================================
| Security Tests
| Total tests run: 1, Failures: 1, Skips: 0
| ===============================================
|
The test class is looking like that:
| package com.swisscom.seat.services.security.test;
|
| import java.util.List;
|
| import org.jboss.seam.Seam;
| import org.jboss.seam.core.Manager;
| import org.jboss.seam.mock.SeamTest;
| import org.testng.annotations.Parameters;
| import org.testng.annotations.Test;
|
| public class LoginTest extends SeamTest {
|
| @Parameters( { "userid", "password" })
| @Test( groups = {"functional"} )
| public void loginTest(final String userid, final String password)
| throws Exception {
|
| new FacesRequest() {
|
| @Override
| protected void invokeApplication() {
| assert !isSessionInvalid();
| assert getValue("#{identity.loggedIn}").equals(false);
| }
|
| }.run();
|
| new FacesRequest() {
|
| @Override
| protected void updateModelValues() throws Exception {
| assert !isSessionInvalid();
| setValue("#{identity.username}", userid);
| setValue("#{identity.password}", password);
| }
|
| @Override
| protected void invokeApplication() {
| invokeMethod("#{identity.login}");
| }
|
| @Override
| protected void renderResponse() {
| assert getValue("#{currentUser.userid}").equals(userid);
| assert !Manager.instance().isLongRunningConversation();
| assert ((List) getValue("#{currentUser.roles}")).size() > 0;
| assert getValue("#{identity.loggedIn}").equals(true);
| }
|
| }.run();
|
| new FacesRequest() {
|
| @Override
| protected void invokeApplication() {
| assert !isSessionInvalid();
| assert getValue("#{identity.loggedIn}").equals(true);
| }
|
| }.run();
|
| new FacesRequest() {
|
| @Override
| protected void invokeApplication() {
| assert !Manager.instance().isLongRunningConversation();
| assert !isSessionInvalid();
| invokeMethod("#{identity.logout}");
| assert Seam.isSessionInvalid();
| }
|
| @Override
| protected void renderResponse() {
| assert getValue("#{identity.loggedIn}").equals(false);
| assert Seam.isSessionInvalid();
| }
|
| }.run();
|
| }
|
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4034533#4034533
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4034533
More information about the jboss-user
mailing list