public void GetAll_When16ArticlesInDb_ShouldReturn10Articles()
        {
            Article[] articles = this.GenerateValidTestArticles(16);

            var repo = Mock.Create<IRepository<Article>>();
            Mock.Arrange(() => repo.All())
                .Returns(() => articles.AsQueryable());

            var data = Mock.Create<IArticlesData>();

            Mock.Arrange(() => data.Articles)
                .Returns(() => repo);

            var controller = new ArticlesController(data);
            this.SetupController(controller);

            var actionResult = controller.Get();

            var response = actionResult.ExecuteAsync(CancellationToken.None).Result;

            var actual = response.Content.ReadAsAsync<IEnumerable<ArticleDataModel>>().Result.Select(a => a.ID).ToList();

            var expected = articles.AsQueryable()
                .OrderByDescending(a => a.DateCreated)
                .Take(10)
                .Select(a => a.ID).ToList();

            CollectionAssert.AreEquivalent(expected, actual);
        }
        public void GetAll_WhenArticlesInDb_ShouldReturnArticles()
        {
            Article[] articles = this.GenerateValidTestArticles(1);

            var data = Mock.Create<IArticlesData>();
            Mock.Arrange(() => data.Articles.All()).Returns(() => articles.AsQueryable());

            var controller = new ArticlesController(data);
            this.SetupController(controller);

            IHttpActionResult actionResult = controller.Get();
            var response = actionResult.ExecuteAsync(CancellationToken.None).Result;
            var actual = response.Content.ReadAsAsync<IEnumerable<ArticleViewModel>>().Result.Select(a => a.Id).ToList();

            var expected = articles.AsQueryable().Select(a => a.Id).ToList();

            CollectionAssert.AreEquivalent(expected, actual);
        }