public void ShouldNotReportErrorFromDecorationEvaluationWhenIsDecorated()
        {
            //GIVEN
            var declaration = new MethodDeclarationInfo(Any.String(), new List <string> {
                Any.String()
            });
            var violationFactory = Substitute.For <IProjectScopedRuleViolationFactory>();
            var report           = Substitute.For <IAnalysisReportInProgress>();
            var parentClassName  = Any.String();
            var description      = Any.Instance <RuleDescription>();
            var violation        = Any.Instance <RuleViolation>();

            var cSharpMethod = new CSharpMethod(declaration, violationFactory);

            violationFactory.ProjectScopedRuleViolation(
                description,
                $"Method {declaration.Name} in class {parentClassName} does not have any attribute")
            .Returns(violation);

            //WHEN
            cSharpMethod.EvaluateMethodsHavingCorrectAttributes(report, parentClassName, description);

            //THEN
            report.DidNotReceive().Add(Arg.Any <RuleViolation>());
        }
Example #2
0
        public static void Output(MethodDeclarationInfo mdi, TextWriter tw)
        {
            TextWriter output = tw;

            if (output == null)
            {
                output = Console.Out;
            }
            output.WriteLine("{0}:\r\n{1}\r\n",
                             mdi.Name,
                             mdi.Body);
        }
        public void ShouldBeAbleToSayWhetherItsNameMatchesAPattern(string pattern, string methodName, bool expectedResult)
        {
            //GIVEN
            var declaration = new MethodDeclarationInfo(methodName, Any.ReadOnlyList <string>());

            var method = new CSharpMethod(declaration, Any.Instance <IProjectScopedRuleViolationFactory>());

            //WHEN
            var nameMatches = method.NameMatches(Pattern.WithoutExclusion(pattern));

            //THEN
            nameMatches.Should().Be(expectedResult);
        }
Example #4
0
        public Method AddMethod(Class classType, string name, VariableType retType, List <VariableType> ps, AccessFlag flag)
        {
            MethodDeclarationInfo declarationInfo = new MethodDeclarationInfo(retType, ps,
                                                                              StringPool.TryAdd(MethodDeclarationInfo.GetDescriptor(retType, ps)));
            int index = MethodPool.Add(new MethodConstantInfo(
                                           classType.ConstantPoolIndex,
                                           StringPool.TryAdd(name),
                                           StringPool.TryAdd(declarationInfo.GetDescriptor()),
                                           flag.Flag));
            Method method = classType.AddMethod(name, declarationInfo, flag, index);

            Methods.Add(method);
            return(method);
        }
 private static string GenerateMethod(MethodDeclarationInfo d, Func <string, string> generateAttribute)
 {
     return(string.Join("", d.Attributes.Select(generateAttribute)) + "public void " + d.Name + "() {}");
 }
Example #6
0
 public CSharpMethod(MethodDeclarationInfo methodDeclarationInfo,
                     IProjectScopedRuleViolationFactory violationFactory)
 {
     _methodDeclarationInfo = methodDeclarationInfo;
     _violationFactory      = violationFactory;
 }