Ejemplo n.º 1
0
        public void AssignmentMutator_ShouldMutate(SyntaxKind input, SyntaxKind expectedOutput, SyntaxKind?additionalOutput = null)
        {
            var target       = new AssignmentExpressionMutator();
            var originalNode = SyntaxFactory.AssignmentExpression(
                input,
                SyntaxFactory.IdentifierName("a"),
                SyntaxFactory.IdentifierName("b")
                );

            var result = target.ApplyMutations(originalNode).ToList();

            if (additionalOutput.HasValue && additionalOutput.Value is var additionalExpectedOutput)
            {
                result.Count.ShouldBe(2);
                result.First().ReplacementNode.IsKind(expectedOutput).ShouldBeTrue();
                result.Last().ReplacementNode.IsKind(additionalExpectedOutput).ShouldBeTrue();
            }
            else
            {
                var mutation = result.ShouldHaveSingleItem();
                mutation.ReplacementNode.IsKind(expectedOutput).ShouldBeTrue();
            }
            foreach (var mutation in result)
            {
                mutation.Type.ShouldBe(Mutator.Assignment);
                mutation.DisplayName.ShouldBe($"{input} to {mutation.ReplacementNode.Kind()} mutation");
            }
        }
Ejemplo n.º 2
0
        public void ShouldNotMutateStringLiteralsBoth()
        {
            var target = new AssignmentExpressionMutator();

            var originalNode = SyntaxFactory.AssignmentExpression(
                SyntaxKind.AddAssignmentExpression,
                SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression),
                SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression)
                );
            var result = target.ApplyMutations(originalNode).ToList();

            result.ShouldBeEmpty();
        }
Ejemplo n.º 3
0
        public void ShouldNotMutateSimpleAssignment()
        {
            var target = new AssignmentExpressionMutator();

            var originalNode = SyntaxFactory.AssignmentExpression(
                SyntaxKind.SimpleAssignmentExpression,
                SyntaxFactory.IdentifierName("a"),
                SyntaxFactory.IdentifierName("b")
                );
            var result = target.ApplyMutations(originalNode).ToList();

            result.ShouldBeEmpty();
        }
Ejemplo n.º 4
0
        public void AssignmentMutator_ShouldMutate(SyntaxKind input, SyntaxKind expectedOutput)
        {
            var target       = new AssignmentExpressionMutator();
            var originalNode = SyntaxFactory.AssignmentExpression(
                input,
                SyntaxFactory.IdentifierName("a"),
                SyntaxFactory.IdentifierName("b")
                );

            var result = target.ApplyMutations(originalNode).ToList();

            result.ShouldHaveSingleItem();
            result.ShouldContain(x => x.ReplacementNode.IsKind(expectedOutput));
            result.ShouldContain(x => x.Type == Mutator.Assignment);
        }
Ejemplo n.º 5
0
        public void ShouldBeMutationLevelStandard()
        {
            var target = new AssignmentExpressionMutator();

            target.MutationLevel.ShouldBe(MutationLevel.Standard);
        }