Type Conditions

//  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 Be(Type firstType, params Type[] moreTypes);
    TReturnType Be(IEnumerable<Type> types);
    TReturnType BeAssignableTo(string pattern, bool useRegularExpressions = false);
    TReturnType BeAssignableTo(IEnumerable<string> patterns, bool useRegularExpressions = false);
    TReturnType BeAssignableTo(IType firstType, params IType[] moreTypes);
    TReturnType BeAssignableTo(Type type, params Type[] moreTypes);
    TReturnType BeAssignableTo(IObjectProvider<IType> types);
    TReturnType BeAssignableTo(IEnumerable<IType> types);
    TReturnType BeAssignableTo(IEnumerable<Type> types);
    TReturnType ImplementInterface(string pattern, bool useRegularExpressions = false);
    TReturnType ImplementInterface(Interface intf);
    TReturnType ImplementInterface(Type intf);
    TReturnType ResideInNamespace(string pattern, bool useRegularExpressions = false);
    TReturnType ResideInAssembly(string pattern, bool useRegularExpressions = false);
    TReturnType ResideInAssembly(Assembly assembly, params Assembly[] moreAssemblies);
    TReturnType HavePropertyMemberWithName(string name);
    TReturnType HaveFieldMemberWithName(string name);
    TReturnType HaveMethodMemberWithName(string name);
    TReturnType HaveMemberWithName(string name);
    TReturnType BeNested();


    //Negations


    TReturnType NotBe(Type firstType, params Type[] moreTypes);
    TReturnType NotBe(IEnumerable<Type> types);
    TReturnType NotBeAssignableTo(string pattern, bool useRegularExpressions = false);
    TReturnType NotBeAssignableTo(IEnumerable<string> patterns, bool useRegularExpressions = false);
    TReturnType NotBeAssignableTo(IType type, params IType[] moreTypes);
    TReturnType NotBeAssignableTo(Type type, params Type[] moreTypes);
    TReturnType NotBeAssignableTo(IObjectProvider<IType> types);
    TReturnType NotBeAssignableTo(IEnumerable<IType> types);
    TReturnType NotBeAssignableTo(IEnumerable<Type> types);
    TReturnType NotImplementInterface(string pattern, bool useRegularExpressions = false);
    TReturnType NotImplementInterface(Interface intf);
    TReturnType NotImplementInterface(Type intf);
    TReturnType NotResideInNamespace(string pattern, bool useRegularExpressions = false);
    TReturnType NotResideInAssembly(string pattern, bool useRegularExpressions = false);
    TReturnType NotResideInAssembly(Assembly assembly, params Assembly[] moreAssemblies);
    TReturnType NotHavePropertyMemberWithName(string name);
    TReturnType NotHaveFieldMemberWithName(string name);
    TReturnType NotHaveMethodMemberWithName(string name);
    TReturnType NotHaveMemberWithName(string name);
    TReturnType NotBeNested();