public void Retrives_All_Batches()
        {
            var databaseGateway = new DatabaseGateway(ConnectionStringReader.GetIntegration(), TestDatabaseName);

            var source  = new DatabaseSourceGateway(databaseGateway);
            var batches = source.GetBatches(null);


            foreach (var batch in batches)
            {
                Console.WriteLine("batch: {0}", batch.Text);
            }

            Assert.AreEqual(5, batches.Count());

            var proc = batches.FirstOrDefault(p => p.ObjectName == "[dbo].[a_procedure]");

            Assert.IsNotNull(proc);
        }
        public void Retrieves_Last_Statement_In_Large_Procedure()
        {
            var databaseGateway = new DatabaseGateway(TestServerConnectionString, TestDatabaseName);

            var source  = new DatabaseSourceGateway(databaseGateway);
            var batches = source.GetBatches(null);


            foreach (var batch in batches)
            {
                Console.WriteLine("batch: {0}", batch.Text);
            }

            Assert.AreEqual(5, batches.Count());

            var proc = batches.FirstOrDefault(p => p.ObjectName == "[dbo].[a_large_procedure]");

            Assert.AreEqual(2, proc.StatementCount);
        }
Beispiel #3
0
        public TraceController GetTraceController(DatabaseGateway gateway, string databaseName, TraceControllerType type)
        {
            switch (type)
            {
            case TraceControllerType.Azure:
                return(new AzureTraceController(gateway, databaseName));

            case TraceControllerType.Sql:
                return(new SqlTraceController(gateway, databaseName));

            case TraceControllerType.SqlLocalDb:
                return(new SqlLocalDbTraceController(gateway, databaseName));
            }

            var source = new DatabaseSourceGateway(gateway);

            if (LooksLikeLocalDb(gateway.DataSource))
            {
                return(new SqlLocalDbTraceController(gateway, databaseName));
            }


            var isAzure = source.IsAzure();

            if (!isAzure)
            {
                return(new SqlTraceController(gateway, databaseName));
            }

            var version = source.GetVersion();

            if (version < SqlServerVersion.Sql120)
            {
                throw  new Exception("SQL Azure is only supported from Version 12");
            }

            return(new AzureTraceController(gateway, databaseName));
        }
        public void Doesnt_Die_When_Finding_Encrypted_Stored_Procedures()
        {
            var databaseGateway = new DatabaseGateway(TestServerConnectionString, TestDatabaseName, 15);

            databaseGateway.Execute(@"if not exists (select * from sys.procedures where name = 'enc')
begin
	exec sp_executesql N'create procedure enc with encryption 
	as
	select 100;'
end");
            var source  = new DatabaseSourceGateway(databaseGateway);
            var batches = source.GetBatches(null);

            foreach (var batch in batches)
            {
                Console.WriteLine("batch: {0}", batch.Text);
            }

            Assert.AreEqual(5, batches.Count());

            var coverage = new CodeCoverage(TestServerConnectionString, TestDatabaseName, null, true, false);

            Assert.DoesNotThrow(() => coverage.Cover("exec enc"));
        }
Beispiel #5
0
        public void Doesnt_Die_When_Finding_Encrypted_Stored_Procedures()
        {
            var databaseGateway = new DatabaseGateway(TestServerConnectionString, TestDatabaseName);

            databaseGateway.Execute(@"if not exists (select * from sys.procedures where name = 'enc')
begin
	exec sp_executesql N'create procedure enc with encryption 
	as
	select 100;'
end", 15);
            var source  = new DatabaseSourceGateway(databaseGateway);
            var batches = source.GetBatches(null);

            foreach (var batch in batches)
            {
                Console.WriteLine("batch: {0}", batch.Text);
            }

            Assert.AreEqual(4, batches.Count());

            var proc = batches.FirstOrDefault(p => p.ObjectName == "[dbo].[a_large_procedure]");

            Assert.AreEqual(2, proc.StatementCount);
        }