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;
+        }
+    }
 }


Reply via email to