public void ShouldUpdateJsonConfig() { var databaseName = EnhancedRandom.String(10, 20); const string databaseType = "sqlserver"; const string connectionString = "Data Source=localhost;Integrated Security=True;"; new LinkCommand().CreateLinkedDatabaseFolder(databaseName); var command = new LinkConfigCommand(); command.UpdateDatabaseConfig(databaseName, databaseType, connectionString); var directory = Directory.GetCurrentDirectory(); var fileName = Path.Combine(directory, $"{databaseName}.json"); var folderName = Path.Combine(directory, databaseName); Directory.Exists(folderName).ShouldBe(true); File.Exists(fileName).ShouldBe(true); var text = File.ReadAllText(fileName); var db = JsonConvert.DeserializeObject <LinkedDatabase>(text); db.Name.ShouldBe(databaseName); db.FolderLocation.ShouldBe(folderName); db.DatabaseType.ShouldBe(DatabaseType.SqlServer); db.ConnectionString.ShouldBe(connectionString); }
public void ShouldSetAnsiNullsAndQuotedIdentifierCorrectly() { var dbReader = new SqlServerDatabaseReader(Database); var procedure = new StoredProcedure { Schema = "dbo", Name = "ansi and quoted", Text = $"SELECT '{EnhancedRandom.String(800, 1000)}'" }; var query = StoredProcString(procedure); using (var conn = new SqlConnection(Database.ConnectionString)) { conn.Open(); conn.ChangeDatabase(Database.Name); conn.Execute("SET QUOTED_IDENTIFIER OFF"); conn.Execute("SET ANSI_NULLS OFF"); conn.Execute(query); } var storedProcs = dbReader.GetStoredProcedures().ToList(); var sp1 = storedProcs.FirstOrDefault(x => x.Name == procedure.Name); sp1.ShouldNotBeNull(); sp1.Text.ShouldContain(procedure.Text); sp1.Text.ShouldContain("SET QUOTED_IDENTIFIER OFF"); sp1.Text.ShouldContain("SET ANSI_NULLS OFF"); }
public void ShouldCreateAFolder() { var command = new LinkCommand(); var databaseName = EnhancedRandom.String(10, 20); command.CreateLinkedDatabaseFolder(databaseName); var directory = Directory.GetCurrentDirectory(); var fileName = Path.Combine(directory, $"{databaseName}.json"); var folderName = Path.Combine(directory, databaseName); Directory.Exists(folderName).ShouldBe(true); File.Exists(fileName).ShouldBe(true); }
public void ShouldNotCutOffStoredProcAfter8000Characters() { var dbReader = new SqlServerDatabaseReader(Database); var storedProc1 = new StoredProcedure { Schema = "dbo", Name = "long stored proc", Text = $"SELECT '{EnhancedRandom.String(8100, 10000)}'" }; CreateStoredProc(storedProc1); var storedProcs = dbReader.GetStoredProcedures().ToList(); var sp1 = storedProcs.FirstOrDefault(x => x.Name == storedProc1.Name); sp1.ShouldNotBeNull(); sp1.Text.ShouldContain(storedProc1.Text); }