INT-1553 third round of refactoring to align with Spring Social, removed direct dependency on Paging, modified and enhanced a few tests

This commit is contained in:
Oleg Zhurakousky
2010-11-08 16:13:52 -05:00
parent 49fc149e63
commit 59a15d6177
9 changed files with 58 additions and 48 deletions

View File

@@ -71,15 +71,7 @@ public class Twitter4jTemplate implements TwitterOperations{
throw new TwitterOperationException("Failed to obtain profile id ", e);
}
}
//@Override
public RateLimitStatus getRateLimitStatus() {
try {
return twitter.getRateLimitStatus();
}
catch (Exception e) {
throw new TwitterOperationException("Failed to obtain Rate Limit status ", e);
}
}
@Override
public List<Tweet> getDirectMessages() {
@@ -92,9 +84,9 @@ public class Twitter4jTemplate implements TwitterOperations{
}
}
@Override
public List<Tweet> getDirectMessages(Paging paging) {
public List<Tweet> getDirectMessages(long sinceId) {
try {
ResponseList<DirectMessage> directMessages = twitter.getDirectMessages(paging);
ResponseList<DirectMessage> directMessages = twitter.getDirectMessages(new Paging(sinceId));
return this.buildTweetsFromTwitterResponses(directMessages);
}
catch (Exception e) {
@@ -112,9 +104,9 @@ public class Twitter4jTemplate implements TwitterOperations{
}
}
@Override
public List<Tweet> getMentions(Paging paging) {
public List<Tweet> getMentions(long sinceId) {
try {
ResponseList<Status> mentions = twitter.getMentions(paging);
ResponseList<Status> mentions = twitter.getMentions(new Paging(sinceId));
return this.buildTweetsFromTwitterResponses(mentions);
}
catch (Exception e) {
@@ -132,9 +124,9 @@ public class Twitter4jTemplate implements TwitterOperations{
}
}
@Override
public List<Tweet> getFriendsTimeline(Paging paging) {
public List<Tweet> getFriendsTimeline(long sinceId) {
try {
ResponseList<Status> timelines = twitter.getFriendsTimeline(paging);
ResponseList<Status> timelines = twitter.getFriendsTimeline(new Paging(sinceId));
return this.buildTweetsFromTwitterResponses(timelines);
}
catch (Exception e) {

View File

@@ -17,7 +17,6 @@ package org.springframework.integration.twitter.core;
import java.util.List;
import twitter4j.Paging;
import twitter4j.Twitter;
/**
@@ -31,15 +30,15 @@ public interface TwitterOperations {
List<Tweet> getDirectMessages();
List<Tweet> getDirectMessages(Paging paging);
List<Tweet> getDirectMessages(long sinceId);
List<Tweet> getMentions();
List<Tweet> getMentions(Paging paging);
List<Tweet> getMentions(long sinceId);
List<Tweet> getFriendsTimeline();
List<Tweet> getFriendsTimeline(Paging paging);
List<Tweet> getFriendsTimeline(long sinceId);
void sendDirectMessage(String userName, String text);

View File

@@ -52,7 +52,7 @@ public class DirectMessageReceivingMessageSource extends AbstractTwitterMessageS
if (tweets.size() <= prefetchThreshold){
List<Tweet> dms = !hasMarkedStatus()
? twitter.getDirectMessages()
: twitter.getDirectMessages(new Paging(sinceId));
: twitter.getDirectMessages(sinceId);
if (!CollectionUtils.isEmpty(dms)){
forwardAll(dms);

View File

@@ -47,7 +47,7 @@ public class MentionReceivingMessageSource extends AbstractTwitterMessageSource<
if (tweets.size() <= prefetchThreshold){
List<Tweet> stats = (!hasMarkedStatus())
? twitter.getMentions()
: twitter.getMentions(new Paging(sinceId));
: twitter.getMentions(sinceId);
forwardAll(stats);
}
} catch (Exception e) {

View File

@@ -49,7 +49,9 @@ public class TimelineUpdateReceivingMessageSource extends AbstractTwitterMessage
try {
long sinceId = getMarkerId();
if (tweets.size() <= prefetchThreshold){
List<Tweet> tweets = !hasMarkedStatus() ? twitter.getFriendsTimeline() : twitter.getFriendsTimeline(new Paging(sinceId));
List<Tweet> tweets = !hasMarkedStatus()
? twitter.getFriendsTimeline()
: twitter.getFriendsTimeline(sinceId);
forwardAll(tweets);
}
} catch (Exception e) {

View File

@@ -70,16 +70,11 @@ public class Twitter4jTemplateTests {
when(twitter.getScreenName()).thenReturn("kermit");
assertEquals("kermit", template.getProfileId());
}
@Test
public void testRateLimitStatus() throws Exception{
template.getRateLimitStatus();
verify(twitter, times(1)).getRateLimitStatus();
}
@Test
public void testGetDirectMessages() throws Exception{
template.getDirectMessages();
template.getDirectMessages(new Paging());
template.getDirectMessages(123);
verify(twitter, times(1)).getDirectMessages();
verify(twitter, times(1)).getDirectMessages(Mockito.any(Paging.class));
}
@@ -87,7 +82,7 @@ public class Twitter4jTemplateTests {
@Test
public void testGetMentions() throws Exception{
template.getMentions();
template.getMentions(new Paging());
template.getMentions(123);
verify(twitter, times(1)).getMentions();
verify(twitter, times(1)).getMentions(Mockito.any(Paging.class));
}
@@ -95,7 +90,7 @@ public class Twitter4jTemplateTests {
@Test
public void testGetFriendsTimeline() throws Exception{
template.getFriendsTimeline();
template.getFriendsTimeline(new Paging());
template.getFriendsTimeline(123);
verify(twitter, times(1)).getFriendsTimeline();
verify(twitter, times(1)).getFriendsTimeline(Mockito.any(Paging.class));
}

View File

@@ -34,15 +34,15 @@
</beans:bean>
<!-- <twitter:inbound-mention-channel-adapter twitter-template="twitterTemplate" channel="inbound_mentions">-->
<!-- <poller fixed-rate="5000" max-messages-per-poll="3"/>-->
<!-- </twitter:inbound-mention-channel-adapter>-->
<!-- <service-activator input-channel="inbound_mentions" ref="twitterAnnouncer" method="mention"/>-->
<twitter:inbound-dm-channel-adapter twitter-template="twitterTemplate" channel="inbound_dm">
<twitter:inbound-mention-channel-adapter twitter-template="twitterTemplate" channel="inbound_mentions">
<poller fixed-rate="5000" max-messages-per-poll="3"/>
</twitter:inbound-dm-channel-adapter>
<service-activator input-channel="inbound_dm" ref="twitterAnnouncer" method="dm"/>
</twitter:inbound-mention-channel-adapter>
<service-activator input-channel="inbound_mentions" ref="twitterAnnouncer" method="mention"/>
<!-- <twitter:inbound-dm-channel-adapter twitter-template="twitterTemplate" channel="inbound_dm">-->
<!-- <poller fixed-rate="5000" max-messages-per-poll="3"/>-->
<!-- </twitter:inbound-dm-channel-adapter>-->
<!-- <service-activator input-channel="inbound_dm" ref="twitterAnnouncer" method="dm"/>-->
<!-- <twitter:inbound-update-channel-adapter id="twitterInbound" twitter-template="twitterTemplate" channel="inbound_updates">-->
<!-- <poller fixed-rate="5000" max-messages-per-poll="3"/>-->

View File

@@ -19,9 +19,12 @@ package org.springframework.integration.twitter.inbound;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Queue;
@@ -48,8 +51,14 @@ public class DirectMessageReceivingMessageSourceTests {
private Tweet firstMessage;
private Tweet secondMessage;
private Tweet thirdMessage;
private Tweet fourthMessage;
private TwitterOperations twitter;
Twitter tw;
@Before
@@ -62,6 +71,14 @@ public class DirectMessageReceivingMessageSourceTests {
when(secondMessage.getCreatedAt()).thenReturn(new Date(2222222222L));
when(secondMessage.getId()).thenReturn((long) 2000);
thirdMessage = mock(Tweet.class);
when(thirdMessage.getCreatedAt()).thenReturn(new Date(66666666666L));
when(thirdMessage.getId()).thenReturn((long) 3000);
fourthMessage = mock(Tweet.class);
when(fourthMessage.getCreatedAt()).thenReturn(new Date(77777777777L));
when(fourthMessage.getId()).thenReturn((long) 4000);
when(twitter.getProfileId()).thenReturn("kermit");
Twitter tw = mock(Twitter.class);
when(twitter.getUnderlyingTwitter()).thenReturn(tw);
@@ -101,7 +118,10 @@ public class DirectMessageReceivingMessageSourceTests {
assertEquals(1, msg.size()); // because the other message has a older timestamp and is assumed to be read by
Tweet message = (Tweet) msg.poll();
assertEquals(secondMessage, message);
Thread.sleep(1000);
verify(twitter, times(1)).getDirectMessages(2000);
// based on the Mock, the Queue shoud now have 2 mopre messages third and fourth
assertTrue(((Queue)TestUtils.getPropertyValue(source, "tweets")).size() == 2);
}
@@ -111,16 +131,18 @@ public class DirectMessageReceivingMessageSourceTests {
Twitter tw = mock(Twitter.class);
when(twitter.getUnderlyingTwitter()).thenReturn(tw);
when(tw.getRateLimitStatus()).thenReturn(rateLimitStatus);
when(rateLimitStatus.getSecondsUntilReset()).thenReturn(2464);
when(rateLimitStatus.getRemainingHits()).thenReturn(250);
when(rateLimitStatus.getSecondsUntilReset()).thenReturn(1000);
when(rateLimitStatus.getRemainingHits()).thenReturn(1000);
//ResponseList<DirectMessage> responses = mock(ResponseList.class);
SampleResoponceList testMessages = new SampleResoponceList();
testMessages.add(firstMessage);
testMessages.add(secondMessage);
//when(responses.iterator()).thenReturn(testMessages.iterator());
when(twitter.getDirectMessages()).thenReturn(testMessages);
when(twitter.getDirectMessages(Mockito.any(Paging.class))).thenReturn(testMessages);
testMessages = new SampleResoponceList();
testMessages.add(thirdMessage);
testMessages.add(fourthMessage);
when(twitter.getDirectMessages((long)2000)).thenReturn(testMessages);
}
@SuppressWarnings({ "rawtypes", "serial" })

View File

@@ -1,5 +1,5 @@
# oauth setup for prosibook twitter account
twitter.oauth.consumerKey=OU4CbkHKIWl1SI0VwiOgAQ
twitter.oauth.consumerSecret=p6pPukUG6d0ebSXuLSI9iaq2MIpzxJoLZyj6ilRmO3o
twitter.oauth.accessToken=61091649-vWVUNginOL069jjpm2lHEuxGXjW163kK3CPNZCdcc
twitter.oauth.accessTokenSecret=dufKyVlcngRitGDFfqiTlJC5leh6lsxPaq8FbeBc
twitter.oauth.consumerKey=
twitter.oauth.consumerSecret=
twitter.oauth.accessToken=
twitter.oauth.accessTokenSecret=