public void ModifyExistingNewsIncorrectDataShouldReturnBadReques()
        {
            var controller = new NewsController(this.mock.NewsRepositoryMock.Object);
            this.SetupController(controller);
            controller.ModelState.AddModelError("BadRequest", "Empty binding model.");

            var response = controller.EditNews(1, new NewsBindingModel())
                .ExecuteAsync(CancellationToken.None).Result;

            Assert.IsNotNull(response);
            Assert.AreEqual(response.StatusCode, HttpStatusCode.BadRequest);
        }
        public void ModifyExistingNewsShouldReturnOk()
        {
            var controller = new NewsController(this.mock.NewsRepositoryMock.Object);
            this.SetupController(controller);
            var newsBind = new NewsBindingModel { Title = "Edit", Content = "Edit", PublishedDate = DateTime.Now };

            var response = controller.EditNews(1, newsBind).ExecuteAsync(CancellationToken.None).Result;

            var editedNews = this.mock.NewsRepositoryMock.Object.Find(1);

            Assert.AreEqual(editedNews.Title, "Edit");
            Assert.AreEqual(editedNews.Content, "Edit");
            Assert.AreEqual(response.StatusCode, HttpStatusCode.OK);
        }
        public void ModifyNonExistingNewsItem()
        {
            var repo = new RepositoryMock<News>();
            var controller = new NewsController(repo);
            this.SetupController(controller, "news");

            // Act
            // Not added
            var news = new News()
            {
                Id = 1,
                Title = "valid",
                AuthorId = "valid",
                PublishDate = DateTime.Now,
                Content = "valid"
            };

            var result = controller.EditNews(news.Id, new NewsBindingModel()
            {
                Id = news.Id,
                AuthorId = news.AuthorId,
                Title = news.Title,
                Content = news.Content,
                PublishDate = news.PublishDate
            }).ExecuteAsync(new CancellationToken()).Result;

            Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode);
        }
        public void ModifyNonExistingNewsShouldReturnBadRequest()
        {
            var newsRepository = new Mock<IRepository<News>>();
            var controller = new NewsController(newsRepository.Object);
            this.SetupController(controller);

            var response = controller.EditNews(3, new NewsBindingModel())
                .ExecuteAsync(CancellationToken.None).Result;

            Assert.IsNotNull(response);
            Assert.AreEqual(response.StatusCode, HttpStatusCode.NotFound);
        }
        public void ModifyExistingNewsItemWithIncorrectData()
        {
            var repo = new RepositoryMock<News>();
            var controller = new NewsController(repo);
            this.SetupController(controller, "news");

            // Act
            var news = new News()
            {
                Id = 1,
                Title = "valid",
                AuthorId = "valid",
                PublishDate = DateTime.Now,
                Content = "valid"
            };

            var result = controller.CreateNews(new NewsBindingModel()
            {
                Id = news.Id,
                AuthorId = news.AuthorId,
                Title = news.Title,
                Content = news.Content,
                PublishDate = news.PublishDate
            }).ExecuteAsync(new CancellationToken()).Result;

            var theCreatedNews = repo.Entities.First().Value;

            theCreatedNews.Content = null;

            var editResult = controller.EditNews(theCreatedNews.Id, new NewsBindingModel()
            {
                Id = theCreatedNews.Id,
                AuthorId = theCreatedNews.AuthorId,
                Title = theCreatedNews.Title,
                Content = theCreatedNews.Content,
                PublishDate = theCreatedNews.PublishDate
            }).ExecuteAsync(new CancellationToken()).Result;

            Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode);
        }