public void TimeoutCalling_Cover_Fails_With_Timeout_Exception() { var coverage = new CodeCoverage(ConnectionStringReader.GetIntegration(), TestDatabaseName, new[] { ".*tSQLt.*", ".*proc.*" }); try { coverage.Cover("WAITFOR DELAY '1:00:00'", 1); } catch (System.Data.SqlClient.SqlException e) { if (e.Number == -2) { return; } } Assert.Fail("expected sql exception with -2 number"); }
public void Code_Coverage_Returns_All_Covered_Statements() { var coverage = new CodeCoverage(ConnectionStringReader.GetIntegration(), TestDatabaseName); coverage.Start(); using (var con = new SqlConnection(ConnectionStringReader.GetIntegration())) { con.Open(); using (var cmd = con.CreateCommand()) { cmd.CommandText = "exec [dbo].[a_procedure]"; cmd.ExecuteNonQuery(); } } var result = coverage.Stop(); Assert.That(result.RawXml(), Is.StringContaining("HitCount=\"1\"")); }
public void Code_Coverage_Covers_Last_Statement() { var coverage = new CodeCoverage(ConnectionStringReader.GetIntegration(), TestDatabaseName); coverage.Start(); using (var con = new SqlConnection(ConnectionStringReader.GetIntegration())) { con.Open(); using (var cmd = con.CreateCommand()) { cmd.CommandText = "exec [dbo].[set_statements]"; cmd.ExecuteNonQuery(); } } var result = coverage.Stop(); Assert.AreEqual(5, result.CoveredStatementCount); //not sure why SET QUOTED_IDENTIFIER ON is not covered - don't get xevent on 2008 }
public void Does_Not_Cover_Views() { var coverage = new CodeCoverage(ConnectionStringReader.GetIntegration(), TestDatabaseName); coverage.Start(); using (var con = new SqlConnection(ConnectionStringReader.GetIntegration())) { con.Open(); using (var cmd = con.CreateCommand()) { cmd.CommandText = "select * from a_view"; cmd.ExecuteNonQuery(); } } var result = coverage.Stop(); Assert.IsFalse(result.Html().Contains("a_view")); }
public void Retrieves_Last_Statement_In_Large_Procedure() { 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_large_procedure]"); Assert.AreEqual(2, proc.StatementCount); }
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(4, batches.Count()); var proc = batches.FirstOrDefault(p => p.ObjectName == "[dbo].[a_procedure]"); Assert.IsNotNull(proc); }
public void Code_Coverage_Filters_Statements() { var coverage = new CodeCoverage(ConnectionStringReader.GetIntegration(), TestDatabaseName, new[] { ".*tSQLt.*", ".*proc.*" }); coverage.Start(); using (var con = new SqlConnection(ConnectionStringReader.GetIntegration())) { con.Open(); using (var cmd = con.CreateCommand()) { cmd.CommandText = "exec [dbo].[a_procedure]"; cmd.ExecuteNonQuery(); } } var result = coverage.Stop(); Assert.IsFalse(result.RawXml().Contains("HitCount=\"1\"")); Assert.IsFalse(result.RawXml().Contains("a_procedure")); }
// [Ignore("Not sure why failing. Feedback from GoEddie needed.")] public void Code_Coverage_Includes_Last_Statement_Of_Large_Procedure() { var coverage = new CodeCoverage(ConnectionStringReader.GetIntegration(), TestDatabaseName); coverage.Start(); using (var con = new SqlConnection(ConnectionStringReader.GetIntegration())) { con.Open(); using (var cmd = con.CreateCommand()) { cmd.CommandText = "exec [dbo].[a_large_procedure] 1, 1"; cmd.ExecuteNonQuery(); } } var result = coverage.Stop(); Assert.That(result.CoveredStatementCount, Is.EqualTo(2)); var xml = result.OpenCoverXml(); }
public void Code_Coverage_Excludes_Label_From_Lines_That_Can_Be_Covered() { var coverage = new CodeCoverage(ConnectionStringReader.GetIntegration(), TestDatabaseName); coverage.Start(); using (var con = new SqlConnection(ConnectionStringReader.GetIntegration())) { con.Open(); using (var cmd = con.CreateCommand()) { cmd.CommandText = "exec [dbo].[a_procedure_with_goto]"; cmd.ExecuteNonQuery(); } } var result = coverage.Stop(); Assert.That(result.CoveredStatementCount, Is.EqualTo(4)); Assert.That(result.StatementCount, Is.EqualTo(24)); var xml = result.OpenCoverXml(); }
public void Doesnt_Die_When_Database_Trigger_Code() { var coverage = new CodeCoverage(ConnectionStringReader.GetIntegration(), TestDatabaseName, null, true, false); var results = coverage.Cover("create synonym abd for a_table"); //if we dont die we are good }
public void Doesnt_Die_When_Table_Trigger_Code() { var coverage = new CodeCoverage(ConnectionStringReader.GetIntegration(), TestDatabaseName, null, true, false); var results = coverage.Cover("insert into a_table select 100"); //if we dont die we are good }