public void GivenAQueryStringWhenGettingTweets()
        {
            _twitterSearchResult = new TwitterSearchResult
            {
                Statuses = new[]
                {
                    new TwitterStatus
                    {
                        Id = 1234,
                        User = new TwitterUser {ProfileImageUrl = "profile image url1"},
                        Text = "tweet text 1",
                        CreatedDate = DateTime.UtcNow
                    },
                    new TwitterStatus { CreatedDate = DateTime.UtcNow.AddSeconds(-2)},
                    new TwitterStatus
                    {
                        Id = 6789,
                        User = new TwitterUser {ProfileImageUrl = "profile image url2"},
                        Text = "tweet text 2",
                        CreatedDate = DateTime.UtcNow.AddSeconds(-1)
                    }
                }
            };

            _mockTwitterService = new Mock<ITwitterService>();
            _mockTwitterService
                .Setup(service => service.Search(It.IsAny<SearchOptions>()))
                .Returns(_twitterSearchResult);

            var feedService = new TwitterFeedService(_mockTwitterService.Object);
            _tweets = feedService.GetTweets("query text", 2);
        }
        public void Should_Return_Tweets()
        {
            var test = new TwitterFeedService("9AJLndlNaqSjHGHckVsmYHa1X", "NwH5IMAXNkFZfH5G8IgmfeWjk7LBodFtTJxwGXyFqNKfTPUfOI", "480297435-45jq7xC9BajE6q3OZBCmkPweIiVR8IKdlqLEvadl", "XgxtWW5C6ICXJjxPR8wtfK8GlBHDkARSMR9V0VjfMfGgC");

            var results = test.GetTwitterStatuses("Edgesmash", 100);

            Assert.IsNotEmpty(results);
            //Assert.IsNotEmpty(results.FirstOrDefault().Text);
            //Assert.AreEqual(results.FirstOrDefault().Author.ScreenName, "Edgesmash");

            //Console.WriteLine(results.FirstOrDefault().Author.ScreenName);
        }
        public override ActionResult Index()
        {
            var dataSourceId = RenderingContext.CurrentOrNull.Rendering.DataSource;
            var dataSource   = Sitecore.Context.Database.GetItem(dataSourceId);

            var title               = dataSource.Fields["Title"].Value ?? "Social wall";
            var countValue          = dataSource.Fields["Count"].Value ?? "100";
            var socialServicesValue = string.IsNullOrEmpty(dataSource.Fields["Social Services"].Value) ? "" : dataSource.Fields["Social Services"].Value;
            var socialServices      = socialServicesValue.Split(new [] { '|' }, StringSplitOptions.RemoveEmptyEntries);

            int count = 0;

            int.TryParse(countValue, out count);

            var posts = new List <SocialPost>();

            foreach (var socialService in socialServices)
            {
                var socialServiceItem = Sitecore.Context.Database.GetItem(socialService);
                if (socialServiceItem.TemplateID == new ID("{60660225-7FD1-4303-BBCA-DF2FDE1EC113}")) //facebook
                {
                    var clientId     = socialServiceItem.Fields["Client Id"].Value;
                    var developerKey = socialServiceItem.Fields["Developer Key"].Value;
                    var pageName     = socialServiceItem.Fields["Page name"].Value;

                    var facebookFeedService = new FacebookFeedService(clientId, developerKey);

                    posts.AddRange(facebookFeedService.GetPosts(pageName, count).ToList());
                }
                else if (socialServiceItem.TemplateID == new ID("{91A6C2AA-F068-4E3C-923D-C8378FDB9B38}")) //Twitter
                {
                    var consumerKey       = socialServiceItem.Fields["Consumer Key"].Value;
                    var consumerSecret    = socialServiceItem.Fields["Consumer Secret"].Value;
                    var accessToken       = socialServiceItem.Fields["Access Token"].Value;
                    var accessTokenSecret = socialServiceItem.Fields["Access Token Secret"].Value;
                    var twitterName       = socialServiceItem.Fields["Twitter Name"].Value;


                    var twitterFeedService = new TwitterFeedService(consumerKey, consumerSecret, accessToken, accessTokenSecret);

                    posts.AddRange(twitterFeedService.GetTwitterStatuses(twitterName, count).ToList());
                }
            }

            return(View("~/Views/SocialWall/Index.cshtml", new SocialPostViewModel
            {
                Title = title,
                Posts = posts.OrderByDescending(x => x.Date).Take(count).ToList()
            }));
        }
Пример #4
0
        public void Display()
        {
            StringBuilder sb = new StringBuilder();

            var twitterService = new TwitterFeedService("users.txt", "tweets.txt", (line) => sb.AppendLine(line));

            twitterService.ProcessAndDisplay();

            var splitBy = new string[] { "\r\n" };

            var expected = File.ReadAllText("DisplayText.txt").Split(splitBy, StringSplitOptions.None);
            var actual   = sb.ToString().Split(splitBy, StringSplitOptions.None);

            for (int i = 0; i < expected.Length; i++)
            {
                Assert.AreEqual(expected[i], actual[i]);
            }
        }