private static void Main(string[] args) { System.Console.WriteLine($"[{DateTime.Now}] - Starting program..."); var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); System.Console.WriteLine($"[{DateTime.Now}] - Environment: {environmentName}"); var builder = new ConfigurationBuilder() .AddJsonFile("appsettings.json", true, true) .AddJsonFile($"appsettings.{environmentName}.json", true, true); _configuration = builder.Build(); try { // Set the InfluxDB metrics collector var influxDbServerAddress = GetInfluxDbServerAddress(); IMetricsCollectorWrapper metricsCollectorWrapper = new MetricsCollectorWrapper(influxDbServerAddress, Db, TimeSpan.FromSeconds(2)); var repository = new TweetsRepository(metricsCollectorWrapper); // Start the Twitter Stream var credentials = GetTwitterCredentials(); var keys = new TextAnalyticsConfiguration(_configuration); var streamFactory = new StreamFactory(new TweetProcessor(repository, keys, HttpClient), credentials, null); var keyword = GetKeyword(); streamFactory.StartStream(keyword); } catch (Exception e) { System.Console.Error.WriteLine($"[{DateTime.Now}] - Exception: {e.Message}"); } }
public void SaveTweet() { // Arrange var metricsCollectorWrapper = new Mock <IMetricsCollectorWrapper>(); var tweetsRepository = new TweetsRepository(metricsCollectorWrapper.Object); var tweet = new Mock <ITweet>(); tweet.SetupGet(x => x.Text).Returns("Hi there!"); tweet.SetupGet(x => x.CreatedBy.UserIdentifier.ScreenName).Returns("@bob"); tweet.SetupGet(x => x.IsRetweet).Returns(false); tweet.SetupGet(x => x.RetweetCount).Returns(5); tweet.SetupGet(x => x.Favorited).Returns(true); tweet.SetupGet(x => x.FavoriteCount).Returns(1); tweet.SetupGet(x => x.CreatedAt).Returns(new DateTime(2019, 02, 10, 01, 02, 03)); // Act tweetsRepository.SaveTweet(new MatchedTweetReceivedEventArgs(tweet.Object, "")); // Assert var fields = new Dictionary <string, object> { { "text", "Hi there!" }, { "screen_name", "@bob" }, { "isRetweet", false }, { "retweetCount", 5 }, { "favorited", true }, { "favoriteCount", 1 }, { "created_at", new DateTime(2019, 02, 10, 01, 02, 03) } }; metricsCollectorWrapper.Verify(x => x.Write("tweet", fields), Times.Once); }
public void SaveNullSentiment() { // Arrange var metricsCollectorWrapper = new Mock <IMetricsCollectorWrapper>(); var tweetsRepository = new TweetsRepository(metricsCollectorWrapper.Object); // Act tweetsRepository.SaveSentiment(null); // Assert metricsCollectorWrapper.Verify(x => x.Write("sentiment", It.IsAny <Dictionary <string, object> >()), Times.Never); }
private static void Main(string[] args) { Console.WriteLine($"[{DateTime.Now}] - Starting program..."); var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); Console.WriteLine($"[{DateTime.Now}] - Environment: {environmentName}"); var builder = new ConfigurationBuilder() .AddJsonFile("appsettings.json", true, true) .AddJsonFile($"appsettings.{environmentName}.json", true, true); _configuration = builder.Build(); try { var documentClient = new DocumentClient(new Uri(_configuration["CosmosDB:EndpointUrl"]), _configuration["CosmosDB:AuthorizationKey"]); var repository = new TweetsRepository(documentClient); // Start the Twitter Stream var credentials = GetTwitterCredentials(); var keys = new TextAnalyticsConfiguration(_configuration); int.TryParse(_configuration["Twitter:TweetsPerMinute"], out var tweetsPerMinute); var streamFactory = new StreamFactory(new TweetProcessor(repository, keys, HttpClient), credentials, null, tweetsPerMinute); var keyword = GetKeyword(); streamFactory.StartStream(keyword); } catch (Exception e) { Console.Error.WriteLine($"[{DateTime.Now}] - Exception: {e.Message}"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } }
public void SaveValidSentiment() { // Arrange var metricsCollectorWrapper = new Mock <IMetricsCollectorWrapper>(); var tweetsRepository = new TweetsRepository(metricsCollectorWrapper.Object); // Act var tweetSentiment = new TweetSentiment { FullText = "I am happy!", Score = 0.99 }; tweetsRepository.SaveSentiment(tweetSentiment); // Assert var fields = new Dictionary <string, object> { { "fullText", "I am happy!" }, { "score", 0.99 } }; metricsCollectorWrapper.Verify(x => x.Write("sentiment", fields), Times.Once); }
public ActionResult GetMessages() { TweetsRepository _messageRepository = new TweetsRepository(); return(PartialView("_MessagesList", _messageRepository.GetAllTweets())); }