/*
* Copyright 2010 Peter Karich jetwick_@_pannous_._info
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.jetwick.bot;
import de.jetwick.es.ElasticTweetSearch;
import de.jetwick.es.JetwickQuery;
import de.jetwick.data.JTweet;
import de.jetwick.data.JUser;
import de.jetwick.tw.TwitterSearch;
import java.util.ArrayList;
import java.util.List;
import org.elasticsearch.action.search.SearchResponse;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import twitter4j.Status;
/**
*
* @author Peter Karich, jetwick_@_pannous_._info
*/
public class JetwotTest {
public JetwotTest() {
}
private List<JTweet> todoTweets = new ArrayList<JTweet>();
private List<Long> retweeted = new ArrayList<Long>();
private Jetwot bot;
@Before
public void setUp() throws Exception {
reset();
}
public void reset() {
retweeted.clear();
todoTweets.clear();
bot = new Jetwot() {
@Override
public void init() {
tw4j = new TwitterSearch() {
@Override
public Status doRetweet(long twitterId) {
retweeted.add(twitterId);
return null;
}
};
tweetSearch = new ElasticTweetSearch() {
@Override
public SearchResponse query(JetwickQuery query) {
return null;
}
@Override
public List<JTweet> collectObjects(SearchResponse rsp) {
return todoTweets;
}
};
}
};
}
@Test
public void testMain() {
todoTweets.add(new JTweet(1L, "test too short", new JUser("test")).setRetweetCount(2));
todoTweets.add(new JTweet(2L, "test this is not too short bercasu we addded a lot of unknown noise words", new JUser("test")).setRetweetCount(2));
bot.start(1, 0);
assertEquals(1, retweeted.size());
assertTrue(retweeted.contains(2L));
}
@Test
public void testAvoidSimilarRetweets() {
todoTweets.add(new JTweet(1L, "Dear kids, There is NO Santa Claus. Those presents are from your parents. \"With love, WikiLeaks\"", new JUser("ihackinjosh")).setRetweetCount(5));
todoTweets.add(new JTweet(2L, "Dear Kids, There is no Santa. Those presents are from your parents. Sincerely, Wikileaks. http://lil.as/1Nu (via @sapnabhavnani)", new JUser("dearblankplease")).setRetweetCount(4));
bot.start(2, 0);
assertEquals(1, retweeted.size());
assertTrue(retweeted.contains(1L));
}
}