Author: dkulp Date: Tue May 8 01:11:31 2012 New Revision: 1335319 URL: http://svn.apache.org/viewvc?rev=1335319&view=rev Log: Use JDK proxies to mock the things so it will build on Java7
Removed: camel/trunk/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/mocks/StatusMock.java camel/trunk/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/mocks/TwitterMock.java camel/trunk/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/mocks/TwitterStreamMock.java Modified: camel/trunk/components/camel-twitter/pom.xml camel/trunk/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/SearchEventTest.java Modified: camel/trunk/components/camel-twitter/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/pom.xml?rev=1335319&r1=1335318&r2=1335319&view=diff ============================================================================== --- camel/trunk/components/camel-twitter/pom.xml (original) +++ camel/trunk/components/camel-twitter/pom.xml Tue May 8 01:11:31 2012 @@ -66,6 +66,12 @@ <artifactId>slf4j-log4j12</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + <scope>test</scope> + </dependency> + </dependencies> <build> Modified: camel/trunk/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/SearchEventTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/SearchEventTest.java?rev=1335319&r1=1335318&r2=1335319&view=diff ============================================================================== --- camel/trunk/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/SearchEventTest.java (original) +++ camel/trunk/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/SearchEventTest.java Tue May 8 01:11:31 2012 @@ -16,25 +16,37 @@ */ package org.apache.camel.component.twitter; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; + import org.apache.camel.EndpointInject; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel.component.twitter.mocks.TwitterStreamMock; import org.apache.camel.impl.JndiRegistry; import org.junit.Test; +import twitter4j.Status; +import twitter4j.StatusListener; +import twitter4j.TwitterStream; + public class SearchEventTest extends CamelTwitterTestSupport { @EndpointInject(uri = "mock:result") protected MockEndpoint resultEndpoint; - private TwitterStreamMock twitterStream; + private TwitterStream twitterStream; + private StatusListener listener; @Test public void testSearchTimeline() throws Exception { resultEndpoint.expectedMinimumMessageCount(1); + Status status = (Status)Proxy.newProxyInstance(getClass().getClassLoader(), + new Class[] {Status.class}, + new TwitterHandler()); - twitterStream.updateStatus("#cameltest tweet"); + listener.onStatus(status); + //"#cameltest tweet"); resultEndpoint.assertIsSatisfied(); } @@ -49,9 +61,29 @@ public class SearchEventTest extends Cam @Override protected JndiRegistry createRegistry() throws Exception { - twitterStream = new TwitterStreamMock(); + twitterStream = (TwitterStream)Proxy.newProxyInstance(getClass().getClassLoader(), + new Class[] {TwitterStream.class}, + new TwitterHandler()); JndiRegistry registry = super.createRegistry(); registry.bind("twitterStream", twitterStream); return registry; } + + public class TwitterHandler implements InvocationHandler { + public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { + //mock some methods + if ("addListener".equals(method.getName())) { + listener = (StatusListener)args[0]; + } else if ("toString".equals(method.getName())) { + return this.toString(); + } else if ("getText".equals(method.getName())) { + return "#cameltest tweet"; + } else if ("getUser".equals(method.getName())) { + return Proxy.newProxyInstance(getClass().getClassLoader(), + new Class[] {twitter4j.User.class}, + new TwitterHandler()); + } + return null; + } + } }