Beispiel #1
0
        public void GetOneNewsItem_NotFound()
        {
            // Arrange
            var controller = new NewsItemsController();

            // Act
            var response = controller.GetNewsItem(-1);

            Assert.IsInstanceOfType(response, typeof(NotFoundResult));
        }
        public async Task Index()
        {
            var controller = new NewsItemsController(_newsItemsRepository.Object, null, _itemTranslationRepository.Object);
            var model      = new List <NewsItem>().AsQueryable().BuildMock();

            _newsItemsRepository.Setup(repo => repo.GetAll()).Returns(model.Object);
            var result = await controller.Index(null, null, null, null);

            Assert.IsType <ViewResult>(result);
        }
Beispiel #3
0
        public void GetOneNewsItem_OK()
        {
            // Arrange
            var controller = new NewsItemsController();

            // Act
            var response = controller.GetNewsItem(1);
            var result   = response as OkNegotiatedContentResult <NewsItemSend>;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Content);
        }
        public void GetOneNewsItem_OK()
        {
            // Arrange
            var controller = new NewsItemsController();

            // Act
            var response = controller.GetNewsItem(1);
            var result   = response as OkNegotiatedContentResult <NewsItemSend>;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Content); // nit: might be a good idea to check if item corresponds to the one requested
        }
Beispiel #5
0
        public void PutNewsItem_NoContent()
        {
            // Arrange
            var controller = new NewsItemsController();

            // Act
            var response = (StatusCodeResult)controller.PutNewsItem(1, new XsollaSummerSchoolTest.NewsItem {
                Headline = "Test put", Body = "Test put", Category = "Test"
            });

            // Assert
            Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode);
        }
        public void PostRate_FailBadRequest()
        {
            // Arrange
            var controller = new NewsItemsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();

            // Act
            var response = controller.PostRate(2, 123);

            // Assert
            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }
Beispiel #7
0
        public void PutNewsItem_NotFound()
        {
            // Arrange
            var controller = new NewsItemsController();

            // Act
            var response = controller.PutNewsItem(-4, new XsollaSummerSchoolTest.NewsItem {
                Headline = "Test put", Body = "Test put", Category = "Test"
            });
            var result = response as NotFoundResult;

            // Assert
            Assert.IsNotNull(result);
        }
Beispiel #8
0
        public void PostRate_NotFound()
        {
            // Arrange
            var controller = new NewsItemsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();

            // Act
            var response = controller.PostRate(-3, 8);

            // Assert
            Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
        }
        public void GetNewsItemsByCategory_OK()
        {
            // Arrange
            var controller = new NewsItemsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();

            // Act
            var response = controller.GetNewsItemSet("Искусство");

            // Assert
            Assert.IsTrue(response.TryGetContentValue <IEnumerable <NewsItemSend> >(out var newsItems));
            Assert.AreEqual("Искусство", newsItems.First().Category);
        }
        public void GetAllNewsItems_OK()
        {
            // Arrange
            var controller = new NewsItemsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();

            // Act
            var response = controller.GetNewsItemSet();

            // Assert
            Assert.IsTrue(response.TryGetContentValue <IEnumerable <NewsItemSend> >(out var newsItems));
            // nit: might be a good idea to check at least the length of the array, not just the success of cast
        }
        public void DeleteNewsItem_OK()
        {
            // Arrange
            var controller = new NewsItemsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();

            // Act
            var response = controller.DeleteNewsItem(1);
            var result   = response as OkNegotiatedContentResult <NewsItemSend>;

            // Assert
            Assert.IsNotNull(result);
        }
        public void DeleteNewsItem_FailNotFound()
        {
            // Arrange
            var controller = new NewsItemsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();

            // Act
            var response = controller.DeleteNewsItem(-1);
            var result   = response as NotFoundResult;

            // Assert
            Assert.IsNotNull(result);
        }
Beispiel #13
0
        public void GetAllNewsItems_OK()
        {
            // Arrange
            var controller = new NewsItemsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();

            // Act
            var response = controller.GetNewsItemSet();
            IEnumerable <NewsItemSend> newsItems;

            // Assert
            Assert.IsTrue(response.TryGetContentValue <IEnumerable <NewsItemSend> >(out newsItems));
        }
        public void GetTopRatedNewsItems_OK()
        {
            // Arrange
            var controller = new NewsItemsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();
            double leastAverage = 7;

            // Act
            var response = controller.GetNewsItemSet(leastAverage);

            // Assert
            Assert.IsTrue(response.TryGetContentValue <IEnumerable <NewsItemSend> >(out var newsItems));
            Assert.IsTrue(newsItems.First().TotalRate / newsItems.First().RateCount >= leastAverage);
        }
        public void DeleteRate_FailNotFound()
        {
            // Arrange
            var controller = new NewsItemsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();
            controller.Request.Headers.Add("Cookie", "sessionString=i81S2pE4tJ5LV0F658HCXK2zF57M3L");
            controller.Request.RequestUri = new Uri("https://localhost:44341/api/");

            // Act
            var response = controller.DeleteRate(-1);

            // Assert
            Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
        }
Beispiel #16
0
        public void PostRate_Ok()
        {
            // Arrange
            var controller = new NewsItemsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();
            controller.Request.Headers.Add("sessionString", "i71S2pE8tJ5LV0F658HCXK2zF57M3L");
            controller.Request.RequestUri = new Uri("https://localhost:44341/api/");

            // Act
            var response = controller.PostRate(2, 8);

            // Assert
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
        }
        public void PutNewsItem_OK() // difficult to understand whether this test checks the scenario if a client behavior is correct
        {
            // Arrange
            var controller = new NewsItemsController();

            // Act
            var response = (StatusCodeResult)controller.PutNewsItem(1, new NewsItem
            {
                Headline = "Test put",
                Body     = "Test put",
                Category = "Test"
            });

            // Assert
            Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode);
            // might be a good idea to check whether the operation was successful or not
        }
        public void PostRate_OK()
        {
            // Arrange
            var controller = new NewsItemsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();
            controller.Request.Headers.Add("sessionString", "i71S2pE8tJ5LV0F658HCXK2zF57M3L"); // nit: might be a good idea to generate that one prior
            controller.Request.RequestUri = new Uri("https://localhost:44341/api/");

            // Act
            var response = controller.PostRate(2, 8);

            // Assert
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            // nit: might be a good idea to check if that rate changed anything
        }
        public void PutNewsItem_FailBadRequest()
        {
            // Arrange
            var controller = new NewsItemsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();
            controller.ModelState.AddModelError("Body", "The Body field is required.");

            // Act
            var response = controller.PutNewsItem(1, new NewsItem {
                Headline = "Test put", Category = "Test"
            });
            var result = response as InvalidModelStateResult;

            // Assert
            Assert.IsNotNull(result);
        }
Beispiel #20
0
        public void PostNewsItem_CreatedAtRoute()
        {
            // Arrange
            var controller = new NewsItemsController();

            controller.Request       = new HttpRequestMessage();
            controller.Configuration = new HttpConfiguration();

            // Act
            var response = controller.PostNewsItem(new XsollaSummerSchoolTest.NewsItem {
                Headline = "Test post", Body = "Test post", Category = "Test"
            });
            var result = response as CreatedAtRouteNegotiatedContentResult <NewsItemSend>;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("DefaultApi", result.RouteName);
            Assert.IsNotNull(result.RouteValues["id"]);
        }