Beispiel #1
0
        public void Details_FoundedModel_ReturnsTheProperView(int value)
        {
            //1. Arrange:
            var publicationModel = new PublicationViewModel()
            {
                Id          = 1,
                AuthorId    = "111",
                Title       = "On the river with Tisho",
                Description = "I was on the river with my friend Pesho and catched so many fishes with only one metal lure",
            };

            var mockService = new Mock <IBasePublicationsService>();

            mockService
            .Setup(service => service.GetPublication(value))
            .Returns(publicationModel);
            var controller = new PublicationsController(mockService.Object);

            //2.Act:
            var result = controller.Details(value);

            //3.Assert:
            Assert.IsInstanceOfType(result, typeof(ViewResult));
            Assert.IsNotNull((result as ViewResult).Model);
        }
Beispiel #2
0
        public void Details_WithValidPublication_ShoudCallService(int value)
        {
            //1. Arrange:
            bool serviceCalled = false;

            var publicationModel = new PublicationViewModel()
            {
                Id          = 1,
                AuthorId    = "111",
                Title       = "On the river with Tisho",
                Description = "I was on the river with my friend Pesho and catched so many fishes with only one metal lure",
            };

            var mockService = new Mock <IBasePublicationsService>();

            mockService
            .Setup(service => service.GetPublication(value))
            .Returns(publicationModel)
            .Callback(() => serviceCalled = true);

            var controller = new PublicationsController(mockService.Object);

            //2.Act:
            var result = controller.Details(1);

            //3.Assert:
            Assert.IsTrue(serviceCalled);
        }
Beispiel #3
0
        public void Details_WithValidId_ShouldReturnView()
        {
            // Arrange
            Mock <ICommentService>     commentService     = new Mock <ICommentService>();
            Mock <IPublicationService> publicationService = new Mock <IPublicationService>();

            PublicationDetailsServiceModel detailsModel = this.GetPublicationDetailsServiceModel();

            const int publicationId = 1;

            commentService
            .Setup(c => c.Total(publicationId))
            .Returns(20);

            commentService
            .Setup(c => c.All(
                       It.IsAny <int>(),
                       It.IsAny <int>(),
                       It.IsAny <int>(),
                       It.IsAny <int?>()))
            .Returns(this.GetComments());

            publicationService
            .Setup(p => p.Details(It.IsAny <int>()))
            .Returns(detailsModel);

            Mock <ClaimsPrincipal> claimsMock = new Mock <ClaimsPrincipal>();

            claimsMock.Setup(t => t.Identity.IsAuthenticated)
            .Returns(false);

            Mock <HttpContext> mockHttpContext = new Mock <HttpContext>();

            mockHttpContext.Setup(m => m.User).Returns(claimsMock.Object);

            PublicationsController publicationsController =
                new PublicationsController(commentService.Object, null, null, publicationService.Object, null)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = mockHttpContext.Object
                }
            };

            // Act
            IActionResult result = publicationsController.Details(publicationId, 2);

            // Assert
            Assert.IsType <ViewResult>(result);
            object model = (result as ViewResult).Model;

            Assert.IsType <PublicationDetailsViewModel>(model);
            PublicationDetailsViewModel returnModel = model as PublicationDetailsViewModel;

            this.AssertPublicationDetailsViewModel(this.GetPublicationDetailsViewModel(), returnModel);
        }
Beispiel #4
0
        public void Details_WithNotValidId_ShouldReturnBadRequest()
        {
            // Arrange
            Mock <ICommentService>     commentService     = new Mock <ICommentService>();
            Mock <IPublicationService> publicationService = new Mock <IPublicationService>();

            PublicationDetailsServiceModel detailsModel = null;

            const int publicationId = 1;

            commentService
            .Setup(c => c.Total(publicationId))
            .Returns(1);

            publicationService
            .Setup(p => p.Details(It.IsAny <int>()))
            .Returns(detailsModel);

            Mock <ClaimsPrincipal> claimsMock = new Mock <ClaimsPrincipal>();

            claimsMock.Setup(t => t.Identity.IsAuthenticated)
            .Returns(false);

            Mock <HttpContext> mockHttpContext = new Mock <HttpContext>();

            mockHttpContext
            .Setup(m => m.User)
            .Returns(claimsMock.Object);

            PublicationsController publicationsController =
                new PublicationsController(commentService.Object, null, null, publicationService.Object, null)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = mockHttpContext.Object
                }
            };

            // Act
            IActionResult result = publicationsController.Details(publicationId, 1);

            // Assert
            Assert.IsType <BadRequestResult>(result);
        }
Beispiel #5
0
        public void Details_RetursCorrectModelInformation()
        {
            // 1.
            var service    = new Mock <IBasePublicationsService>();
            var controller = new PublicationsController(service.Object);

            var publicationModel = new PublicationViewModel()
            {
                Id          = 1,
                AuthorId    = "111",
                Title       = "On the river with Tisho",
                Description = "I was on the river with my friend Pesho and catched so many fishes with only one metal lure",
            };

            service.Setup(serv => serv.GetPublication(publicationModel.Id))
            .Returns(new PublicationViewModel()
            {
                Id          = publicationModel.Id,
                AuthorId    = publicationModel.AuthorId,
                Title       = publicationModel.Title,
                Description = publicationModel.Description
            });

            // 2. Act:
            var result = controller.Details(publicationModel.Id);

            //3. Assert:
            var resultModel = result as ViewResult;

            Assert.IsNotNull(resultModel.Model);
            Assert.IsInstanceOfType(resultModel.Model, typeof(PublicationViewModel));

            var productType = (resultModel.Model as PublicationViewModel);

            Assert.AreEqual(publicationModel.Id, productType.Id);
            Assert.AreEqual(publicationModel.AuthorId, productType.AuthorId);
            Assert.AreEqual(publicationModel.Title, productType.Title);
            Assert.AreEqual(publicationModel.Description, productType.Description);
        }