public async Task InvokeAsyncInvalidShouldLogError() { var testOptions = new Mock <IOptions <TwitterOptions> >(); testOptions.SetupGet(x => x.Value).Returns(_twitterOptions.Object); var adapter = new TwitterAdapter(testOptions.Object); var httpResponse = new Mock <HttpResponse>(); httpResponse.SetupAllProperties(); httpResponse.Object.Body = new MemoryStream(); var request = new Mock <HttpRequest>(); request.SetupAllProperties(); request.Object.Method = HttpMethods.Get; request.Setup(req => req.Query.TryGetValue("crc_token", out _values)).Returns(false); var context = new Mock <HttpContext>(); context.SetupGet(x => x.Response).Returns(httpResponse.Object); context.SetupGet(x => x.Request).Returns(request.Object); var middleware = new WebhookMiddleware(testOptions.Object, _testLogger.Object, _testBot.Object, adapter); await middleware.InvokeAsync(context.Object, _testDelegate.Object); _testLogger.Verify(x => x.Log(LogLevel.Error, 0, It.IsAny <FormattedLogValues>(), null, It.IsAny <Func <object, Exception, string> >()), Times.Once); }
public async Task InvokeAsyncValidShouldSucceed() { var testOptions = new Mock <IOptions <TwitterOptions> >(); testOptions.SetupGet(x => x.Value).Returns(_twitterOptions.Object); var adapter = new TwitterAdapter(testOptions.Object); var httpResponse = new Mock <HttpResponse>(); httpResponse.SetupAllProperties(); httpResponse.Object.Body = new MemoryStream(); var request = new Mock <HttpRequest>(); request.SetupAllProperties(); request.Object.Method = HttpMethods.Get; request.Setup(req => req.Query.TryGetValue("crc_token", out _values)).Returns(true); var context = new Mock <HttpContext>(); context.SetupGet(x => x.Response).Returns(httpResponse.Object); context.SetupGet(x => x.Request).Returns(request.Object); var middleware = new WebhookMiddleware(testOptions.Object, _testLogger.Object, _testBot.Object, adapter); await middleware.InvokeAsync(context.Object, _testDelegate.Object); Assert.AreEqual(httpResponse.Object.StatusCode, (int)HttpStatusCode.OK); }
public void UseWithMiddlewareShouldSucceed() { var adapter = new TwitterAdapter(_testOptions.Object); var middleware = new Mock <IMiddleware>(); var result = adapter.Use(middleware.Object); Assert.IsFalse(result.MiddlewareSet.IsNullOrEmpty()); }
public string LinuxTweets() { string url = configuration.GetSection("Twitter").GetSection("url").Value; string consumer_key = configuration.GetSection("Twitter").GetSection("consumer_key").Value; string consumer_secret = configuration.GetSection("Twitter").GetSection("consumer_secret").Value; return(TwitterAdapter.TweeterCall(url, consumer_key, consumer_secret)); }
public async Task ProcessActivityShouldReturnNullReferenceException() { var adapter = new TwitterAdapter(_testOptions.Object); await Assert.ThrowsExceptionAsync <NullReferenceException>(async() => { await adapter.ProcessActivity(null, null); }); }
public WebhookMiddleware(IOptions <TwitterOptions> options, ILogger <WebhookMiddleware> logger, IBot bot, TwitterAdapter adapter) { _logger = logger; _bot = bot; _adapter = adapter; _options = options.Value; _interceptor = new WebhookInterceptor(_options.ConsumerSecret); }
private static async Task <List <SocialFeedItem> > SearchTwitterAsync(string query) { TwitterAdapter.ConsumerKey = ConfigurationManager.AppSettings["TwitterConsumerKey"].ToString(); TwitterAdapter.ConsumerSecret = ConfigurationManager.AppSettings["TwitterConsumerSecret"].ToString(); var results = await TwitterAdapter.SearchAsync(query); return(results); }
public async Task <ActionResult> TwitterSearchAsync(string query) { TwitterAdapter.ConsumerKey = TwitterConfiguration.ConsumerKeyApiKey; TwitterAdapter.ConsumerSecret = TwitterConfiguration.ConsumerSecretApiSecret; var results = TwitterAdapter.SearchAsync(query); var model = new TwitterSearch { Query = query, TwitterResult = results }; return(View(model)); }
public async Task SendActivitiesAsyncShouldReturnEmptyResponsesWithEmptyActivities() { var adapter = new TwitterAdapter(_testOptions.Object); var activity = new Activity(); using (var turnContext = new TurnContext(adapter, activity)) { var result = await adapter.SendActivitiesAsync(turnContext, new Activity[0], default); Assert.IsTrue(result.IsNullOrEmpty()); } }
public async Task UpdateActivityAsyncShouldReturnNotSupportedException() { var adapter = new TwitterAdapter(_testOptions.Object); var activity = new Activity(); using (var turnContext = new TurnContext(adapter, activity)) { await Assert.ThrowsExceptionAsync <NotSupportedException>(async() => { await adapter.UpdateActivityAsync(turnContext, activity, default); }); } }
public async Task <ActionResult> TwitterSearchAsync(string query) { TwitterAdapter.ConsumerKey = System.Web.HttpContext.Current.Application["TwitterConsumerKey"].ToString(); TwitterAdapter.ConsumerSecret = System.Web.HttpContext.Current.Application["TwitterConsumerSecret"].ToString(); var results = await TwitterAdapter.SearchAsync(query); var model = new TwitterSearch() { Query = query, ResultsXml = results }; return(this.View(model)); }
public async Task <ActionResult> TwitterSearchAsync(string query, int maxNumberOfResults, int dataSourceId) { TwitterAdapter.ConsumerKey = System.Web.HttpContext.Current.Application["TwitterConsumerKey"].ToString(); TwitterAdapter.ConsumerSecret = System.Web.HttpContext.Current.Application["TwitterConsumerSecret"].ToString(); var results = await TwitterAdapter.SearchAsync(query, maxNumberOfResults); var json = JsonConvert.SerializeObject(results); DEV_DB_LICEntities2 db = new DEV_DB_LICEntities2(); UserSearch usearch = new UserSearch() { QueryText = query, DataSourceId = dataSourceId, JsonResult = json, CreatedOn = DateTime.Now }; db.UserSearches.Add(usearch); /*var model = new TwitterSearch() { Query = query, ResultsXml = results };*/ db.SaveChanges(); db.Database.ExecuteSqlCommand("usp_ImportTweetsBySearchId @param1", new SqlParameter("param1", usearch.Id)); var resultsList = db.SearchResults.Where(r => r.UserSearchId == usearch.Id); List <TweetSentiment> tweetSentiments = new List <TweetSentiment>(); foreach (var r in resultsList) { tweetSentiments.Add(new TweetSentiment(r.Id.ToString(), r.TweetText)); } string apiKey = System.Web.HttpContext.Current.Application["CognitiveServicesKey"].ToString(); var sentimentResults = await SentimentAnalyzer.AnalyzeAsync(tweetSentiments, apiKey); foreach (var s in sentimentResults) { var recordToUpdate = db.SearchResults.SingleOrDefault(r => r.Id.ToString() == s.Id); if (recordToUpdate != null) { recordToUpdate.Score = s.Score; recordToUpdate.KeyPhrases = s.KeyPhrases; } } db.SaveChanges(); return(this.RedirectToAction("Details", "UserSearches", new { id = usearch.Id })); }
internal static AlexaResponse PickAWinnerIntentHandler(Request request) { TwitterAdapter.ConsumerKey = TwitterConfiguration.ConsumerKeyApiKey; TwitterAdapter.ConsumerSecret = TwitterConfiguration.ConsumerSecretApiSecret; var query = TwitterConfiguration.DefaultQuery; var results = TwitterAdapter.SearchAsync(query); var model = new TwitterSearch { Query = query, TwitterResult = results }; var result = model.TwitterResult[new Random().Next(model.TwitterResult.Count)]; using (var db = new alexaskilldemoEntities()) { var competitionWinner = db.CompetitionWinners.FirstOrDefault(); if (competitionWinner == null) { db.CompetitionWinners.Add(new CompetitionWinner { Name = result.ScreenNameResponse, Tweet = result.Text, CreatedDate = result.CreatedAt, ProfileImageUrl = result.ProfileImageUrl, UpdatedDate = DateTime.UtcNow }); } else { competitionWinner.Name = result.ScreenNameResponse; competitionWinner.Tweet = result.Text; competitionWinner.CreatedDate = result.CreatedAt; competitionWinner.ProfileImageUrl = result.ProfileImageUrl; competitionWinner.UpdatedDate = DateTime.UtcNow; } db.SaveChanges(); } var text = "I have selected user <prosody volume=\"x-loud\">" + result.ScreenNameResponse + "</prosody><emphasis level=\"moderate\"> Tweet <break time=\"1s\"/>" + result.Text + "</emphasis>" + "<audio src='https://s3.amazonaws.com/ask-soundlibrary/human/amzn_sfx_crowd_cheer_med_01.mp3'/> " + "<audio src='https://s3.amazonaws.com/ask-soundlibrary/human/amzn_sfx_crowd_applause_05.mp3'/>"; var response = new AlexaResponse(text, new SimpleCard() { Title = "Sitecore storefront", Content = text }, true, text); return(response); }
public async Task ProcessActivityShouldSucceed() { var adapter = new TwitterAdapter(_testOptions.Object); var directMessageEvent = new DirectMessageEvent(); var bot = new Mock <IBot>(); directMessageEvent.MessageText = "test message text"; directMessageEvent.Sender = new TwitterUser(); directMessageEvent.Recipient = new TwitterUser(); directMessageEvent.Sender.Id = string.Empty; directMessageEvent.Sender.ScreenName = string.Empty; directMessageEvent.Recipient.Id = string.Empty; directMessageEvent.Recipient.ScreenName = string.Empty; bot.SetupAllProperties(); await adapter.ProcessActivity(directMessageEvent, bot.Object.OnTurnAsync); bot.Verify(b => b.OnTurnAsync(It.IsAny <TurnContext>(), It.IsAny <CancellationToken>()), Times.Once); }