7 Replies Latest reply: Mar 16, 2011 4:02 AM by Stephan Pabinger RSS

    NullPointerException - getCurrentViewID

    Stephan Pabinger Newbie

      Hi,

       

      I'm currently trying to include JSFUnit into my JEE6, Seam3, Richfaces, Arquillian project.

      I was able to run the getting stated example described at http://community.jboss.org/wiki/JSFUnit200GettingStartedExample.

       

      However, when I include this test into my project I get a NullPointerException

       

      testInitialPage(at.icbi.seqbench.jsfunit.HelloJSFTest)  Time elapsed: 2,664.141 sec  <<< ERROR!
      java.lang.NullPointerException
          at org.jboss.jsfunit.jsfsession.JSFServerSession.getCurrentViewID(JSFServerSession.java:79)
          at at.icbi.seqbench.jsfunit.HelloJSFTest.testInitialPage(HelloJSFTest.java:56)
          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:597)
          at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
          at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
      

       

      Specifically, the attributes clientIDs and currentFacesContext are null in JSFServerSession server.

       

      Test class looks as follows:

      @RunWith(Arquillian.class)
      public class HelloJSFTest
      {
      
        @Deployment
        public static WebArchive createDeployment()
        {
          Class clazz = org.jboss.jsfunit.cdi.InitialPage.class;
          WebArchive war = ShrinkWrap.create(WebArchive.class, "test.war")
              .setWebXML(new File("src/test/resources/jsf/web.xml"))
              .addPackage(Package.getPackage("at.icbi.seqbench.jsfunit"))
              // my test package
              .addResource(new File("src/test/resources/jsf", "index.xhtml")).addWebResource(EmptyAsset.INSTANCE, "beans.xml")
              .addWebResource(new File("src/test/resources/jsf/faces-config.xml"), "faces-config.xml")
              .addManifestResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"));
      
          return war;
        }
      
        @Test
        @InitialPage("/index.faces")
        public void testInitialPage(JSFServerSession server, JSFClientSession client) throws IOException
        {
          // Test navigation to initial viewID
          Assert.assertEquals("/index.xhtml", server.getCurrentViewID());
      
          // Set the param and submit
          client.setValue("name", "MyName");
          client.click("submit_button");
      
          // Assert that the greeting component is in the component tree and rendered
          UIComponent greeting = server.findComponent("greeting");
          Assert.assertTrue(greeting.isRendered());
      
          // Test a managed bean using EL. We cheat and use the request object.
          Assert.assertEquals("MyName", server.getManagedBeanValue("#{request.getParameter('form1:name')}"));
        }
      
      }
      

       

       

      Does anybody have a hint for my problem?

      Thanks,

      Stephan