public void CommonWalker_VisitParameter_Success_GetsInvoke()
        {
            var programText = @"
            namespace TestCompilation
            {
                public static class Program
                {
                    public static void test()
                    {
                        var c = CodeComponent.GetSum(1, 2);
                    }
                }

                public static class CodeComponent
                { 
                    public static int GetSum(int a, int b)
                    {
                        return a + b;
                    }
                }
            }";

            CommonAsserts.AssertSingleRelationAndSingleComponentByProgramText(
                programText, RelationType.Invoke, "TestCompilation", "CodeComponent",
                (model, classDeclaration) => new CommonWalker(model, classDeclaration, "TestCompilation"));
        }
Example #2
0
        public void ConstructorWalker_VisitParameter_Success_GetsReceiptByConstructorArgument()
        {
            var programText = @"
            namespace TestCompilation
            {
                public class Program
                {
                    private readonly CodeComponent component;

                    public Program(CodeComponent component)
                    {
                        this.component = component;
                    }
                }

                public class CodeComponent
                {
                    public int parameter { get; set; }
                }
            }";

            CommonAsserts.AssertSingleRelationAndSingleComponentByProgramText(
                programText, RelationType.ReceiptByConstructorArgument, "TestCompilation", "CodeComponent",
                (model, classDeclaration) => new ConstructorWalker(model, classDeclaration, "TestCompilation"));
        }
        public void StructureWalker_GetStructure_Success_GetsEnum()
        {
            var programText = @"
            namespace TestCompilation
            {
                public enum Program
                { }
            }";

            CommonAsserts.AssertGetStructureOfType <EnumDeclarationSyntax>(
                programText, StructureType.Enum, "TestCompilation", "Program");
        }
        public void StructureWalker_GetStructure_Success_GetsInterface()
        {
            var programText = @"
            namespace TestCompilation
            {
                public interface IProgram
                { }
            }";

            CommonAsserts.AssertGetStructureOfType <InterfaceDeclarationSyntax>(
                programText, StructureType.Interface, "TestCompilation", "IProgram");
        }
        public void StructureWalker_GetStructure_Success_GetsClass()
        {
            var programText = @"
            namespace TestCompilation
            {
                public class Program
                { }
            }";

            CommonAsserts.AssertGetStructureOfType <ClassDeclarationSyntax>(
                programText, StructureType.Class, "TestCompilation", "Program");
        }
        public void BaseListWalker_VisitParameter_Success_GetsInheritance()
        {
            var programText = @"
            namespace TestCompilation
            {
                public class AnotherCodeComponent : CodeComponent
                { }

                public class CodeComponent
                { }
            }";

            CommonAsserts.AssertSingleRelationAndSingleComponentByProgramText(
                programText, RelationType.Inheritance, "TestCompilation", "CodeComponent",
                (model, classDeclaration) => new BaseListWalker(model, classDeclaration, "TestCompilation"));
        }
        public void CommonWalker_VisitParameter_Success_EmptyRelations()
        {
            var programText = @"
            namespace TestCompilation
            {
                public class Component
                {
                    public int Parameter { get; set; }

                    public Component(Component component)
                    {
                        this.Parameter = component.Parameter;
                    }
                }
            }";

            CommonAsserts.AssertEmptyRelationByProgramText(
                programText,
                (model, classDeclaration) => new CommonWalker(model, classDeclaration, "TestCompilation"));
        }
        public void CommonWalker_VisitParameter_Success_GetsReturnByFunction()
        {
            var programText = @"
            namespace TestCompilation
            {
                public abstract class Program
                {
                    public virtual CodeComponent GetCodeComponent(int parameter);
                }

                public class CodeComponent
                {
                    public int parameter { get; set; }
                }
            }";

            CommonAsserts.AssertSingleRelationAndSingleComponentByProgramText(
                programText, RelationType.ReturnByFunction, "TestCompilation", "CodeComponent",
                (model, classDeclaration) => new CommonWalker(model, classDeclaration, "TestCompilation"));
        }
        public void CommonWalker_VisitParameter_Success_GetsInstantiate()
        {
            var programText = @"
            namespace TestCompilation
            {
                public class Program
                {
                    public CodeComponent Component => new CodeComponent();
                }

                public class CodeComponent
                { 
                    public int Parameter { get; set; }
                }
            }";

            CommonAsserts.AssertSingleRelationAndSingleComponentByProgramText(
                programText, RelationType.Instantiate, "TestCompilation", "CodeComponent",
                (model, classDeclaration) => new CommonWalker(model, classDeclaration, "TestCompilation"));
        }
        public void CommonWalker_VisitParameter_Success_GetsThrow()
        {
            var programText = @"
            namespace TestCompilation
            {
                public class Program
                {
                    public void Test()
                    { 
                        throw new CustomException();
                    }
                }

                public class CustomException : System.Exception
                { }
            }";

            CommonAsserts.AssertSingleRelationAndSingleComponentByProgramText(
                programText, RelationType.Throw, "TestCompilation", "CustomException",
                (model, classDeclaration) => new CommonWalker(model, classDeclaration, "TestCompilation"));
        }
        public void CommonWalker_VisitParameter_Success_GetsReceiptByMethodArgument()
        {
            var programText = @"
            namespace TestCompilation
            {
                public class Program
                {
                    public void Test(CodeComponent component)
                    { }
                }

                public class CodeComponent
                {
                    public int parameter { get; set; }
                }
            }";

            CommonAsserts.AssertSingleRelationAndSingleComponentByProgramText(
                programText, RelationType.ReceiptByMethodArgument, "TestCompilation", "CodeComponent",
                (model, classDeclaration) => new CommonWalker(model, classDeclaration, "TestCompilation"));
        }