public void GivenMockListWhenGetThenListHasCorrectLength() { // Act var result = controller.Get(); var length = result.Value.Count(); // Assert Assert.True(length == 2); }
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"); }
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); }
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); } }
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); }
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); }
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 }
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 }
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 }
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 }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); } }
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); } }
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); } }
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); }
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); } }