public void DefaultValidation_TopicThatIsNull_ShouldThrowException() { ITopicValidator topicValidator = new TopicValidator(); Action action = () => topicValidator.DefaultValidation(null as Topic); action.Should().Throw <NullReferenceException>().WithMessage("Topic can not be null"); }
public void TestValidationTopic() { var okTopic = TopicBuilder.New().Build(); var resultValidation1 = new TopicValidator().Validate(okTopic); Assert.True(resultValidation1.IsValid); }
public void TestValidationBadTopicNameNull() { var badTopic = TopicBuilder.New().WithName(null).Build(); var resultValidation = new TopicValidator().Validate(badTopic); Assert.False(resultValidation.IsValid); }
public void DefaultValidation_CourseThatIsNull_ShouldThrowException() { ITopicValidator topicValidator = new TopicValidator(); Action action = () => topicValidator.DefaultValidation(new Topic() { Comments = new List <Comment>(), MainBody = "", Name = "" }); action.Should().Throw <NullReferenceException>().WithMessage("Topic must have a Course"); }
public void DefaultValidation_NameIsEmptyOrNull_ShouldThrowException() { ITopicValidator topicValidator = new TopicValidator(); Action action = () => topicValidator.DefaultValidation(new Topic() { Comments = new List <Comment>(), Course = new Course(), MainBody = "" }); action.Should().Throw <ArgumentException>().WithMessage("Topic Name must not be empty"); }
public void DefaultValidation_MainBodyThatIsNull_ShouldThrowException() { ITopicValidator topicValidator = new TopicValidator(); Action action = () => topicValidator.DefaultValidation(new Topic() { Comments = new List <Comment>(), Course = new Course(), Name = "" }); action.Should().Throw <NullReferenceException>().WithMessage("Topic MainBody must be initialized"); }
public void TestValidationBadTopicNameExistsOnDatabase() { var topic = TopicBuilder.New().WithName("Nome").Build(); new TopicRepository().Create(topic); var badTopic = new Topic("Nome"); var resultValidation = new TopicValidator().Validate(badTopic); Assert.False(resultValidation.IsValid); }
public void ValidateTopic_OnMinimalTopic() { // Arrange var minimalValidTopic = Mqtt.Topic.Separator.ToString(); // Act Action validatingTopic = () => TopicValidator.ValidateTopic(minimalValidTopic); // Assert validatingTopic.Should() .NotThrow <MqttBaseException>("because the topic is minimal yet allowed"); }
public void ValidateTopic_OnValidTopic() { // Arrange var validRawTopic = TestUtils.GenerateValidTopic(); // Act Action validatingMinimalTopic = () => TopicValidator.ValidateTopic(validRawTopic); // Assert validatingMinimalTopic.Should() .NotThrow <MqttBaseException>("because the topic is correctly built"); }
public void ValidateTopic_OnNonUtf8Topic() { // Arrange const string nonUtf8Topic = "non/🌱/utf/🛠/8/🐛"; // Act Action validatingNonUtf8Topic = () => TopicValidator.ValidateTopic(nonUtf8Topic); // Assert validatingNonUtf8Topic.Should() .Throw <InvalidTopicException>(); }
public void ValidateTopic_OnBlankTopic() { // Arrange var blankTopic = string.Empty; // Act Action validatingBlankTopic = () => TopicValidator.ValidateTopic(blankTopic); // Assert validatingBlankTopic.Should() .Throw <EmptyTopicException>("because a topic can not be empty"); }
public ActionResult <Topic> Post(string name) { Topic topic = new Topic(name); var resultValidation = new TopicValidator().Validate(topic); if (!resultValidation.IsValid) { return(BadRequest(resultValidation.Errors)); } topicRepository.Create(topic); return(CreatedAtAction("Get", new { id = topic.Id }, topic)); }
public void TestCreate() { Topic topic = TopicBuilder.New().WithName("Skate").Build(); var resultValidation = new TopicValidator().Validate(topic); if (resultValidation.IsValid) { // Conhecimento MemoryCache CacheItemPolicy policy = new CacheItemPolicy(); policy.AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(60); Assert.IsTrue(memoryCache.Add("topic", topic, policy)); // Produção através dos métodos new CreateTopic().CreateNewRegister(topic); var idGet = new GetTopic().GetRegisterById(topic.Id); Assert.IsNotNull(idGet); } }
//klasa do sprawdzania, czy temat nie zawiera zakazanych slow public bool IsTopicCorrectOrNot(string topic) { IValidator validator = new TopicValidator(); bool isCorrect = validator.IsTopicCorrect(topic); //aby przetestowac za pomoca Moq - odkomentowac te linie //bool isCorrect = this._validator.IsTopicCorrect(topic); //gdy temat jest nieprawidlowy - zwracane jest false if (isCorrect == false || topic == "") { return(false); } else { return(true); } }
public void ValidateTopic_OnMultiLevelWildcardsBeforeTopicEnd() { // Arrange var topicWithMultiLevelWildcardBeforeEnd = $"{Mqtt.Topic.Separator}{Mqtt.Wildcard.MultiLevel}"; topicWithMultiLevelWildcardBeforeEnd += $"{Mqtt.Topic.Separator}{TestUtils.GenerateValidTopic()}"; // Act Action validatingTopicWithMultiLevelWildcardsBeforeEnd = () => TopicValidator.ValidateTopic(topicWithMultiLevelWildcardBeforeEnd); // Assert validatingTopicWithMultiLevelWildcardsBeforeEnd.Should() .Throw <IllegalTopicConstructionException>() .Where(_ => _.Message.Contains(ExceptionMessages.TopicAfterWildcard), "because a multi-level wildcard may only be used anywhere but at the end of a topic"); }
public void ValidateTopic_OnMultiLevelWildcardsTopic() { // Arrange var multiLevelWildcardsTopic = TestUtils.GenerateValidTopic( Mqtt.Topic.MaximumAllowedLevels - 2); // Appending '/#/#' multiLevelWildcardsTopic += string.Concat( Enumerable.Repeat( $"{Mqtt.Topic.Separator}{Mqtt.Wildcard.MultiLevel}", 2)); // Act Action validatingMultiLevelWildcardTopic = () => TopicValidator.ValidateTopic(multiLevelWildcardsTopic); // Assert validatingMultiLevelWildcardTopic.Should() .Throw <IllegalTopicConstructionException>(); }
public ActionResult <Topic> Put(Guid id, string name) { var resultValidation = new TopicExistValidator().Validate(id); if (!resultValidation.IsValid) { return(BadRequest(resultValidation.Errors)); } Topic topic = new Topic(id, name); resultValidation = new TopicValidator().Validate(topic); if (!resultValidation.IsValid) { return(BadRequest(resultValidation.Errors)); } return(Ok(topicRepository.Update(topic))); }
/// <summary> /// Create a new MQTT Topic from a raw string /// <para> /// If <paramref name="rawTopic"/> is empty, the minimal topic will be created /// (made only of a single <see cref="Mqtt.Topic.Separator"/>) /// </para> /// </summary> /// <param name="rawTopic">Raw MQTT topic</param> /// <remarks> /// Any trailing separator will be removed /// </remarks> public Topic(string rawTopic) { // Create minimal topic on empty string or already minimal raw string if (string.IsNullOrEmpty(rawTopic) || rawTopic == Mqtt.Topic.Separator.ToString()) { Value = Mqtt.Topic.Separator.ToString(); return; } TopicValidator.ValidateTopic(rawTopic); // Remove trailing "/" if any if (rawTopic.Last() == Mqtt.Topic.Separator) { rawTopic = rawTopic.Remove(rawTopic.Length - 1); } Value = rawTopic; }
public IActionResult CreateTopic(string name, Guid categoryId) { var category = getByIdCategoryUseCase.GetById(categoryId); if (category == null) { return(BadRequest("Category PK not found")); } var topic = new Domain.Entities.Topic(name, category); var validationResult = new TopicValidator().Validate(topic); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } addTopicUseCase.Add(topic); return(new OkObjectResult(topic)); }