public void FindClosestTweetToTimeTest() { // Set up TweetMiner miner = new TweetMiner(); DateTime time = DateTime.Now.AddDays(-1); TimeSpan oneMin = new TimeSpan(0,1,0); // Execute var tweet = miner.FindClosestTweetToTime(time, "I"); // Validate Assert.IsNotNull(tweet); Assert.IsNotNull(tweet.Text); Assert.IsTrue(tweet.CreatedAt.Subtract(time) < oneMin); }
public void SearchTest() { // Set up TweetMiner miner = new TweetMiner(); int count = 20; DateTime time = DateTime.Now.AddDays(-2); DateTime until = new DateTime(time.Year, time.Month, time.Day); // Execute var task = miner.Search("I", 20, until); var statuses = task.Result; // Validate Assert.IsNotNull(statuses); Assert.AreEqual(count, statuses.Count); foreach (var status in statuses) { // check the tweet actually happened before the until parameter Assert.IsTrue(status.CreatedAt < until); } }
public void BuildQueryTest() { string expected = "#chelsea OR #cfc OR #coys OR #thfc OR #CFCTHFC"; // Set up teams Team chelsea = new Team() { Name = "Chelsea", ShortName = "CFC", Hashtags = new List<Hashtag>() }; foreach (var tag in new List<string>() { "#chelsea", "#cfc" }) chelsea.Hashtags.Add(new Hashtag() { Value = tag }); Team spurs = new Team() { Name = "Tottenham Hotspur", ShortName = "THFC", Hashtags = new List<Hashtag>() }; foreach (var tag in new List<string>() { "#coys", "#thfc" }) chelsea.Hashtags.Add(new Hashtag() { Value = tag }); // Set up the Game Game game = new Game() { HomeTeam = chelsea, AwayTeam = spurs, Start = new DateTime(2014, 3, 8, 17, 30, 0), }; TweetMiner miner = new TweetMiner(); // Execute string actual = miner.BuildQuery(game); // Validate Assert.IsNotNull(actual); Assert.AreEqual(expected, actual); }
static void Main(string[] args) { if (args[0] == "fixture") { int start = Int32.Parse(args[1]); int end = Int32.Parse(args[2]); var miner = new FixtureMiner() { StartWeek = start, EndWeek = end }; miner.Mine(); } else if (args[0] == "event") { int matchId = -1; int dayIdStart = -1; int dayIdEnd = -1; if (args.Length == 4) { matchId = Int32.Parse(args[1]); dayIdStart = Int32.Parse(args[2]); dayIdEnd = Int32.Parse(args[3]); } else if (args.Length == 2) { dayIdEnd = Int32.Parse(args[1]); using (var repository = new GameRepository()) { var game = repository.GetAll() .Where(g => g.MatchDay == dayIdEnd - 1) .OrderByDescending(g => g.LiveMatchId ?? -1).Take(1).First(); matchId = (int)game.LiveMatchId + 1; dayIdStart = dayIdEnd; } } else { using (var repository = new GameRepository()) { var game = repository.GetAll().OrderByDescending(g => g.LiveMatchId ?? -1).Take(1).First(); matchId = (int)game.LiveMatchId + 1; dayIdStart = (int)game.MatchDay; dayIdEnd = 38; // assume 38 weeks in season } } GameEventMiner miner = new GameEventMiner() { StartMatchId = matchId, StartMatchDayId = dayIdStart, EndMatchDayId = dayIdEnd }; miner.Mine(); } else if (args[0] == "twitter") { int minMatchDay = 0; if (args.Length == 2) { minMatchDay = Int32.Parse(args[1]); } TweetMiner miner = new TweetMiner() { MinGameDay = minMatchDay }; var task = miner.Mine(); Console.Out.WriteLine("Complete!"); } else if (args[0] == "print") { long id = 0; DateTime time; if (args.Length == 3) { time = DateTime.Parse(args[1]); DateTimeOffset offset = new DateTimeOffset(time, new TimeSpan(0, 0, 0)); id = long.Parse(args[2]); TweetMiner miner = new TweetMiner(); miner.PrintTweetsAfterTime(time, id); } } else if (args[0] == "activity") { ActivityChartManager manager = new ActivityChartManager(); manager.UpdateAll(); Console.Out.WriteLine("Complete!"); } else if (args[0] == "counts") { TweetCountManager manager = new TweetCountManager(); manager.UpdateAll(); Console.Out.WriteLine("Complete!"); } else if (args[0] == "topevents") { TopEventManager top = new TopEventManager(); top.Update(); Console.Out.WriteLine("Complete!"); } }