/** Unit Test ensuring some basic initialization properties being set. */ @Test public void testSearchReceivingMessageSourceInit() { final SearchReceivingMessageSource messageSource = new SearchReceivingMessageSource(new TwitterTemplate("test"), "foo"); messageSource.setComponentName("twitterSearchMessageSource"); final Object metadataStore = TestUtils.getPropertyValue(messageSource, "metadataStore"); final Object metadataKey = TestUtils.getPropertyValue(messageSource, "metadataKey"); assertNull(metadataStore); assertNotNull(metadataKey); messageSource.setBeanFactory(mock(BeanFactory.class)); messageSource.afterPropertiesSet(); final Object metadataStoreInitialized = TestUtils.getPropertyValue(messageSource, "metadataStore"); final Object metadataKeyInitialized = TestUtils.getPropertyValue(messageSource, "metadataKey"); assertNotNull(metadataStoreInitialized); assertTrue(metadataStoreInitialized instanceof SimpleMetadataStore); assertNotNull(metadataKeyInitialized); assertEquals("foo", metadataKeyInitialized); final Twitter twitter = TestUtils.getPropertyValue(messageSource, "twitter", Twitter.class); assertFalse(twitter.isAuthorized()); assertNotNull(twitter.userOperations()); }
/** Verify that a polling operation returns in fact 3 results. */ @Test public void testPollForTweetsThreeResults() { final TwitterTemplate twitterTemplate; final SearchOperations so = mock(SearchOperations.class); final List<Tweet> tweets = new ArrayList<Tweet>(); tweets.add(mock(Tweet.class)); tweets.add(mock(Tweet.class)); tweets.add(mock(Tweet.class)); final SearchResults results = new SearchResults(tweets, new SearchMetadata(111, 111)); twitterTemplate = mock(TwitterTemplate.class); when(twitterTemplate.searchOperations()).thenReturn(so); SearchParameters params = new SearchParameters(SEARCH_QUERY).count(20).sinceId(0); when(twitterTemplate.searchOperations().search(params)).thenReturn(results); final SearchReceivingMessageSource messageSource = new SearchReceivingMessageSource(twitterTemplate, "foo"); messageSource.setQuery(SEARCH_QUERY); final List<Tweet> tweetSearchResults = messageSource.pollForTweets(0); assertNotNull(tweetSearchResults); assertEquals(3, tweetSearchResults.size()); }
@SuppressWarnings("unchecked") @Test @Ignore public void demoReceiveSearchResults() throws Exception { PropertiesFactoryBean pf = new PropertiesFactoryBean(); pf.setLocation(new ClassPathResource("sample.properties")); pf.afterPropertiesSet(); Properties prop = pf.getObject(); TwitterTemplate template = new TwitterTemplate( prop.getProperty("z_oleg.oauth.consumerKey"), prop.getProperty("z_oleg.oauth.consumerSecret"), prop.getProperty("z_oleg.oauth.accessToken"), prop.getProperty("z_oleg.oauth.accessTokenSecret")); SearchReceivingMessageSource tSource = new SearchReceivingMessageSource(template, "foo"); tSource.setQuery(SEARCH_QUERY); tSource.afterPropertiesSet(); for (int i = 0; i < 50; i++) { Message<Tweet> message = (Message<Tweet>) tSource.receive(); if (message != null) { Tweet tweet = message.getPayload(); logger.info(tweet.getFromUser() + " - " + tweet.getText() + " - " + tweet.getCreatedAt()); } } }
/** * This test ensures that when polling for a list of Tweets null is never returned. In case of no * polling results, an empty list is returned instead. */ @Test public void testPollForTweetsNullResults() { final TwitterTemplate twitterTemplate = mock(TwitterTemplate.class); final SearchOperations so = mock(SearchOperations.class); when(twitterTemplate.searchOperations()).thenReturn(so); when(twitterTemplate.searchOperations().search(SEARCH_QUERY, 20, 0, 0)).thenReturn(null); final SearchReceivingMessageSource messageSource = new SearchReceivingMessageSource(twitterTemplate, "foo"); messageSource.setQuery(SEARCH_QUERY); final String setQuery = TestUtils.getPropertyValue(messageSource, "query", String.class); assertEquals(SEARCH_QUERY, setQuery); assertEquals("twitter:search-inbound-channel-adapter", messageSource.getComponentType()); final List<Tweet> tweets = messageSource.pollForTweets(0); assertNotNull(tweets); assertTrue(tweets.isEmpty()); }