Object

//  Copyright 2019 Florian Gather <florian.gather@tngtech.com>
//  Copyright 2019 Paula Ruiz <paularuiz22@gmail.com>
//  Copyright 2019 Fritz Brandhuber <fritz.brandhuber@tngtech.com>
// 
//  SPDX-License-Identifier: Apache-2.0
    TReturnType Exist();
    TReturnType Be(string pattern, bool useRegularExpressions = false);
    TReturnType Be(IEnumerable<string> patterns, bool useRegularExpressions = false);
    TReturnType Be(ICanBeAnalyzed firstObject, params ICanBeAnalyzed[] moreObjects);
    TReturnType Be(IEnumerable<ICanBeAnalyzed> objects);
    TReturnType Be(IObjectProvider<ICanBeAnalyzed> objects);
    TReturnType CallAny(string pattern, bool useRegularExpressions = false);
    TReturnType CallAny(IEnumerable<string> patterns, bool useRegularExpressions = false);
    TReturnType CallAny(MethodMember method, params MethodMember[] moreMethods);
    TReturnType CallAny(IEnumerable<MethodMember> methods);
    TReturnType CallAny(IObjectProvider<MethodMember> methods);
    TReturnType DependOnAny(string pattern, bool useRegularExpressions = false);
    TReturnType DependOnAny(IEnumerable<string> patterns, bool useRegularExpressions = false);
    TReturnType DependOnAny(IType firstType, params IType[] moreTypes);
    TReturnType DependOnAny(Type firstType, params Type[] moreTypes);
    TReturnType DependOnAny(IObjectProvider<IType> types);
    TReturnType DependOnAny(IEnumerable<IType> types);
    TReturnType DependOnAny(IEnumerable<Type> types);
    TReturnType OnlyDependOn(string pattern, bool useRegularExpressions = false);
    TReturnType OnlyDependOn(IEnumerable<string> patterns, bool useRegularExpressions = false);
    TReturnType OnlyDependOn(IType firstType, params IType[] moreTypes);
    TReturnType OnlyDependOn(Type firstType, params Type[] moreTypes);
    TReturnType OnlyDependOn(IObjectProvider<IType> types);
    TReturnType OnlyDependOn(IEnumerable<IType> types);
    TReturnType OnlyDependOn(IEnumerable<Type> types);
    TReturnType HaveAnyAttributes(string pattern, bool useRegularExpressions = false);
    TReturnType HaveAnyAttributes(IEnumerable<string> patterns, bool useRegularExpressions = false);
    TReturnType HaveAnyAttributes(Attribute firstAttribute, params Attribute[] moreAttributes);
    TReturnType HaveAnyAttributes(Type firstAttribute, params Type[] moreAttributes);
    TReturnType HaveAnyAttributes(IObjectProvider<Attribute> attributes);
    TReturnType HaveAnyAttributes(IEnumerable<Attribute> attributes);
    TReturnType HaveAnyAttributes(IEnumerable<Type> attributes);
    TReturnType OnlyHaveAttributes(string pattern, bool useRegularExpressions = false);
    TReturnType OnlyHaveAttributes(IEnumerable<string> patterns, bool useRegularExpressions = false);
    TReturnType OnlyHaveAttributes(Attribute firstAttribute, params Attribute[] moreAttributes);
    TReturnType OnlyHaveAttributes(Type firstAttribute, params Type[] moreAttributes);
    TReturnType OnlyHaveAttributes(IObjectProvider<Attribute> attributes);
    TReturnType OnlyHaveAttributes(IEnumerable<Attribute> attributes);
    TReturnType OnlyHaveAttributes(IEnumerable<Type> attributes);
    TReturnType HaveName(string name);
    TReturnType HaveNameMatching(string pattern);
    TReturnType HaveFullName(string fullname);
    TReturnType HaveFullNameMatching(string pattern);
    TReturnType HaveNameStartingWith(string pattern);
    TReturnType HaveNameEndingWith(string pattern);
    TReturnType HaveNameContaining(string pattern);
    TReturnType HaveFullNameContaining(string pattern);
    TReturnType BePrivate();
    TReturnType BePublic();
    TReturnType BeProtected();
    TReturnType BeInternal();
    TReturnType BeProtectedInternal();
    TReturnType BePrivateProtected();


    //Negations


    TReturnType NotExist();
    TReturnType NotBe(string pattern, bool useRegularExpressions = false);
    TReturnType NotBe(IEnumerable<string> patterns, bool useRegularExpressions = false);
    TReturnType NotBe(ICanBeAnalyzed firstObject, params ICanBeAnalyzed[] moreObjects);
    TReturnType NotBe(IEnumerable<ICanBeAnalyzed> objects);
    TReturnType NotBe(IObjectProvider<ICanBeAnalyzed> objects);
    TReturnType NotCallAny(string pattern, bool useRegularExpressions = false);
    TReturnType NotCallAny(IEnumerable<string> patterns, bool useRegularExpressions = false);
    TReturnType NotCallAny(MethodMember method, params MethodMember[] moreMethods);
    TReturnType NotCallAny(IEnumerable<MethodMember> methods);
    TReturnType NotCallAny(IObjectProvider<MethodMember> methods);
    TReturnType NotDependOnAny(string pattern, bool useRegularExpressions = false);
    TReturnType NotDependOnAny(IEnumerable<string> patterns, bool useRegularExpressions = false);
    TReturnType NotDependOnAny(IType firstType, params IType[] moreTypes);
    TReturnType NotDependOnAny(Type firstType, params Type[] moreTypes);
    TReturnType NotDependOnAny(IObjectProvider<IType> types);
    TReturnType NotDependOnAny(IEnumerable<IType> types);
    TReturnType NotDependOnAny(IEnumerable<Type> types);
    TReturnType NotHaveAnyAttributes(string pattern, bool useRegularExpressions = false);
    TReturnType NotHaveAnyAttributes(IEnumerable<string> patterns, bool useRegularExpressions = false);
    TReturnType NotHaveAnyAttributes(Attribute firstAttribute, params Attribute[] moreAttributes);
    TReturnType NotHaveAnyAttributes(Type firstAttribute, params Type[] moreAttributes);
    TReturnType NotHaveAnyAttributes(IObjectProvider<Attribute> attributes);
    TReturnType NotHaveAnyAttributes(IEnumerable<Attribute> attributes);
    TReturnType NotHaveAnyAttributes(IEnumerable<Type> attributes);
    TReturnType NotHaveName(string name);
    TReturnType NotHaveNameMatching(string pattern);
    TReturnType NotHaveFullName(string fullname);
    TReturnType NotHaveFullNameMatching(string pattern);
    TReturnType NotHaveNameStartingWith(string pattern);
    TReturnType NotHaveNameEndingWith(string pattern);
    TReturnType NotHaveNameContaining(string pattern);
    TReturnType NotHaveFullNameContaining(string pattern);
    TReturnType NotBePrivate();
    TReturnType NotBePublic();
    TReturnType NotBeProtected();
    TReturnType NotBeInternal();
    TReturnType NotBeProtectedInternal();
    TReturnType NotBePrivateProtected();