Java Mailing List Archive

http://www.gg3721.com/

Home » user.jmock »

[jmock-user] Need help to interpret error message

Mikael Petterson

2008-03-03

Replies: Find Java Web Hosting

Author LoginPost Reply
Need help to interpret error message

Hi,

I now get an error message:

testUpdate(SipDispatcherTest)  Time elapsed: 0.156 sec  <<< ERROR!
java.lang.ClassCastException: java.lang.Object
        at com.ericsson.wong.sip.SipDisp.service(SipDisp.java:32)
        at SipDispatcherTest.testUpdate(SipDispatcherTest.java:41)
        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.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
        at org.jmock.integration.junit4.JMock$1.invoke(JMock.java:36)
        at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
        at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
        at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
        at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
        at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
        at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
        at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
        at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
        at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
        at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
        at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)

        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:177)

Is it an error in my code or in the test?

Line 32 is :

if (session != null) {
                        servletName = (String) session.getApplicationSession().getAttribute(SIP_APP);
                }


cheers,

Test class code:

@RunWith(JMock.class)
public class SipDispatcherTest {
       
  Mockery context = new JUnit4Mockery();
 
  private static final String SIP_APP = "SipDispatcher.App";
  private static final String CDG = "CDG";
 
  @Test
  public void testUpdate() throws ServletException,IOException{
          final SipServletRequest mockSipRequest = context.mock(SipServletRequest.class);
          final SipSession mockSipSession = context.mock(SipSession.class);
         
          SipDisp sipDispatcher = new SipDisp();
          // define expectations on mocks
          context.checking(new Expectations(){{
                  one(mockSipRequest).getSession(false);
          }});
         
          //session.getApplicationSession()
          sipDispatcher.service(mockSipRequest, null);
         
         
         
  }

Class under test code:

public class SipDisp extends SipServlet{

       
        private static final String SIP_APP = "SipDispatcher.App";
        private static final long serialVersionUID = 2999888825911125199L;
       
        public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
                SipServletRequest request = (SipServletRequest) req;
                SipServletResponse response = (SipServletResponse) resp;
               
                SipServlet destination = null;
                String servletName = null;
                SipSession session = getSession(request, response, false);
               
                if (session != null) {
                        servletName = (String) session.getApplicationSession().getAttribute(SIP_APP);
                }
               
        }
       
        private SipSession getSession(SipServletRequest request, SipServletResponse response, boolean create) {
                return (request != null ? request.getSession(create) : response.getSession(create));
        }

}

Ps. Line 32 is where I bump into problems. I cannot make my test simpler. So please do't tell me to make it simpler but show me then.

cheers,

//mike

©2008 gg3721.com - Jax Systems, LLC, U.S.A.