示例#1
0
        public async void CreatePublication_ValidationFailure()
        {
            var publicationService = new Mock <IPublicationService>();

            var validationResponse =
                new Either <ActionResult, PublicationViewModel>(
                    ValidationUtils.ValidationActionResult(ValidationErrorMessages.SlugNotUnique));

            publicationService
            .Setup(s => s.CreatePublication(It.IsAny <SavePublicationViewModel>()))
            .Returns <SavePublicationViewModel>(p => Task.FromResult(validationResponse));

            var controller = new PublicationController(publicationService.Object);

            var topicId = Guid.NewGuid();

            // Method under test
            var result = await controller.CreatePublication(new SavePublicationViewModel()
            {
                TopicId = topicId
            });

            var badRequestObjectResult = Assert.IsType <BadRequestObjectResult>(result.Result);
            var value = Assert.IsType <ValidationProblemDetails>(badRequestObjectResult.Value);

            Assert.Contains("SLUG_NOT_UNIQUE", value.Errors.First().Value);
        }
示例#2
0
        public async void CreatePublication_Ok()
        {
            var publicationService = new Mock <IPublicationService>();

            publicationService
            .Setup(s => s.CreatePublication(It.IsAny <SavePublicationViewModel>()))
            .Returns <SavePublicationViewModel>(p =>
                                                Task.FromResult(new Either <ActionResult, PublicationViewModel>(
                                                                    new PublicationViewModel
            {
                TopicId = p.TopicId
            })
                                                                )
                                                );

            var controller = new PublicationController(publicationService.Object);

            var topicId = Guid.NewGuid();

            // Method under test
            var result = await controller.CreatePublication(new SavePublicationViewModel()
            {
                TopicId = topicId
            });

            Assert.IsType <PublicationViewModel>(result.Value);
            Assert.Equal(topicId, result.Value.TopicId);
        }
        public void CreatePublication_WhenCreatedCorrectly_ReturnsCreatedResult()
        {
            var publication = new PublicationInputModel()
            {
                EditorFirstName = "Egill",
                EditorLastName  = "Joh",
                Title           = "Gillis pub",
                Journal         = "World scientific",
                Isbn            = "123456-1234",
                Year            = 2019,
                Type            = "electronic"
            };
            var createdResult = _controller.CreatePublication(publication);

            var result = Assert.IsType <CreatedAtRouteResult>(createdResult);

            Assert.Equal(201, result.StatusCode);
        }
        public async Task CreatePublication_ValidationFailure()
        {
            var publicationService = new Mock <IPublicationService>();

            var validationResponse =
                new Either <ActionResult, PublicationViewModel>(
                    ValidationUtils.ValidationActionResult(SlugNotUnique));

            publicationService
            .Setup(s => s.CreatePublication(It.IsAny <PublicationSaveViewModel>()))
            .Returns <PublicationSaveViewModel>(p => Task.FromResult(validationResponse));

            var controller = new PublicationController(publicationService.Object);

            var topicId = Guid.NewGuid();

            // Method under test
            var result = await controller.CreatePublication(new PublicationSaveViewModel()
            {
                TopicId = topicId
            });

            result.Result.AssertBadRequest(SlugNotUnique);
        }