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>()); }
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); }
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 + "() {}"); }
public CSharpMethod(MethodDeclarationInfo methodDeclarationInfo, IProjectScopedRuleViolationFactory violationFactory) { _methodDeclarationInfo = methodDeclarationInfo; _violationFactory = violationFactory; }