Ejemplo n.º 1
0
        public void Validate(TestedMember testedMember, INamedTypeSymbol errorType, Action <Diagnostic> reportError)
        {
            var allCases = ComputeAllCases(errorType);

            foreach (var casesAnd in CasesAnd)
            {
                allCases.CasesAnd.Remove(casesAnd);
            }

            if (allCases.CasesAnd.Count == 0)
            {
                // No missing cases
                return;
            }

            // Missing cases
            reportError(SmartTestsDiagnostics.CreateMissingCases(testedMember,
                                                                 GetExpressionSyntax(),
                                                                 allCases.ToString()));

            foreach (var casesAnd in allCases.CasesAnd)
            {
                casesAnd.IsMissing = true;
                CasesAnd.Add(casesAnd);
            }
        }
Ejemplo n.º 2
0
 public MemberTestCases(TestedMember testedMember)
 {
     TestedMember     = testedMember;
     TestedMemberKind = testedMember.Kind;
     TestedType       = testedMember.Symbol.ContainingType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);
     TestedMemberName = testedMember.Symbol.Name;
 }
Ejemplo n.º 3
0
 public static Diagnostic CreateMissingParameterCase(TestedMember testedMember, string parameterName, SyntaxNode casesExpression)
 {
     return(Diagnostic.Create(_MissingParameterCase,
                              casesExpression.GetLocation(),
                              testedMember.ToString(),
                              parameterName
                              ));
 }
Ejemplo n.º 4
0
 public static Diagnostic CreateWrongParameterPath(TestedMember testedMember, string parameterName, string parameterPath, ExpressionSyntax parameterNameExpression)
 {
     return(Diagnostic.Create(_WrongParameterPath,
                              parameterNameExpression?.GetLocation(),
                              testedMember.ToString(),
                              parameterPath, parameterName
                              ));
 }
Ejemplo n.º 5
0
        public MemberTestCases GetOrCreate(TestedMember testedMember)
        {
            if (MemberCases.TryGetValue(testedMember, out var cases))
            {
                return(cases);
            }

            cases = new MemberTestCases(testedMember);
            MemberCases[testedMember] = cases;
            return(cases);
        }
Ejemplo n.º 6
0
        public static Diagnostic CreateMissingCases(TestedMember testedMember, IEnumerable <ExpressionSyntax> criterias, string errorMessage)
        {
            var criteriaList = criterias.ToList();
            var first        = criteriaList.First();

            criteriaList.RemoveAt(0);
            return(Diagnostic.Create(_MissingCases,
                                     first.GetLocation(),
                                     criteriaList.Select(criteria => criteria.GetLocation()),
                                     testedMember.ToString(),
                                     errorMessage
                                     ));
        }
Ejemplo n.º 7
0
 public bool Equals(TestedMember other) => Equals(Symbol, other.Symbol) && Kind == other.Kind;