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)); }
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))); }
public void TestValidationPublication() { var okPublication = PublicationBuilder.New().Build(); var resultValidation = new PublicationValidator().Validate(okPublication); Assert.True(resultValidation.IsValid); }
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"); }
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"); }
public PublicationController(IPublicationRepository repositoryStub) { this.repositoryStub = repositoryStub; publicationValidator = new PublicationValidator(); }