Пример #1
0
        public void GivenMockListWhenGetThenListHasCorrectLength()
        {
            // Act
            var result = controller.Get();
            var length = result.Value.Count();

            // Assert
            Assert.True(length == 2);
        }
Пример #2
0
        public void TestGetNewsReturns200OkWhenTheNewsIsInTheDatabase()
        {
            this.businessValidation.Setup(validation => validation.IsValidGetNews(this.newsStorageMock.Object, It.IsAny <string>(), It.IsAny <DateTime>(), It.IsAny <Guid>())).Returns(Task.FromResult(true));
            this.newsStorageMock.Setup(storage => storage.GetNews(It.IsAny <string>(), It.IsAny <DateTime>(), It.IsAny <Guid>())).Returns(Task.FromResult(News.ToNewsBll(Id, DefaultNews, City, DefaultUser.Nickname, DateTime.Parse(Date))));

            var newsController = new NewsController(this.newsStorageMock.Object, this.inputValidation.Object, this.businessValidation.Object);

            var request = new HttpRequestMessage(HttpMethod.Get, GOUriBuilder.BuildAbsoluteNewsUri(Scheme, Host, Port, City, Date, Id.ToString()));

            request.Headers.Referrer = new Uri(GOUriBuilder.BuildAbsoluteNewsUri(Scheme, Host, Port, City, Date, Id.ToString()));

            newsController.ConfigureForTesting(request, "ListNews", new HttpRoute(GOUriBuilder.GetNewsTemplate));

            HttpResponseMessage response = newsController.Get(City, Date, Id.ToString()).Result;

            HttpContent content     = response.Content;
            string      jsonContent = content.ReadAsStringAsync().Result;
            var         actualNews  = JsonConvert.DeserializeObject <NewsREST>(jsonContent);

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.IsTrue(new NewsCompleteEqualityComparer().Equals(DefaultNews, NewsREST.ToNews(actualNews)));
            Assert.IsTrue(actualNews.Links.Any(link => string.Equals("self", link.Rel)));
            Assert.AreEqual(new Uri(GOUriBuilder.BuildAbsoluteNewsUri(Scheme, Host, Port, City, Date, Id.ToString())), actualNews.Links.First(link => string.Equals("self", link.Rel)).Href);
            Assert.IsTrue(actualNews.Links.Any(link => string.Equals("author", link.Rel)));
            Assert.AreEqual(new Uri(GOUriBuilder.BuildAbsoluteUserUri(Scheme, Host, Port, NewsControllerTest.DefaultUser.Nickname)), actualNews.Links.First(link => string.Equals("author", link.Rel)).Href);
        }
        public void ListAllNews_returnAllNewsAndCode200Ok()
        {
            // Arrange
            var news1 = new NewsItem
            {
                Title       = "news 1",
                Content     = "News content",
                PublishDate = new DateTime(2000, 12, 1, 14, 01, 55)
            };

            var news2 = new NewsItem
            {
                Title       = "news 2",
                Content     = "News content2",
                PublishDate = new DateTime(2000, 12, 1, 14, 01, 55)
            };

            data.News.Add(news1);
            data.News.Add(news2);
            data.SaveChanges();
            this.SetupController(controller, "news");

            // Act
            var result       = controller.Get();
            var httpResponse = result.ExecuteAsync(new CancellationToken()).Result;
            var newsList     = httpResponse.Content.ReadAsAsync <List <NewsItem> >().Result;

            // Assesr
            Assert.AreEqual(HttpStatusCode.OK, httpResponse.StatusCode, "Incorect status code");
            Assert.AreEqual(2, newsList.Count, "Incorect newsItems count");
        }
Пример #4
0
        public async Task GetShouldReturnOk()
        {
            string userId = "Jack";
            var    user   = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim("userId", userId)
            }, "mock"));

            var mockService = new Mock <INewsService>();

            mockService.Setup(svc => svc.FindAllNewsByUserId(userId)).Returns(Task.FromResult(newsList));
            var controller = new NewsController(mockService.Object);

            controller.ControllerContext = new ControllerContext {
                HttpContext = new DefaultHttpContext {
                    User = user
                }
            };

            var actual = await controller.Get();

            var actionResult = Assert.IsType <OkObjectResult>(actual);

            Assert.IsAssignableFrom <List <News> >(actionResult.Value);
        }
Пример #5
0
        public void ReturnCorrectNewsInfoWhenGetAllNews(int id, string newsDate, string title, string text, string username)
        {
            // Assign
            var utcDate         = new DateTimeOffset(Convert.ToDateTime(newsDate));
            var news            = GetFakeNews(id, utcDate, title, text, username);
            var dateTimeFactory = new DateTimeFactory();

            DbContextFake.SeedDb <IntranetApiContext>(c => c.News.AddRange(news), ensureDeleted: true);

            using (var context = DbContextFake.GetDbContext <IntranetApiContext>())
            {
                var newsController = new NewsController(context, dateTimeFactory);

                // Act
                var fetchNews          = newsController.Get();
                var okObjectResult     = fetchNews as OkObjectResult;
                var iEnumerable        = okObjectResult.Value as IEnumerable <News>;
                var newsFromController = iEnumerable.First();

                // Assert
                Assert.Equal(newsFromController.Id, id);
                Assert.Equal(newsFromController.Created, utcDate);
                Assert.Equal(newsFromController.Title, title);
                Assert.Equal(newsFromController.Text, text);
                Assert.Equal(newsFromController.UserId, username);
            }
        }
Пример #6
0
        public void Get_ShouldReturn200OKAndRetrieveAllNewsItemsCorrectly()
        {
            var fakeNews = this.mocks.NewsRepositoryMock.Object.All();
            var mockContext = new Mock<INewsData>();

            mockContext
                .Setup(c => c.News.All())
                .Returns(fakeNews);

            var newsController = new NewsController(mockContext.Object);

            this.SetupController(newsController);

            var response = newsController.Get()
                .ExecuteAsync(CancellationToken.None).Result;

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

            var newsResponse = response.Content
                .ReadAsAsync<IEnumerable<NewsModel>>()
                .Result.Select(n => n.Id)
                .ToList();

            var orderedFakeNews = fakeNews
                .OrderByDescending(n => n.PublishDate)
                .Select(fn => fn.Id)
                .ToList();

            CollectionAssert.AreEqual(orderedFakeNews, newsResponse);
        }
Пример #7
0
        private void GetNewsFails(HttpStatusCode code)
        {
            var newsController = new NewsController(this.newsStorageMock.Object, this.inputValidation.Object, this.businessValidation.Object);

            newsController.ConfigureForTesting(HttpMethod.Get, string.Format("{0}/{1}/{2}/{3}", NewsUriRoot, City, Date, Id));

            HttpResponseMessage response = newsController.Get(City, Date, Id.ToString()).Result;

            Assert.AreEqual(code, response.StatusCode);
        }
Пример #8
0
        public void GetNewsByInternalNewsSource_Success()
        {
            // Arrange
            NewsController controller = new NewsController();

            // Act
            IEnumerable <News> result = controller.Get(0);

            // Assert
            Assert.AreEqual(3, result.Count()); // Total 3 records avail for Internal Source
        }
Пример #9
0
        public void GetNews_Page_LessThanOrEqualTo8_Success()
        {
            // Arrange
            NewsController controller = new NewsController();

            // Act
            IEnumerable <News> result = controller.Get(2);

            // Assert
            Assert.AreEqual(true, result.Count() <= 8); // Total 8 records avail for PTI Source
        }
Пример #10
0
        public void GetNewsByPTINewsSource_Success()
        {
            // Arrange
            NewsController controller = new NewsController();

            // Act
            IEnumerable <News> result = controller.Get(2);

            // Assert
            Assert.AreEqual(8, result.Count()); // Total 8 records avail for PTI Source
        }
Пример #11
0
        public void Get_Success()
        {
            // Arrange
            NewsController controller = new NewsController();

            // Act
            IEnumerable <News> result = controller.Get();

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(15, result.Count()); // Total 10 records avail
        }
Пример #12
0
        public async Task GetByNewsIdShouldReturnNotFound()
        {
            int newsId      = 103;
            var mockService = new Mock <INewsService>();

            mockService.Setup(svc => svc.GetNewsById(newsId)).Throws(new NewsNotFoundException($"No news found with Id: {newsId}"));
            var controller = new NewsController(mockService.Object);

            var actual = await Assert.ThrowsAsync <NewsNotFoundException>(() => controller.Get(newsId));

            Assert.Equal($"No news found with Id: {newsId}", actual.Message);
        }
Пример #13
0
        public async Task GetShouldReturnNotFound()
        {
            string userId      = "John";
            var    mockService = new Mock <INewsService>();

            mockService.Setup(svc => svc.GetAllNews(userId)).Throws(new NewsNotFoundException($"No news found for user: {userId}"));
            var controller = new NewsController(mockService.Object);

            var actual = await Assert.ThrowsAsync <NewsNotFoundException>(() => controller.Get(userId));

            Assert.Equal($"No news found for user: {userId}", actual.Message);
        }
        public async Task Get_ShouldCallNewsServiceOnce(List <New> newsFixture)
        {
            // Arrange
            var mockedNewsService = createNewsService(newsFixture);
            var controller        = new NewsController(_mapper, mockedNewsService.Object);

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

            // Asset
            mockedNewsService.Verify(svc => svc.ListAsync(), Times.Once());
        }
        public async Task GetByNewsIdShouldReturnNotFound()
        {
            int newsId      = 103;
            var mockService = new Mock <INewsService>();

            mockService.Setup(svc => svc.GetNewsById(newsId)).Throws(new NewsNotFoundException($"No news found with Id: {newsId}"));
            var controller = new NewsController(mockService.Object);

            var actual = await controller.Get(newsId);

            var actionResult = Assert.IsType <NotFoundObjectResult>(actual);

            Assert.Equal($"No news found with Id: {newsId}", actionResult.Value);
        }
Пример #16
0
        public async Task GetShouldReturnNotFound()
        {
            string userId      = "John";
            var    mockService = new Mock <INewsService>();

            mockService.Setup(svc => svc.FindAllNewsByUserId(userId)).Throws(new NoNewsFoundException($"No news found for {userId}"));
            var controller = new NewsController(mockService.Object);

            var actual = await controller.Get(userId);

            var actionResult = Assert.IsType <NotFoundObjectResult>(actual);

            Assert.Equal($"No news found for {userId}", actionResult.Value);
        }
Пример #17
0
        public async Task GetShouldReturnOk()
        {
            string userId      = "Jack";
            var    mockService = new Mock <INewsService>();

            mockService.Setup(svc => svc.FindAllNewsByUserId(userId)).Returns(Task.FromResult(newsList));
            var controller = new NewsController(mockService.Object);

            var actual = await controller.Get(userId);

            var actionResult = Assert.IsType <OkObjectResult>(actual);

            Assert.IsAssignableFrom <List <News> >(actionResult.Value);
        }
Пример #18
0
        public void GetAllNews_ShouldReturnListOfNews()
        {
            var mockINewsService = new Mock <INewsService>();

            mockINewsService.Setup(service => service.GetAllNews()).Returns(GetNews());
            var newsController = new NewsController(mockINewsService.Object);

            // Act
            var result       = newsController.Get();
            var actualResult = result as OkObjectResult;

            //Assert
            Assert.NotNull(result);
            Assert.Equal(200, actualResult.StatusCode);
        }
Пример #19
0
        public async Task GetById_ReturnsNotFoundResult()
        {
            // Arrange
            int testId = 5;

            var mock = new Mock <INewsService>();

            mock.Setup(repo => repo.GetById(testId)).Returns(Task.Run(() => GetPosts().First(n => n.Id == testId)));

            NewsController controller = new NewsController(mock.Object);

            // Act
            var result = await controller.Get(testId);

            // Assert
            var item = Assert.IsType <NotFoundResult>(result.Result);
        }
Пример #20
0
        public void GetMethodWithoutParameter_ShouldReturnListOfMovie()
        {
            //Arrange
            var mockService = new Mock <IFavoriteService>();

            mockService.Setup(service => service.GetAllArticles()).Returns(this.GetArticles());

            var mockHttp   = new Mock <HttpClient>();//check later
            var controller = new NewsController(mockService.Object, mockHttp.Object);

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

            //Assert
            var actionresult = Assert.IsType <OkObjectResult>(result);
            var model        = Assert.IsAssignableFrom <IEnumerable <Article> >(actionresult.Value);
        }
Пример #21
0
        public async Task GetByNewsIdShouldReturnOk()
        {
            int newsId      = 101;
            var mockService = new Mock <INewsService>();
            var news        = new News {
                NewsId = 101, Title = "IT industry in 2020", Content = "It is expected to have positive growth in 2020.", PublishedAt = DateTime.Now, UrlToImage = null, CreatedBy = "Jack", Url = null
            };

            mockService.Setup(svc => svc.GetNewsById(newsId)).Returns(Task.FromResult(news));
            var controller = new NewsController(mockService.Object);

            var actual = await controller.Get(newsId);

            var actionResult = Assert.IsType <OkObjectResult>(actual);

            Assert.IsAssignableFrom <News>(actionResult.Value);
        }
Пример #22
0
        public void ReturnOkWhenGetAllNewsIsEmpty()
        {
            // Assign
            var dateTimeFactory = new DateTimeFactory();

            using (var context = DbContextFake.GetDbContext <IntranetApiContext>())
            {
                var newsController = new NewsController(context, dateTimeFactory);

                // Act
                var newsFromController = newsController.Get();
                var count = GetCountOfValueProperty(newsFromController);

                // Assert
                Assert.IsType <OkObjectResult>(newsFromController);
                Assert.Equal(count, 0);
            }
        }
        public async Task Get_FieldsShouldBeTheSame(List <New> newsFixture)
        {
            // Arrange
            var mockedNewsService = createNewsService(newsFixture);
            var controller        = new NewsController(_mapper, mockedNewsService.Object);

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

            // Asset
            var okResult   = Assert.IsType <OkObjectResult>(result);
            var returnNews = Assert.IsAssignableFrom <IEnumerable <NewResource> >(okResult.Value);

            returnNews.Should().Equal(newsFixture, (rsc, fix) =>
            {
                return(rsc.Author == fix.By && rsc.Title == fix.Title && rsc.Url == fix.Url);
            });
        }
        public async Task Get_ShouldReturnBadRequestWithMessageIfErroOnService()
        {
            // Arrange
            const string errorMessage    = "Error";
            var          mockNewsService = new Mock <INewsService>();
            var          responseFixture = new GenericResponse <IEnumerable <New> >(errorMessage);

            mockNewsService.Setup(svc => svc.ListAsync()).ReturnsAsync(responseFixture);
            var controller = new NewsController(_mapper, mockNewsService.Object);

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

            // Asset
            var badRequestResult = Assert.IsType <BadRequestObjectResult>(result);

            badRequestResult.Value.Should().Be(errorMessage);
        }
Пример #25
0
        public async Task GetById_ReturnsItem()
        {
            // Arrange
            int testId = 1;

            var mock = new Mock <INewsService>();

            mock.Setup(repo => repo.GetById(testId)).Returns(Task.Run(() => GetPosts().First(n => n.Id == testId)));

            NewsController controller = new NewsController(mock.Object);

            // Act
            var okResult = (await controller.Get(testId)).Result as OkObjectResult;

            // Assert
            var items = Assert.IsType <NewsPost>(okResult.Value);

            Assert.Equal(testId, items.Id);
        }
Пример #26
0
        public void NewsControllerGetShouldReturnOkResult()
        {
            // Arrange
            Mapper.Initialize(config => config.AddProfile <AutoMapperProfile>());

            var db = this.Context;

            this.PopulateData(db);

            var newsService = new NewsService(db);

            var newsController = new NewsController(newsService);

            // Act
            var result = newsController.Get();

            // Assert
            Assert.IsType <OkObjectResult>(result);
        }
Пример #27
0
        public void ReturnNotFoundResultWhenSearchById()
        {
            // Assign
            int id              = 2;
            var news            = GetFakeNews();
            var dateTimeFactory = new DateTimeFactory();

            DbContextFake.SeedDb <IntranetApiContext>(c => c.News.AddRange(news), ensureDeleted: true);

            using (var context = DbContextFake.GetDbContext <IntranetApiContext>())
            {
                var newsController = new NewsController(context, dateTimeFactory);

                // Act
                var result = newsController.Get(id);

                // Assert
                Assert.IsType <NotFoundResult>(result);
            }
        }
Пример #28
0
        public void ReturnOkObjectResultWhenGetAllNews()
        {
            // Assign
            var news            = GetFakeNews();
            var dateTimeFactory = new DateTimeFactory();

            DbContextFake.SeedDb <IntranetApiContext>(c => c.News.AddRange(news), ensureDeleted: true);

            using (var context = DbContextFake.GetDbContext <IntranetApiContext>())
            {
                var newsController = new NewsController(context, dateTimeFactory);

                // Act
                var newsFromController = newsController.Get();
                var count = GetCountOfValueProperty(newsFromController);

                // Assert
                Assert.IsType <OkObjectResult>(newsFromController);
                Assert.Equal(count, 1);
            }
        }
Пример #29
0
        public void ReturnNewsById()
        {
            // Assign
            var id              = 1;
            var news            = GetFakeNews();
            var dateTimeFactory = new DateTimeFactory();

            DbContextFake.SeedDb <IntranetApiContext>(c => c.News.AddRange(news), ensureDeleted: true);

            using (var context = DbContextFake.GetDbContext <IntranetApiContext>())
            {
                var newsController = new NewsController(context, dateTimeFactory);

                // Act
                var result         = newsController.Get(id);
                var okObjectResult = result as OkObjectResult;
                var newsContent    = okObjectResult.Value as News;

                // Assert
                Assert.NotNull(okObjectResult);
                Assert.Equal(id, newsContent.Id);
            }
        }
Пример #30
0
        public async Task GetShouldReturnNotFound()
        {
            string userId = "John";
            var    user   = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim("userId", userId)
            }, "mock"));
            var mockService = new Mock <INewsService>();

            mockService.Setup(svc => svc.FindAllNewsByUserId(userId)).Throws(new NoNewsFoundException($"No news found for {userId}"));
            var controller = new NewsController(mockService.Object);

            controller.ControllerContext = new ControllerContext {
                HttpContext = new DefaultHttpContext {
                    User = user
                }
            };

            var actual = await controller.Get();

            var actionResult = Assert.IsType <NotFoundObjectResult>(actual);

            Assert.Equal($"No news found for {userId}", actionResult.Value);
        }
Пример #31
0
        public void TestingGetAllmethodShouldSucceed()
        {
            var news = new List <NewsItem>
            {
                new NewsItem
                {
                    Title       = "FirstNews",
                    Content     = "FirstNewsContent",
                    PublishDate = DateTime.Now,
                    UserId      = "2",
                    User        = new ApplicationUser()
                    {
                        UserName = "******"
                    }
                },
                new NewsItem
                {
                    Title       = "SecondNews",
                    Content     = "SecondNewsContent",
                    PublishDate = DateTime.Now.AddDays(-3),
                    UserId      = "2",
                    User        = new ApplicationUser()
                    {
                        UserName = "******"
                    }
                },
                new NewsItem
                {
                    Title       = "ThirdNews",
                    Content     = "ThirdNewsContent",
                    PublishDate = DateTime.Now.AddDays(-10),
                    UserId      = "2",
                    User        = new ApplicationUser()
                    {
                        UserName = "******"
                    }
                }
            };

            var dataMock = new Mock <INewsData>();

            dataMock.Setup(r => r.News).Returns(this.GetMockedNewsItem(news));


            var controller = new NewsController(dataMock.Object);

            this.SetupController(controller, "NewsController");
            var result = controller.Get().ExecuteAsync(new CancellationToken()).Result;

            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
            var content            = result.Content.ReadAsStringAsync().Result;
            var resultNews         = JsonConvert.DeserializeObject <List <NewsItemOutputModel> >(content);
            var exprectedNewsItems = news.Select(NewsItemOutputModel.Project);

            for (int i = 0; i < resultNews.Count; i++)
            {
                Assert.AreEqual(news[i].Id, resultNews[i].Id);
                Assert.AreEqual(news[i].Title, resultNews[i].Title);
                Assert.AreEqual(news[i].Content, resultNews[i].Content);
                Assert.AreEqual(news[i].PublishDate, resultNews[i].PublishDate);
            }
        }