public void ShouldRemoveQuantifierN() { // Arrange var quantifierNode = new QuantifierNNode(5, new CharacterNode('X')); var childNodes = new List <RegexNode> { new CharacterNode('a'), new CharacterNode('b'), new CharacterNode('c'), quantifierNode }; var rootNode = new ConcatenationNode(childNodes); var target = new QuantifierRemovalMutator(); // Act var result = target.ApplyMutations(quantifierNode, rootNode); // Assert var mutation = result.ShouldHaveSingleItem(); mutation.OriginalNode.ShouldBe(quantifierNode); mutation.ReplacementNode.ToString().ShouldBe("X"); mutation.ReplacementPattern.ShouldBe("abcX"); mutation.DisplayName.ShouldBe("Regex quantifier removal mutation"); mutation.Description.ShouldBe("Quantifier \"{5}\" was removed at offset 4."); }
public void MutateShouldNotMutateNonQuantifierNode() { // Arrange var characterNode = new CharacterNode('a'); var rootNode = new ConcatenationNode(characterNode); var target = new QuantifierRemovalMutator(); // Act var result = target.Mutate(characterNode, rootNode); // Assert result.ShouldBeEmpty(); }