Exemplo n.º 1
0
        public ActionResult <Publication> Post(Guid autorId, string title, string content, Guid topicId)
        {
            var resultValidator = new UserExistValidator().Validate(autorId);

            if (!resultValidator.IsValid)
            {
                return(BadRequest(resultValidator.Errors));
            }

            User autor = userRepository.GetById(autorId);

            resultValidator = new TopicExistValidator().Validate(topicId);
            if (!resultValidator.IsValid)
            {
                return(BadRequest(resultValidator.Errors));
            }

            Topic topic = topicRepository.GetById(topicId);

            Publication publication = new Publication(autor, title, content, topic);

            resultValidator = new PublicationValidator().Validate(publication);
            if (!resultValidator.IsValid)
            {
                return(BadRequest(resultValidator.Errors));
            }

            publicationRepository.Create(publication);

            return(CreatedAtAction("Get", new { id = publication.Id }, publication));
        }
Exemplo n.º 2
0
        public ActionResult <Publication> Put(Guid id, string title, string content, Guid topicId)
        {
            var resultValidation = new PublicationExistValidator().Validate(id);

            if (!resultValidation.IsValid)
            {
                return(BadRequest(resultValidation.Errors));
            }

            resultValidation = new TopicExistValidator().Validate(topicId);
            if (!resultValidation.IsValid)
            {
                return(BadRequest(resultValidation.Errors));
            }

            Topic       topic          = topicRepository.GetById(topicId);
            Publication oldPublication = publicationRepository.GetById(id);
            Publication newPublication = new Publication(id, oldPublication.Autor, title, content, oldPublication.DateCreated, oldPublication.Comments, topic);

            resultValidation = new PublicationValidator().Validate(newPublication);

            if (!resultValidation.IsValid)
            {
                return(BadRequest(resultValidation.Errors));
            }

            return(Ok(publicationRepository.Update(newPublication)));
        }
Exemplo n.º 3
0
        public void TestValidationPublication()
        {
            var okPublication = PublicationBuilder.New().Build();

            var resultValidation = new PublicationValidator().Validate(okPublication);

            Assert.True(resultValidation.IsValid);
        }
Exemplo n.º 4
0
        public void TestValidationPublicationBadTitle()
        {
            var badPublication = PublicationBuilder.New().WithTitle("  ").Build();

            var resultValidation = new PublicationValidator().Validate(badPublication);

            Assert.False(resultValidation.IsValid);
        }
        public void Date_is_reported_as_invalid_if_it_was_not_set()
        {
            var sut    = new PublicationValidator();
            var result = sut.Validate(new Publication("Title", null));

            Assert.IsFalse(result.Success);
            Assert.IsTrue(result.Errors.Any(x => x.Contains("Date")), "Date was not set.");
        }
        public void Title_is_reported_as_invalid_if_shorter_than_3_characters()
        {
            var sut    = new PublicationValidator();
            var result = sut.Validate(new Publication("a", DateTime.Now));

            Assert.IsFalse(result.Success);
            Assert.IsTrue(result.Errors.Any(x => x.Contains("Title")), "Title was to short but was not reported");
        }
        public void Title_is_reported_as_invalid_if_it_was_not_set()
        {
            var sut    = new PublicationValidator();
            var result = sut.Validate(new Publication(null, DateTime.Now));

            Assert.IsFalse(result.Success);
            Assert.IsTrue(result.Errors.Any(x => x.Contains("Title")), "Title was not set but was not reported");
        }
Exemplo n.º 8
0
        public void TestValidationPublicationBadUser()
        {
            var badUser = UserBuilder.New().WithEmail("emailemail.com").Build();

            var badPublication = PublicationBuilder.New().WithAutor(badUser).Build();

            var resultValidation2 = new PublicationValidator().Validate(badPublication);

            Assert.False(resultValidation2.IsValid);
        }
        public void Title_is_reported_as_invalid_if_longer_than_120_characters()
        {
            var    sut   = new PublicationValidator();
            string title = GetStringWithLength(121);

            var result = sut.Validate(new Publication(title, DateTime.Now));

            Assert.IsFalse(result.Success);
            Assert.IsTrue(result.Errors.Any(x => x.Contains("Title")), "Title was to long but was not reported");
        }
Exemplo n.º 10
0
 public PublicationController(IPublicationRepository repositoryStub)
 {
     this.repositoryStub  = repositoryStub;
     publicationValidator = new PublicationValidator();
 }