INamedTypeSymbol?GetMockedType(GeneratorSyntaxContext context)
        {
            var candidateGeneric = SyntaxHelpers.GetMockSymbol(context.Node);
            var semanticModel    = context.SemanticModel;

            return(candidateGeneric != null
                ? syntaxHelpers.GetMockedType(candidateGeneric, semanticModel)
                : null);
        }
        (GenericNameSyntax mock, INamedTypeSymbol mockedType)? ConvertToAbstractClass(GeneratorSyntaxContext context)
        {
            var candidateGeneric = SyntaxHelpers.GetMockSymbol(context.Node);

            if (candidateGeneric != null)
            {
                var mockedType = syntaxHelpers.GetMockedType(candidateGeneric, context.SemanticModel);
                if (mockedType != null)
                {
                    var mtbt = mockedType.BaseType;
                    if (mtbt != null)
                    {
                        if (mtbt.ToDisplayString(SymbolDisplayFormats.Namespace) != multicastDelegateNameSpaceAndName)
                        {
                            return(candidateGeneric, mockedType);
                        }
                    }
                }
            }
            return(null);
        }