Java Mailing List Archive

http://www.gg3721.com/

Home » user.jmock »

[jmock-user] Tried to return an incompatible type when using collection

Mikael Petterson

2008-03-18

Replies: Find Java Web Hosting

Author LoginPost Reply
Tried to return an incompatible type when using collection

Hi,

I am expecting to return a Collection:

final List<ICallLeg> agentCallLegs = new ArrayList<ICallLeg>();
agentCallLegs.add(context.mock(ICallLeg.class,"Agent1CallLeg"));
agentCallLegs.add(context.mock(ICallLeg.class,"Agent2CallLeg"));

atLeast(1).of(mockCdgContext).getAgentCallLegs();
will(returnIterator(agentCallLegs));

My mocked interface has:

public Collection<ICallLeg> getAgentCallLegs();


When I run this in my context I get the following ( see below).

What am I missing in order to return a my collection?

cheers,

//mike

java.lang.IllegalStateException: tried to return an incompatible value: expected a java.util.Collection but returned a java.util.AbstractList$Itr

        at org.jmock.api.Invocation.reportTypeError(Invocation.java:151)
        at org.jmock.api.Invocation.checkReturnTypeCompatibility(Invocation.java:119)
        at org.jmock.internal.InvocationExpectation.invoke(InvocationExpectation.java:127)
        at org.jmock.internal.InvocationDispatcher.dispatch(InvocationDispatcher.java:52)
        at org.jmock.Mockery.dispatch(Mockery.java:204)
        at org.jmock.Mockery.access$000(Mockery.java:37)
        at org.jmock.Mockery$MockObject.invoke(Mockery.java:246)
        at org.jmock.internal.InvocationDiverter.invoke(InvocationDiverter.java:27)
        at org.jmock.internal.ProxiedObjectIdentity.invoke(ProxiedObjectIdentity.java:36)
        at org.jmock.lib.JavaReflectionImposteriser$1.invoke(JavaReflectionImposteriser.java:33)
        at $Proxy15.getAgentCallLegs(Unknown Source)
        at com.ericsson.wong.sip.cdg.CdgServlet.hangupAgents(CdgServlet.java:256)
        at com.ericsson.wong.sip.cdg.CdgServlet.inviteAgent(CdgServlet.java:177)
        at com.ericsson.wong.sip.cdg.CdgServlet.doInvite(CdgServlet.java:310)
        at javax.servlet.sip.SipServlet.doRequest(SipServlet.java:54)
        at com.ericsson.wong.sip.cdg.CdgServlet.doRequest(CdgServlet.java:56)
        at javax.servlet.sip.SipServlet.service(SipServlet.java:43)
        at com.ericsson.wong.sip.cdg.CdgServletTest.testdoInviteSendBusy(CdgServletTest.java:254)
        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.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
        at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

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