예제 #1
0
        private void DatabaseExists_returns_false_for_existing_attached_database_when_no_master_nor_database_permission(bool useInitialcatalog)
        {
            using (var context = new AttachedContext(SimpleAttachConnectionString <AttachedContext>()))
            {
                if (IsSqlAzure(context.Database.Connection.ConnectionString))
                {
                    // SQL Azure does not suppot attaching databases
                    return;
                }

                // Ensure database is initialized
                context.Database.Initialize(force: true);
            }

            try
            {
                using (var context = new AttachedContext(
                           SimpleAttachConnectionStringWithCredentials <AttachedContext>(
                               "EFTestSimpleModelUser",
                               "Password1",
                               useInitialcatalog)))
                {
                    Assert.False(context.Database.Exists());
                }
            }
            finally
            {
                using (var context = new AttachedContext(SimpleAttachConnectionString <AttachedContext>()))
                {
                    context.Database.Delete();
                }
            }
        }
예제 #2
0
 private void DatabaseExists_returns_false_for_non_existing_attached_database_when_no_master_permission(bool useInitialCatalog)
 {
     using (var context = new AttachedContext(
                SimpleAttachConnectionStringWithCredentials <AttachedContext>(
                    "EFTestSimpleModelUser",
                    "Password1", useInitialCatalog)))
     {
         Assert.False(context.Database.Exists());
     }
 }
예제 #3
0
 private void AttachableDatabaseTest(Action <AttachedContext> testMethod, bool useInitialCatalog = true)
 {
     using (var context = new AttachedContext(SimpleAttachConnectionString <AttachedContext>(useInitialCatalog)))
     {
         try
         {
             // Execute actual test
             testMethod(context);
         }
         finally
         {
             // Ensure database is deleted/detached
             context.Database.Delete();
         }
     }
 }
예제 #4
0
        //[Fact]
        // See issue 1091
        public void DatabaseExists_returns_true_for_existing_attached_database_when_no_master_permissions()
        {
            var connectionString = SimpleAttachConnectionString <AttachedContext>();

            using (var context = new AttachedContext(connectionString))
            {
                context.Database.Delete();
                // Ensure database is initialized
                context.Database.Initialize(force: true);
            }

            using (var connection = new SqlConnection(connectionString))
            {
                connection.Open();

                using (var command = connection.CreateCommand())
                {
                    command.CommandText =
                        @"IF NOT EXISTS (SELECT * FROM sys.sysusers WHERE name= N'EFTestSimpleModelUser')
                          BEGIN
                            CREATE USER [EFTestSimpleModelUser] FOR LOGIN [EFTestSimpleModelUser]
                          END";
                    command.ExecuteNonQuery();
                }
            }

            try
            {
                using (var context = new AttachedContext(
                           SimpleAttachConnectionStringWithCredentials <AttachedContext>(
                               "EFTestSimpleModelUser",
                               "Password1")))
                {
                    Assert.True(context.Database.Exists());
                }
            }
            finally
            {
                using (var context = new AttachedContext(SimpleAttachConnectionString <AttachedContext>()))
                {
                    context.Database.Delete();
                }
            }
        }
예제 #5
0
        private void AttachableDatabaseTest(Action <AttachedContext> testMethod, bool useInitialCatalog = true)
        {
            using (var context = new AttachedContext(SimpleAttachConnectionString <AttachedContext>(useInitialCatalog)))
            {
                // SQL Azure does not support attaching databases
                if (IsSqlAzure(context.Database.Connection.ConnectionString))
                {
                    return;
                }

                try
                {
                    // Execute actual test
                    testMethod(context);
                }
                finally
                {
                    // Ensure database is deleted/detached
                    context.Database.Delete();
                }
            }
        }
예제 #6
0
        private void DatabaseExists_returns_true_for_existing_attached_database_when_no_master_nor_database_permission(bool useInitialcatalog)
        {
            using (var context = new AttachedContext(SimpleAttachConnectionString <AttachedContext>()))
            {
                if (DatabaseTestHelpers.IsSqlAzure(context.Database.Connection.ConnectionString))
                {
                    // SQL Azure does not suppot attaching databases
                    return;
                }

                // Ensure database is initialized
                context.Database.Initialize(force: true);
            }

            // See CodePlex 1554 - Handle User Instance flakiness
            MutableResolver.AddResolver <Func <IDbExecutionStrategy> >(new ExecutionStrategyResolver <IDbExecutionStrategy>(
                                                                           SqlProviderServices.ProviderInvariantName, null, () => new SqlAzureExecutionStrategy()));
            try
            {
                using (var context = new AttachedContext(
                           SimpleAttachConnectionStringWithCredentials <AttachedContext>(
                               "EFTestSimpleModelUser",
                               "Password1",
                               useInitialcatalog)))
                {
                    Assert.True(context.Database.Exists(), "context.Database does not exist, actual connection string: " + context.Database.Connection.ConnectionString);
                }
            }
            finally
            {
                MutableResolver.ClearResolvers();

                using (var context = new AttachedContext(SimpleAttachConnectionString <AttachedContext>()))
                {
                    context.Database.Delete();
                }
            }
        }