Exemple #1
0
        public void TestDetailsNull()
        {
            var tweetsController = new TweetsController();
            var result           = (HttpStatusCodeResult)tweetsController.Details(null);

            Assert.AreEqual(400, result.StatusCode);
        }
        public void TweetsController_Get_ReturnsTweets()
        {
            var testController = new TweetsController();
            var result         = testController.Get();

            Assert.Equal(result.Count(), 10);
        }
Exemple #3
0
 public void TestCleanup()
 {
     this.helper.Users.Clear();
     this.helper.HashTags.Clear();
     this.helper.Tweets.Clear();
     this.uowData           = null;
     this.controllerContext = null;
     this.controller        = null;
 }
        public void WhenReturnNoTweets()
        {
            //Arrange
            TweetsController controller = new TweetsController();

            // Act
            var result = controller.TimelineAsync().Result as ViewResult;

            // Assert
            Assert.IsNull(result);
        }
Exemple #5
0
        public void TestInitialize()
        {
            this.helper            = new TestHelpers();
            this.uowData           = this.helper.GetUnitOfWork();
            this.controllerContext = this.helper.GetControllerContext();

            var routes = new RouteCollection();

            Twitter.Application.RouteConfig.RegisterRoutes(routes);
            var helper = new UrlHelper(new RequestContext(MvcMockHelpers.FakeHttpContext(), new RouteData()), routes);

            this.controller     = new TweetsController(this.uowData.Object);
            this.controller.Url = helper;
            this.controller.ControllerContext = controllerContext.Object;
        }
Exemple #6
0
        public void GetTweetsBadRequestObjectResult()
        {
            // Arrange
            var configurationMoq = new Mock <IConfiguration>();
            var tweetServiceMoq  = new Mock <ITweetsService>();

            tweetServiceMoq.Setup(x => x.GetTweets("https://test.com", default(DateTime), default(DateTime)))
            .Returns(It.IsAny <Task <List <Tweet> > >());
            var controller = new TweetsController(configurationMoq.Object, tweetServiceMoq.Object);

            // Act
            var result = controller.GetTweets(default(DateTime), default(DateTime));

            // Assert
            Assert.IsType <BadRequestObjectResult>(result.Result);
        }
        public void WhenReturnAllTweets()
        {
            //Arrange
            TweetsController controller = new TweetsController();

            controller.TempData = new TempDataDictionary();
            controller.TempData = TestHelper.AuthorizeApplication();

            // Act
            var result = controller.TimelineAsync().Result as ViewResult;
            var model  = (List <TweetViewModel>)(result.Model);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(10, model.Count);
        }
Exemple #8
0
        public void TestDeletePrepareTweet()
        {
            var tweet = new Tweet
            {
                TweetId     = 4,
                Title       = "Title",
                Description = "ansmdkesndh",
            };
            var context = new Mock <ITweetContex>();

            context.Setup(a => a.FindTweetById(4)).Returns(tweet);
            var tweetsController = new TweetsController(context.Object);
            var result           = (ViewResult)tweetsController.Delete(4);

            Assert.AreEqual("Delete", result.ViewName);
        }
Exemple #9
0
        public void TestEditTweet()
        {
            var context = new FakeContext
            {
                Tweets = new[]
                {
                    new Tweet {
                        TweetId     = 1,
                        Title       = "Title",
                        Description = "ansmdkesndh"
                    }
                }.AsQueryable()
            };
            var tweetsController = new TweetsController(context);
            var result           = tweetsController.Edit(2);

            Assert.AreEqual(typeof(HttpNotFoundResult), result.GetType());
        }
Exemple #10
0
        public void TestDeleteConfirmTweet()
        {
            var context = new FakeContext
            {
                Tweets = new[]
                {
                    new Tweet {
                        TweetId     = 1,
                        Title       = "Title",
                        Description = "ansmdkesndh",
                    }
                }.AsQueryable()
            };
            var tweetsController = new TweetsController(context);
            var result           = (RedirectToRouteResult)tweetsController.DeleteConfirmed(1);

            Assert.AreEqual("Index", result.RouteValues["Action"]);
        }
Exemple #11
0
        public void TestDeletePrepareTweet()
        {
            var context = new FakeContext
            {
                Tweets = new[]
                {
                    new Tweet {
                        TweetId     = 1,
                        Title       = "Title",
                        Description = "ansmdkesndh",
                    }
                }.AsQueryable()
            };
            var tweetsController = new TweetsController(context);
            var result           = (ViewResult)tweetsController.Delete(1);

            Assert.AreEqual("Delete", result.ViewName);
        }
Exemple #12
0
        public void TestEditView()
        {
            var tweet =
                new Tweet
            {
                TweetId     = 4,
                Title       = "Title",
                Description = "ansmdkesndh",
            };
            var context = new Mock <ITweetContex>();

            context.Setup(a => a.FindTweetById(4)).Returns(tweet);
            var controller = new TweetsController(context.Object);
            var result     = controller.Edit(4) as ViewResult;
            var data       = (Tweet)result.Model;

            Assert.IsTrue("Edit" == result.ViewName && "Title" == data.Title);
        }
Exemple #13
0
        public void GetTweetsOkObjectResult()
        {
            // Arrange
            var startDate = DateTime.UtcNow.AddDays(-1);
            var endDate   = DateTime.UtcNow;

            var configurationMoq = new Mock <IConfiguration>();
            var tweetServiceMoq  = new Mock <ITweetsService>();

            tweetServiceMoq.Setup(x => x.GetTweets("https://test.com", startDate, endDate))
            .Returns(It.IsAny <Task <List <Tweet> > >());
            var controller = new TweetsController(configurationMoq.Object, tweetServiceMoq.Object);

            // Act
            var result = controller.GetTweets(startDate, endDate);

            // Assert
            Assert.IsType <OkObjectResult>(result.Result);
        }
Exemple #14
0
        public void GetAllTweets_ReturnOK()
        {
            // Arrange
            var allTweets = new[] {
                new TweetViewModel {
                    Id = 111, Text = "fake1"
                },
                new TweetViewModel {
                    Id = 112, Text = "fake2"
                },
            };

            var controller = new TweetsController();

            // Act
            var result = controller.GetAll();

            // Assert
            Assert.Equals(allTweets, result);
        }
        public async Task GetTweetArchive_ReturnsNotFoundResult_WhenRepoReturnsNull()
        {
            // Arrange
            var mockRepo = new Mock <ITweetDayRepository>();

            mockRepo.Setup(repo => repo.GetTweetArchiveAsync(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <DateTime>()))
            .Returns(Task.FromResult <QueryResult <TweetDay> >(null));

            var controller = new TweetsController(mockRepo.Object, _cache, _logger.Object,
                                                  _systemClock.Object, _mapper);

            // Act
            var result = await controller.GetTweetArchiveAsync(1, 1);

            // Assert
            Assert.IsType <ObjectResult>(result);
            var objectResult = result as ObjectResult;

            Assert.Equal(StatusCodes.Status500InternalServerError, objectResult.StatusCode);
            Assert.Equal($"tweets repository returned null", objectResult.Value);
        }
        public async Task GetTweetArchive_ReturnsBadRequestResult_WhenExceptionIsRaised()
        {
            // Arrange
            var mockRepo = new Mock <ITweetDayRepository>();

            mockRepo.Setup(repo => repo.GetTweetArchiveAsync(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <DateTime>()))
            .ThrowsAsync(new InvalidOperationException());

            var controller = new TweetsController(mockRepo.Object, _cache, _logger.Object,
                                                  _systemClock.Object, _mapper);

            // Act
            var result = await controller.GetTweetArchiveAsync(1, 1);

            // Assert
            Assert.IsType <ObjectResult>(result);
            var objectResult = result as ObjectResult;

            Assert.Equal(StatusCodes.Status500InternalServerError, objectResult.StatusCode);
            Assert.Equal("an unexpected error occurred", objectResult.Value);
        }
        public async Task GetTweetArchiveAsync_ReturnsOkObjectResult_WithObject()
        {
            // Arrange
            var mockRepo = new Mock <ITweetDayRepository>();

            mockRepo.Setup(repo => repo.GetTweetArchiveAsync(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <DateTime>()))
            .ReturnsAsync(GetQueryResult(30));

            var controller = new TweetsController(mockRepo.Object, _cache, _logger.Object,
                                                  _systemClock.Object, _mapper);

            // Act
            var result = await controller.GetTweetArchiveAsync(1, 25);

            // Assert
            var objectResult = result as ObjectResult;

            Assert.NotNull(objectResult);
            Assert.True(objectResult is OkObjectResult);
            Assert.Equal(StatusCodes.Status200OK, objectResult.StatusCode);
            var actual = Assert.IsType <TweetArchiveDto>(objectResult.Value);
        }
        public async Task Get_ReturnsOkObjectResult_WithViewModel()
        {
            // Arrange
            var mockRepo = new Mock <ITweetDayRepository>();

            mockRepo.Setup(repo => repo.GetTweetOfTheDayAsync(It.IsAny <DateTime>()))
            .ReturnsAsync(GetTestTweetDay());

            var controller = new TweetsController(mockRepo.Object, _cache, _logger.Object,
                                                  _systemClock.Object, _mapper);

            // Act
            var result = await controller.GetTweetDayAsync();

            // Assert
            var objectResult = result as ObjectResult;

            Assert.NotNull(objectResult);
            Assert.True(objectResult is OkObjectResult);
            Assert.Equal(StatusCodes.Status200OK, objectResult.StatusCode);
            Assert.IsType <TweetDayViewModel>(objectResult.Value);
        }
        public void GetTweets_check_isDuplicate_Tweets_remove()
        {
            // Arrange
            TweetService     tweetService = new TweetService();
            TweetsController controller   = new TweetsController(tweetService);
            TweetModel       viewModel    = new TweetModel()
            {
                EndDate    = "2016-01-20T04:07:56.271Z",
                StartDate  = "2017-01-20T04:07:56.271Z",
                TweetsData = Enumerable.Empty <TweetsData>()
            };


            // Act
            //var viewresult = tweetService.GetTweetsAsync(viewModel).Result;
            var testResult = controller.ViewTweets(viewModel).Result;

            viewModel = (TweetModel)((ViewResult)testResult).Model;


            // Assert
            Assert.IsTrue(viewModel.TweetsData.Count() < 100, $"Duplicate records removed");
        }
Exemple #20
0
        public void InitTweet(TweetsFeedView2 feedView, TweetsController tweetsController, AgeController ageController,
                              QuestController questController, Tweet tweet, bool isRoot = true)
        {
            _feedView         = feedView;
            _tweetsController = tweetsController;
            _ageController    = ageController;
            _questController  = questController;
            Tweet             = tweet;

            _questController.OnSenderAvatarChanged += OnSenderAvatarChanged;
            _questController.OnTweetImageChanged   += OnTweetImageChanged;
            Tweet.OnMessageChanged += OnTweetMessageChanged;

            var senderInfo = _senderCollection.GetSenderInfo(Tweet.SenderId);

            Avatar.sprite = senderInfo.OverrideAvatar ? senderInfo.OverrideAvatar : senderInfo.Avatar;
            InitSender(senderInfo.DisplayName);
            MessageText.text  = Tweet.Message;
            CommentsText.text = Tweet.CommentsCount.ToString();
            UpdateLikesCount(Tweet.LikesCount);
            UpdateRetweetsCount(Tweet.RetweetsCount);

            AgeRestrictionRoot.SetActive(false);
            if (Tweet.ImageId == -1)
            {
                TweetImageRoot.SetActive(false);
            }
            else
            {
                TweetImageRoot.SetActive(true);
                TweetImage.sprite = _tweetSpritesCollection.GetTweetSprite(Tweet.Id, Tweet.ImageId);
                if (_tweetSpritesCollection.IsAgeRestricted(Tweet.Id, Tweet.ImageId))
                {
                    AgeRestrictionRoot.SetActive(!_ageController.IsAdult);
                    _ageController.OnIsAdultChanged += OnIsAdultChanged;
                }
            }

            LayoutGroup.padding.left     = isRoot ? 0 : 100;
            RightAreaTransform.sizeDelta = new Vector2(isRoot ? 490 : 390, RightAreaTransform.sizeDelta.y);

            CommentButton.gameObject.SetActive(isRoot);

            if (tweet.Type == TweetType.Temporary)
            {
                StartCoroutine(TempDisappearCoro());
            }
            else
            {
                if (isRoot)
                {
                    Tweet.OnCommentsCountChanged += OnCommentsCountChanged;
                }
                Tweet.OnLikesCountChanged    += UpdateLikesCount;
                Tweet.OnRetweetsCountChanged += UpdateRetweetsCount;
                Tweet.OnPlayerLikeChanged    += OnPlayerLikeChanged;
                Tweet.OnPlayerRetweetChanged += OnPlayerRetweetChanged;
                OnPlayerLikeChanged(Tweet.PlayerLike);
                OnPlayerRetweetChanged(Tweet.PlayerRetweet);
            }
        }
Exemple #21
0
        public TweetsControllerFixture()
        {
            //Mock DbSet<adverts>
            var tweets = new List <Tweet>()
            {
                new Tweet
                {
                    Id             = "twt1",
                    Text           = "Tweet 1",
                    SentimentScore = (float)0.05,
                    FavoriteCount  = 11,
                    RetweetCount   = 2,
                    NamedEntities  = null,
                    Timestamp      = DateTime.Now,
                    Urls           = null,
                    UserId         = "usr1"
                },
                new Tweet
                {
                    Id             = "twt2",
                    Text           = "Tweet 2",
                    SentimentScore = (float)-0.4,
                    FavoriteCount  = 10,
                    RetweetCount   = 0,
                    NamedEntities  = null,
                    Timestamp      = DateTime.Now,
                    Urls           = null,
                    UserId         = "usr1"
                },
                new Tweet
                {
                    Id             = "twt3",
                    Text           = "Tweet 3",
                    SentimentScore = (float)0.55,
                    FavoriteCount  = 2,
                    RetweetCount   = 0,
                    NamedEntities  = null,
                    Timestamp      = DateTime.Now,
                    Urls           = null,
                    UserId         = "usr2"
                },
                new Tweet
                {
                    Id             = "twt4",
                    Text           = "Tweet 4",
                    SentimentScore = (float)0.95,
                    FavoriteCount  = 7,
                    RetweetCount   = 1,
                    NamedEntities  = null,
                    Timestamp      = DateTime.Now,
                    Urls           = null,
                    UserId         = "usr3"
                },
                new Tweet
                {
                    Id             = "twt5",
                    Text           = "Tweet 5",
                    SentimentScore = (float)-0.35,
                    FavoriteCount  = 3,
                    RetweetCount   = 0,
                    NamedEntities  = null,
                    Timestamp      = DateTime.Now,
                    Urls           = null,
                    UserId         = "usr2"
                },
                new Tweet
                {
                    Id             = "twt6",
                    Text           = "Tweet 6",
                    SentimentScore = (float)-0.95,
                    FavoriteCount  = 6,
                    RetweetCount   = 2,
                    NamedEntities  = null,
                    Timestamp      = DateTime.Now,
                    Urls           = null,
                    UserId         = "usr1"
                },
                new Tweet
                {
                    Id             = "twt7",
                    Text           = "Tweet 7",
                    SentimentScore = (float)0.25,
                    FavoriteCount  = 5,
                    RetweetCount   = 1,
                    NamedEntities  = null,
                    Timestamp      = DateTime.Now,
                    Urls           = null,
                    UserId         = "usr1"
                },
                new Tweet
                {
                    Id             = "twt8",
                    Text           = "Tweet 8",
                    SentimentScore = (float)0.05,
                    FavoriteCount  = 0,
                    RetweetCount   = 1,
                    NamedEntities  = null,
                    Timestamp      = DateTime.Now,
                    Urls           = null,
                    UserId         = "usr1"
                },
                new Tweet
                {
                    Id             = "twt9",
                    Text           = "Tweet 9",
                    SentimentScore = (float)-0.05,
                    FavoriteCount  = 0,
                    RetweetCount   = 0,
                    NamedEntities  = null,
                    Timestamp      = DateTime.Now,
                    Urls           = null,
                    UserId         = "usr1"
                }
            }.AsQueryable();

            //Mock DbSet<UrlTweet>
            var urls = new List <UrlTweet>()
            {
                new UrlTweet()
                {
                    Tweet   = tweets.Where(t => t.Id.Equals("twt1")).FirstOrDefault(),
                    TweetId = "twt1",
                    Url     = "http://example.com/url1"
                },
                new UrlTweet()
                {
                    Tweet   = tweets.Where(t => t.Id.Equals("twt2")).FirstOrDefault(),
                    TweetId = "twt2",
                    Url     = "http://example.com/url1"
                },
                new UrlTweet()
                {
                    Tweet   = tweets.Where(t => t.Id.Equals("twt3")).FirstOrDefault(),
                    TweetId = "twt3",
                    Url     = "http://example.com/url1"
                },
                new UrlTweet()
                {
                    Tweet   = tweets.Where(t => t.Id.Equals("twt4")).FirstOrDefault(),
                    TweetId = "twt4",
                    Url     = "http://example.com/url2"
                },
                new UrlTweet()
                {
                    Tweet   = tweets.Where(t => t.Id.Equals("twt5")).FirstOrDefault(),
                    TweetId = "twt5",
                    Url     = "http://example.com/url2"
                },
                new UrlTweet()
                {
                    Tweet   = tweets.Where(t => t.Id.Equals("twt6")).FirstOrDefault(),
                    TweetId = "twt6",
                    Url     = "http://example.com/url3"
                },
                new UrlTweet()
                {
                    Tweet   = tweets.Where(t => t.Id.Equals("twt7")).FirstOrDefault(),
                    TweetId = "twt7",
                    Url     = "http://example.com/url3"
                },
                new UrlTweet()
                {
                    Tweet   = tweets.Where(t => t.Id.Equals("twt8")).FirstOrDefault(),
                    TweetId = "twt8",
                    Url     = "http://example.com/url4"
                }
            }.AsQueryable();

            var indexedUrls = new List <UrlTweetIndex>()
            {
                new UrlTweetIndex()
                {
                    Tweet   = tweets.Where(t => t.Id.Equals("twt1")).FirstOrDefault(),
                    TweetId = "twt1",
                    Url     = "http://example.com/url1"
                },
                new UrlTweetIndex()
                {
                    Tweet   = tweets.Where(t => t.Id.Equals("twt2")).FirstOrDefault(),
                    TweetId = "twt2",
                    Url     = "http://example.com/url1"
                },
                new UrlTweetIndex()
                {
                    Tweet   = tweets.Where(t => t.Id.Equals("twt4")).FirstOrDefault(),
                    TweetId = "twt4",
                    Url     = "http://example.com/url2"
                },
                new UrlTweetIndex()
                {
                    Tweet   = tweets.Where(t => t.Id.Equals("twt5")).FirstOrDefault(),
                    TweetId = "twt5",
                    Url     = "http://example.com/url2"
                },
                new UrlTweetIndex()
                {
                    Tweet   = tweets.Where(t => t.Id.Equals("twt9")).FirstOrDefault(),
                    TweetId = "twt9",
                    Url     = "http://example.com/url5"
                }
            }.AsQueryable();

            Mock <DbSet <Tweet> > mockTweets = new Mock <DbSet <Tweet> >();

            mockTweets.As <IQueryable <Tweet> >().Setup(m => m.Provider).Returns(tweets.Provider);
            mockTweets.As <IQueryable <Tweet> >().Setup(m => m.Expression).Returns(tweets.Expression);
            mockTweets.As <IQueryable <Tweet> >().Setup(m => m.ElementType).Returns(tweets.ElementType);
            mockTweets.As <IQueryable <Tweet> >().Setup(m => m.GetEnumerator()).Returns(tweets.GetEnumerator());

            Mock <DbSet <UrlTweet> > mockUrls = new Mock <DbSet <UrlTweet> >();

            mockUrls.As <IQueryable <UrlTweet> >().Setup(m => m.Provider).Returns(urls.Provider);
            mockUrls.As <IQueryable <UrlTweet> >().Setup(m => m.Expression).Returns(urls.Expression);
            mockUrls.As <IQueryable <UrlTweet> >().Setup(m => m.ElementType).Returns(urls.ElementType);
            mockUrls.As <IQueryable <UrlTweet> >().Setup(m => m.GetEnumerator()).Returns(urls.GetEnumerator());

            Mock <DbSet <UrlTweetIndex> > mockIndexedUrls = new Mock <DbSet <UrlTweetIndex> >();

            mockIndexedUrls.As <IQueryable <UrlTweetIndex> >().Setup(m => m.Provider).Returns(indexedUrls.Provider);
            mockIndexedUrls.As <IQueryable <UrlTweetIndex> >().Setup(m => m.Expression).Returns(indexedUrls.Expression);
            mockIndexedUrls.As <IQueryable <UrlTweetIndex> >().Setup(m => m.ElementType).Returns(indexedUrls.ElementType);
            mockIndexedUrls.As <IQueryable <UrlTweetIndex> >().Setup(m => m.GetEnumerator()).Returns(indexedUrls.GetEnumerator());

            //Mock tweet repository
            MockRepo = new Mock <ITweetRepository>();
            MockRepo.Setup(m => m.Tweets).Returns(mockTweets.Object);
            MockRepo.Setup(m => m.Urls).Returns(mockUrls.Object);
            MockRepo.Setup(m => m.IndexedUrls).Returns(mockIndexedUrls.Object);

            //Mock pagingoptions
            Mock <PagingOptions> mockPagingOpts = new Mock <PagingOptions>();

            mockPagingOpts.SetupGet(po => po.PageSize).Returns(3);

            Mock <IOptions <PagingOptions> > mockIOptions = new Mock <IOptions <PagingOptions> >();

            mockIOptions.Setup(m => m.Value).Returns(mockPagingOpts.Object);

            //Create controller
            Controller = new TweetsController(mockIOptions.Object, MockRepo.Object);
        }
Exemple #22
0
 public void InitTest()
 {
     _tweetStatisticsService = new Mock <ITweetStatisticsService>();
     _logger = new Mock <ILogger <TweetsController> >();
     _tweetStatisticsController = new TweetsController(_tweetStatisticsService.Object, _logger.Object);
 }
        public void TweetsController_AppAuth_GeneratesBearerToken()
        {
            var testController = new TweetsController();

            Assert.NotNull(testController.bearerToken);
        }