Ejemplo n.º 1
0
        static TestBase()
        {
            //Configuration.AvoidSpecificDataProviderAPI = true;
            //Configuration.Linq.GenerateExpressionTest = true;

            var providerListFile =
                File.Exists(@"..\..\UserDataProviders.txt") ?
                @"..\..\UserDataProviders.txt" :
                @"..\..\DefaultDataProviders.txt";

            UserProviders.AddRange(
                File.ReadAllLines(providerListFile)
                .Select(s => s.Trim())
                .Where(s => s.Length > 0 && !s.StartsWith("--")));

            DataConnection.TurnTraceSwitchOn();

            LinqService.TypeResolver = str =>
            {
                switch (str)
                {
                case "Tests.Model.Gender": return(typeof(Gender));

                case "Tests.Model.Person": return(typeof(Person));

                default: return(null);
                }
            };

            OpenHost();
        }
Ejemplo n.º 2
0
        static TestBase()
        {
            //Configuration.AvoidSpecificDataProviderAPI = true;
            //Configuration.Linq.GenerateExpressionTest = true;

            var providerListFile =
                File.Exists(@"..\..\UserDataProviders.txt") ?
                @"..\..\UserDataProviders.txt" :
                @"..\..\DefaultDataProviders.txt";

            UserProviders.AddRange(
                File.ReadAllLines(providerListFile)
                .Select(s => s.Trim())
                .Where(s => s.Length > 0 && !s.StartsWith("--"))
                .Select(s =>
            {
                var ss = s.Split('*');
                switch (ss.Length)
                {
                case 0: return(null);

                case 1: return(new UserProviderInfo {
                        Name = ss[0].Trim()
                    });

                default: return(new UserProviderInfo {
                        Name = ss[0].Trim(), ConnectionString = ss[1].Trim()
                    });
                }
            }));

            foreach (var provider in UserProviders)
            {
                if (provider.ConnectionString != null)
                {
                    DataConnection.SetConnectionString(provider.Name, provider.ConnectionString);
                }
            }

            DataConnection.TurnTraceSwitchOn();

            LinqService.TypeResolver = str =>
            {
                switch (str)
                {
                case "Tests.Model.Gender": return(typeof(Gender));

                case "Tests.Model.Person": return(typeof(Person));

                default: return(null);
                }
            };

            OpenHost();
        }
Ejemplo n.º 3
0
        static TestBase()
        {
            var providerListFile =
                File.Exists(@"..\..\UserDataProviders.txt") ?
                @"..\..\UserDataProviders.txt" :
                @"..\..\DefaultDataProviders.txt";

            UserProviders.AddRange(
                File.ReadAllLines(providerListFile)
                .Select(s => s.Trim())
                .Where(s => s.Length > 0 && !s.StartsWith("--"))
                .Select(s =>
            {
                var ss = s.Split('*');
                switch (ss.Length)
                {
                case 0:  return(null);

                case 1:  return(new UserProviderInfo {
                        Name = ss[0].Trim()
                    });

                default: return(new UserProviderInfo {
                        Name = ss[0].Trim(), ConnectionString = ss[1].Trim()
                    });
                }
            })
                .Where(_ => _ != null));

            foreach (var provider in UserProviders)
            {
                if (provider.ConnectionString != null)
                {
                    DbManager.AddConnectionString(provider.Name, provider.ConnectionString);
                }
            }


            AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
            {
                string assembly;

                if (args.Name.IndexOf("Sybase.AdoNet2.AseClient") >= 0)
                {
                    assembly = @"Sybase\Sybase.AdoNet2.AseClient.dll";
                }
                else if (args.Name.IndexOf("Oracle.DataAccess") >= 0)
                {
                    assembly = @"Oracle\Oracle.DataAccess.dll";
                }
                else if (args.Name.IndexOf("IBM.Data.DB2") >= 0)
                {
                    assembly = @"IBM\IBM.Data.DB2.dll";
                }
                else if (args.Name.IndexOf("Npgsql.resources") >= 0)
                {
                    return(null);
                }
                else if (args.Name.IndexOf("Npgsql") >= 0)
                {
                    assembly = @"PostgreSql\Npgsql.dll";
                }
                else if (args.Name.IndexOf("Mono.Security") >= 0)
                {
                    assembly = @"PostgreSql\Mono.Security.dll";
                }
                else if (args.Name.IndexOf("System.Data.SqlServerCe,") >= 0)
                {
                    assembly = @"SqlCe\System.Data.SqlServerCe.dll";
                }
                else
                {
                    return(null);
                }

                assembly = @"..\..\..\..\Redist\" + assembly;

                if (!File.Exists(assembly))
                {
                    assembly = @"..\..\" + assembly;
                }

                return(Assembly.LoadFrom(assembly));
            };

            DbManager.TurnTraceSwitchOn();

            PostgreSQLSqlProvider.QuoteIdentifiers = true;

            var path = Path.GetDirectoryName(typeof(DbManager).Assembly.CodeBase.Replace("file:///", ""));

            foreach (var info in Providers)
            {
                try
                {
                    Type type;

                    if (info.Assembly == null)
                    {
                        type = typeof(DbManager).Assembly.GetType(info.Type, true);
                    }
                    else
                    {
#if FW4
                        var fileName = info.Assembly + ".4.dll";
#else
                        var fileName = info.Assembly + ".3.dll";
#endif

                        var assembly = Assembly.LoadFile(Path.Combine(path, fileName));

                        type = assembly.GetType(info.Type, true);
                    }

                    DbManager.AddDataProvider(type);

                    info.Loaded = true;
                }
                catch (Exception)
                {
                    info.Loaded = false;
                }
            }

            LinqService.TypeResolver = str =>
            {
                switch (str)
                {
                //case "Data.Linq.Model.Gender" : return typeof(Gender);
                case "Data.Linq.Model.Person": return(typeof(Person));

                case "Data.Linq.WhereTest+TestEnum": return(typeof(WhereTest.TestEnum));

                default: return(null);
                }
            };
        }