Exemplo n.º 1
0
    public void TestAssemblySetup()
    {
        // netcoreapp2.1 adds DbProviderFactories support, but providers should be registered by application itself
        // this code allows to load assembly using factory without adding explicit reference to project
        RegisterSapHanaFactory();
        RegisterSqlCEFactory();

#if NET46 && !AZURE
        // configure assembly redirect for referenced assemblies to use version from GAC
        // this solves exception from provider-specific tests, when it tries to load version from redist folder
        // but loaded from GAC assembly has other version
        AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
        {
            var requestedAssembly = new AssemblyName(args.Name);

            if (requestedAssembly.Name == "IBM.Data.DB2")
            {
                return(DbProviderFactories.GetFactory("IBM.Data.DB2").GetType().Assembly);
            }

            if (requestedAssembly.Name == "IBM.Data.Informix")
            {
                // chose your red or blue pill carefully
                //return DbProviderFactories.GetFactory("IBM.Data.Informix").GetType().Assembly;
                return(typeof(IBM.Data.Informix.IfxTimeSpan).Assembly);
            }

            return(null);
        };
#endif

        // register test providers
        TestNoopProvider.Init();
        SQLiteMiniprofilerProvider.Init();
    }
Exemplo n.º 2
0
    public void TestAssemblySetup()
    {
#if NET46
        // recent SAP HANA provider uses Assembly.GetEntryAssembly() calls during native dlls discovery, which
        // leads to NRE as it returns null under NETFX, so we need to fake this method result to unblock HANA testing
        // https://github.com/microsoft/vstest/issues/1834
        // https://dejanstojanovic.net/aspnet/2015/january/set-entry-assembly-in-unit-testing-methods/
        var assembly = Assembly.GetCallingAssembly();

        var manager            = new AppDomainManager();
        var entryAssemblyfield = manager.GetType().GetField("m_entryAssembly", BindingFlags.Instance | BindingFlags.NonPublic);
        entryAssemblyfield.SetValue(manager, assembly);

        var domain             = AppDomain.CurrentDomain;
        var domainManagerField = domain.GetType().GetField("_domainManager", BindingFlags.Instance | BindingFlags.NonPublic);
        domainManagerField.SetValue(domain, manager);
#endif

        // netcoreapp2.1 adds DbProviderFactories support, but providers should be registered by application itself
        // this code allows to load assembly using factory without adding explicit reference to project
        RegisterSapHanaFactory();
        RegisterSqlCEFactory();

#if !NETCOREAPP2_1 && !AZURE
        // configure assembly redirect for referenced assemblies to use version from GAC
        // this solves exception from provider-specific tests, when it tries to load version from redist folder
        // but loaded from GAC assembly has other version
        AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
        {
            var requestedAssembly = new AssemblyName(args.Name);

            if (requestedAssembly.Name == "IBM.Data.DB2")
            {
                return(DbProviderFactories.GetFactory("IBM.Data.DB2").GetType().Assembly);
            }

            if (requestedAssembly.Name == "IBM.Data.Informix")
            {
                // chose your red or blue pill carefully
                //return DbProviderFactories.GetFactory("IBM.Data.Informix").GetType().Assembly;
                return(typeof(IBM.Data.Informix.IfxTimeSpan).Assembly);
            }

            return(null);
        };
#endif

        // register test providers
        TestNoopProvider.Init();
        SQLiteMiniprofilerProvider.Init();
    }
Exemplo n.º 3
0
    public void TestAssemblySetup()
    {
        // uncomment it to run tests with SeqentialAccess command behavior
        //LinqToDB.Common.Configuration.OptimizeForSequentialAccess = true;
        //DbCommandProcessorExtensions.Instance = new SequentialAccessCommandProcessor();

        // netcoreapp2.1 adds DbProviderFactories support, but providers should be registered by application itself
        // this code allows to load assembly using factory without adding explicit reference to project
        CopySQLiteRuntime();
        RegisterSapHanaFactory();
        RegisterSqlCEFactory();

#if NET472 && !AZURE
        // configure assembly redirect for referenced assemblies to use version from GAC
        // this solves exception from provider-specific tests, when it tries to load version from redist folder
        // but loaded from GAC assembly has other version
        AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
        {
            var requestedAssembly = new AssemblyName(args.Name);

            if (requestedAssembly.Name == "IBM.Data.DB2")
            {
                return(DbProviderFactories.GetFactory("IBM.Data.DB2").GetType().Assembly);
            }

            if (requestedAssembly.Name == "IBM.Data.Informix")
            {
                // chose your red or blue pill carefully
                //return DbProviderFactories.GetFactory("IBM.Data.Informix").GetType().Assembly;
                return(typeof(IBM.Data.Informix.IfxTimeSpan).Assembly);
            }

            return(null);
        };
#endif

        // register test providers
        TestNoopProvider.Init();
        SQLiteMiniprofilerProvider.Init();

        // uncomment to run FEC for all tests and comment reset line in TestBase.OnAfterTest
        //LinqToDB.Common.Compilation.SetExpressionCompiler(_ => FastExpressionCompiler.ExpressionCompiler.CompileFast(_, true));
    }