コード例 #1
0
        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);
        }
コード例 #2
0
        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");
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }