public void ConfigureConfiguresInstanceStore()
        {
            using (var testdb = new SqlWorkflowInstanceStoreTest())
            {
                // Arrange
                testdb.Create();

                // Act
                testdb.ConfigureInstanceStore();

                // Assert
                testdb.AssertDatabaseIsConfigured();
            }
        }
        public void ConfigureInstanceStoreWithEvilDbShouldThrow()
        {
            using (var testdb = new SqlWorkflowInstanceStoreTest())
            {
                // Arrange

                // Create a plain database without running the scripts
                testdb.Create();

                // Act
                SqlWorkflowInstanceStoreManager.ConfigureInstanceStore(
                    EvilDatabase, testdb.ConnectionString);

                // Assert
                testdb.AssertDatabaseIsConfigured();
            }
        }
        public void ConfigureInstanceStoreShouldConfigure()
        {
            using (var testdb = new SqlWorkflowInstanceStoreTest())
            {
                // Arrange

                // Create a plain database without running the scripts
                testdb.Create();

                // Act
                // Configure the database with the scripts
                SqlWorkflowInstanceStoreManager.ConfigureInstanceStore(
                    testdb.DatabaseName,
                    testdb.ConnectionString);

                // Assert
                testdb.AssertDatabaseIsConfigured();
            }
        }
        public void DropShouldCloseConnections()
        {
            using (var testdb = new SqlWorkflowInstanceStoreTest())
            {
                // Arrange
                testdb.Create();

                // Act
                using (var connection = new SqlConnection(testdb.ConnectionString))
                {
                    // Open a connection and keep it open
                    connection.Open();

                    // DropInstanceStore will force the connection closed and drop the database
                    SqlWorkflowInstanceStoreManager.DropInstanceStore(
                        testdb.DatabaseName,
                        testdb.ConnectionString);
                }

                // Assert
                Assert.IsFalse(testdb.Exists());
            }
        }