public async Task GivenANewSchemaVersion_WhenApplying_ShouldBackCompatible(int schemaVersion)
        {
            int oldSchemaVersion = schemaVersion - 1;
            // Create Sql store at old schema version
            SqlDataStoreTestsFixture oldSqlStore = new SqlDataStoreTestsFixture(SqlDataStoreTestsFixture.GenerateDatabaseName($"COMPATIBLE_{oldSchemaVersion}_"), new SchemaInformation(oldSchemaVersion, oldSchemaVersion));
            await oldSqlStore.InitializeAsync(forceIncrementalSchemaUpgrade : false);

            var oldProcedures = SqlTestUtils.GetStoredProcedures(oldSqlStore);

            // Create Sql store at new schema version
            SqlDataStoreTestsFixture newSqlStore = new SqlDataStoreTestsFixture(SqlDataStoreTestsFixture.GenerateDatabaseName($"COMPATIBLE_{schemaVersion}_"), new SchemaInformation(schemaVersion, schemaVersion));
            await newSqlStore.InitializeAsync(forceIncrementalSchemaUpgrade : false);

            var newProcedures = SqlTestUtils.GetStoredProcedures(newSqlStore);

            // Validate if stored procedures are compatible
            StoredProcedureCompatibleValidator.Validate(schemaVersion, newProcedures, oldProcedures);

            // Dispose if pass
            await oldSqlStore.DisposeAsync();

            await newSqlStore.DisposeAsync();
        }
 public Task ClearExtendedQueryTagErrorTableAsync()
 {
     return(SqlTestUtils.ClearTableAsync(_connectionString, VLatest.ExtendedQueryTagError.TableName));
 }