예제 #1
0
        public void SqlCeConnectionFactory_with_properly_formed_environment_style_is_concatenated_correctly()
        {
            var factory = new SqlCeConnectionFactory("System.Data.FakeSqlClient", @"|BuffyLovesAngel|", "");

            var connection = factory.CreateConnection("FakeDatabaseName");

            Assert.Equal(@"Data Source=|BuffyLovesAngel|FakeDatabaseName.sdf; ", connection.ConnectionString);
        }
예제 #2
0
        public void SqlCeConnectionFactory_uses_database_name_as_sdf_filename_even_when_database_name_already_ends_in_sdf()
        {
            var factory = new SqlCeConnectionFactory("System.Data.FakeSqlClient");

            var connection = factory.CreateConnection("FakeDatabaseName.sdf");

            Assert.Equal("Data Source=|DataDirectory|FakeDatabaseName.sdf; ", connection.ConnectionString);
        }
예제 #3
0
        public void SqlCeConnectionFactory_treats_improperly_start_formed_environment_style_as_path_which_then_throws()
        {
            var factory = new SqlCeConnectionFactory("System.Data.FakeSqlClient", @"AnyaLovesXander|", "");

            Assert.Equal(
                GenerateException(() => Path.Combine("|", "Willow")).Message,
                Assert.Throws <ArgumentException>(() => factory.CreateConnection("FakeDatabaseName")).Message);
        }
예제 #4
0
        public void SqlCeConnectionFactory_throws_when_a_bad_base_connection_string_is_used()
        {
            var factory = new SqlCeConnectionFactory(
                "System.Data.SqlServerCe.4.0", "",
                "Whats On The End Of The Stick Vic=Admiral Nelsons Final Flannel");

            Assert.Throws <ArgumentException>(() => factory.CreateConnection("Something")).ValidateMessage(
                _sqlCeAssembly.Value, "ADP_KeywordNotSupported", null, "whats on the end of the stick vic");
        }
예제 #5
0
        public void SqlCeConnectionFactory_uses_changed_database_path_when_creating_connection_string()
        {
            var factory = new SqlCeConnectionFactory("System.Data.FakeSqlClient", @"C:\VicAndBobs\Novelty Island", "");

            Assert.Equal(@"C:\VicAndBobs\Novelty Island", factory.DatabaseDirectory);

            var connection = factory.CreateConnection("FakeDatabaseName");

            Assert.Equal(@"Data Source=C:\VicAndBobs\Novelty Island\FakeDatabaseName.sdf; ", connection.ConnectionString);
        }
예제 #6
0
        public void SqlCeConnectionFactory_uses_changed_base_connection_string_when_creating_connection_string()
        {
            var factory = new SqlCeConnectionFactory("System.Data.FakeSqlClient", "", "Persist Security Info=False");

            Assert.Equal("Persist Security Info=False", factory.BaseConnectionString);

            var connection = factory.CreateConnection("FakeDatabaseName");

            Assert.Equal("Data Source=FakeDatabaseName.sdf; Persist Security Info=False", connection.ConnectionString);
        }
예제 #7
0
        public void SqlCeConnectionFactory_throws_when_a_connection_with_bad_database_path_is_used()
        {
            var factory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0", @"//C:::\\\D:\\D::::D\\\", "");

            using (var connection = factory.CreateConnection("FakeDatabaseName"))
            {
                Assert.Throws <NotSupportedException>(() => connection.Open()).ValidateMessage(
                    typeof(File).Assembly,
                    "Argument_PathFormatNotSupported",
                    null);
            }
        }
예제 #8
0
        public void Ce_Insert_LowLevel()
        {
            long ms = 0;

            using (new MetricTracker("Starting complex object", t => ms = t))
            {
                Level1 level1 = new Level1();
                level1.Value  = "test";
                level1.levels = new List <Level2>();

                for (int i = 0; i < 5; i++)
                {
                    Level2 curLevel2 = new Level2();
                    level1.levels.Add(curLevel2);
                    curLevel2.Value  = "test" + i.ToString();
                    curLevel2.levels = new List <Level3>();

                    for (int j = 0; j < 5; j++)
                    {
                        Level3 curLevel3 = new Level3();
                        curLevel2.levels.Add(curLevel3);
                        curLevel3.Value  = "test" + j.ToString();
                        curLevel3.levels = new List <Level4>();

                        for (int k = 0; k < 10; k++)
                        {
                            Level4 curLevel4 = new Level4();
                            curLevel3.levels.Add(curLevel4);
                            curLevel4.Value  = "test" + k.ToString();
                            curLevel4.levels = new List <Level5>();

                            for (int l = 0; l < 10; l++)
                            {
                                Level5 curLevel5 = new Level5();
                                curLevel4.levels.Add(curLevel5);
                                curLevel5.Value = "test" + l.ToString();
                            }
                        }
                    }
                }

                SqlCeConnectionFactory cf = new SqlCeConnectionFactory("System.Data.SqlServerCE.4.0");
                using (SqlCeConnection conn = (SqlCeConnection)cf.CreateConnection(@"c:\temp\myDataPoor.sdf"))
                {
                    conn.Open();

                    // Level1
                    int parentId = SqlCeInsertAdapterLevels.Write_Level1(level1, conn);
                }
            }

            ms.Should().BeLessThan(775);
        }
예제 #9
0
        public MATSDbContext Create()
        {
            if (Singleton.Edition == MATSEdition.CompactEdition)
            {
                var sqlCeConString = "Data Source=" + Singleton.SqlceFileName + ";Max Database Size=4091;Password=mat3P@ssw0rd"; // "Data Source=E:\\DB_Test\\oneface\\MATSDb.sdf;Password=1fac3P@ssw0rd";
                var sqlce          = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");                                  //, path, pathfile);
                return(new MATSDbContext(sqlce.CreateConnection(sqlCeConString), true));
            }
            //data source should be contant value="MATSSERVER" "matsserver"
            string sQlServConString = "data source=.;initial catalog=" + Singleton.SqlceFileName + ";user id=sa;password=amihan";
            var    sql = new SqlConnectionFactory(sQlServConString);

            return(new MATSDbContext(sql.CreateConnection(sQlServConString), true));
        }
예제 #10
0
        SqlCeConnectionFactory_creates_a_SQL_CE_connection_using_changed_database_path_and_base_connection_string()
        {
            var factory = new SqlCeConnectionFactory(
                "System.Data.SqlServerCe.4.0", @"C:\VicAndBob\",
                "Persist Security Info=False");

            using (var connection = factory.CreateConnection("FakeDatabaseName"))
            {
                var sqlCeExceptionType = _sqlCeAssembly.Value.GetType("System.Data.SqlServerCe.SqlCeConnection");
                Assert.IsType(sqlCeExceptionType, connection);
                Assert.Equal(
                    @"Data Source=C:\VicAndBob\FakeDatabaseName.sdf; Persist Security Info=False",
                    connection.ConnectionString);
            }
        }
예제 #11
0
        public void SqlCeConnectionFactory_throws_when_provider_returns_null_connection()
        {
            try
            {
                FakeSqlProviderFactory.Instance.ForceNullConnection = true;
                var factory = new SqlCeConnectionFactory("System.Data.FakeSqlClient");

                Assert.Equal(
                    Strings.DbContext_ProviderReturnedNullConnection,
                    Assert.Throws <InvalidOperationException>(() => factory.CreateConnection("FakeDatabaseName")).Message);
            }
            finally
            {
                FakeSqlProviderFactory.Instance.ForceNullConnection = false;
            }
        }
예제 #12
0
        private static DbConnection BuildConnection(IConnectionSettings connectionSettings)
        {
            if (null == connectionSettings)
            {
                connectionSettings = ConnectionSettings;
            }

            switch (connectionSettings.ProviderInvariantName)
            {
            case DataConfiguration.SqlServerCompactProviderInvariantName:
            {
                var connectionFactory =
                    new SqlCeConnectionFactory(DataConfiguration.SqlServerCompactProviderInvariantName);
                return(connectionFactory.CreateConnection(connectionSettings.ConnectionString));
            }

            case DataConfiguration.SqlServerProviderInvariantName:
            {
                var connectionFactory = new SqlConnectionFactory();
                return(connectionFactory.CreateConnection(connectionSettings.ConnectionString));
            }

            case DataConfiguration.MySqlProviderInvariantName:
            {
                var connectionFactory = new MySqlConnectionFactory();
                return(connectionFactory.CreateConnection(connectionSettings.ConnectionString));
            }

            case DataConfiguration.PostgreSqlProviderInvariantName:
            {
                var connectionFactory = new NpgsqlConnectionFactory();
                return(connectionFactory.CreateConnection(connectionSettings.ConnectionString));
            }

            case DataConfiguration.OracleDBProviderInvariantName:
            {
                var connectionFactory = new OracleConnectionFactory();
                return(connectionFactory.CreateConnection(connectionSettings.ConnectionString));
            }

            default:
                throw new InvalidOperationException("connectionSettings.ProviderInvariantName == " +
                                                    connectionSettings.ProviderInvariantName);
            }
        }
예제 #13
0
        public void SqlCeConnectionFactory_throws_when_a_base_connection_already_containing_a_data_source_is_used()
        {
            var factory = new SqlCeConnectionFactory(
                "System.Data.SqlServerCe.4.0", "",
                "Data Source=VicAndBobsDatabase.sdf");

            using (var connection = factory.CreateConnection("FakeDatabaseName"))
            {
                var sqlCeExceptionType = _sqlCeAssembly.Value.GetType("System.Data.SqlServerCe.SqlCeException");
                try
                {
                    connection.Open();
                    Assert.True(false);
                }
                catch (Exception ex)
                {
                    Assert.IsType(sqlCeExceptionType, ex);
                    Assert.True(ex.Message.Contains("VicAndBobsDatabase.sdf"));
                }
            }
        }
예제 #14
0
        public PinnaFitDBContext Create()
        {
            switch (Singleton.Edition)
            {
            case PinnaFitEdition.CompactEdition:
                var sqlCeConString = "Data Source=" + Singleton.SqlceFileName + ";" +
                                     "Max Database Size=4091;Password=amSt0ckP@ssw0rd";
                Singleton.ConnectionStringName = sqlCeConString;
                Singleton.ProviderName         = "System.Data.SqlServerCe.4.0";
                var sqlce = new SqlCeConnectionFactory(Singleton.ProviderName);
                return(new PinnaFitDBContext(sqlce.CreateConnection(sqlCeConString), true));

            case PinnaFitEdition.ServerEdition:
                const string serverName       = "."; // "ServerPC";
                var          sQlServConString = "data source=" + serverName + ";initial catalog=" + Singleton.SqlceFileName +
                                                ";user id=sa;password=amihan";
                Singleton.ConnectionStringName = sQlServConString;
                Singleton.ProviderName         = "System.Data.SqlClient";
                var sql = new SqlConnectionFactory(sQlServConString);
                return(new PinnaFitDBContext(sql.CreateConnection(sQlServConString), true));
            }
            return(null);
        }
예제 #15
0
        public PinnaFaceDbContext Create()
        {
            switch (Singleton.Edition)
            {
            case PinnaFaceEdition.CompactEdition:

                var sqlCeConString = DbCommandUtil.GetConnectionString();

                Singleton.ConnectionStringName = sqlCeConString;
                Singleton.ProviderName         = "System.Data.SqlServerCe.4.0";
                var sqlce = new SqlCeConnectionFactory(Singleton.ProviderName);
                return(new PinnaFaceDbContext(sqlce.CreateConnection(sqlCeConString), true));

            case PinnaFaceEdition.ServerEdition:

                var sQlServConString = DbCommandUtil.GetConnectionString();

                Singleton.ConnectionStringName = sQlServConString;
                Singleton.ProviderName         = "System.Data.SqlClient";
                var sql = new SqlConnectionFactory(sQlServConString);
                return(new PinnaFaceDbContext(sql.CreateConnection(sQlServConString), true));
            }
            return(null);
        }
 public static Db Create(string filename)
 {
     return(new Db(factory.CreateConnection(@"Data Source=" + filename)));
 }