public void UpdateTagAfterExecution_Test() { using (var cmd = new DatabaseCommand(_connection)) { cmd.Log = Console.WriteLine; // Tag 1 cmd.TagWith("Tag1"); cmd.CommandText = "SELECT * FROM EMP"; cmd.ActionBeforeExecution = (query) => { Assert.AreEqual($"Tag1", query.Tags.First()); Assert.AreEqual($"SELECT * FROM EMP", query.CommandText); Assert.AreEqual($"-- Tag1{NEW_LINE}SELECT * FROM EMP", query.Formatted.CommandAsText); }; cmd.ExecuteNonQuery(); // Tag 2 cmd.TagWith("Tag2"); cmd.CommandText = "SELECT * FROM EMP"; cmd.ActionBeforeExecution = (query) => { Assert.AreEqual($"Tag1", query.Tags.First()); Assert.AreEqual($"SELECT * FROM EMP", query.CommandText); Assert.AreEqual($"-- Tag1{NEW_LINE}-- Tag2{NEW_LINE}SELECT * FROM EMP", query.Formatted.CommandAsText); }; cmd.ExecuteNonQuery(); } }
public void GetFormattedAsText_WithTags_Test() { using (var cmd = new DatabaseCommand(_connection)) { cmd.TagWith("MyTag"); cmd.CommandText = " SELECT * FROM EMP "; Assert.AreEqual($"-- MyTag{Environment.NewLine} SELECT * FROM EMP ", cmd.Formatted.CommandAsText); } }
public void SimpleTag_Test() { using (var cmd = new DatabaseCommand(_connection)) { cmd.Log = Console.WriteLine; cmd.TagWith("My command"); cmd.CommandText = "SELECT * FROM EMP"; cmd.ActionBeforeExecution = (query) => { Assert.AreEqual($"My command", query.Tags.First()); Assert.AreEqual($"SELECT * FROM EMP", query.CommandText); Assert.AreEqual($"-- My command{NEW_LINE}SELECT * FROM EMP", query.Formatted.CommandAsText); }; cmd.ExecuteNonQuery(); } }
public void TagMultilineTags_Test() { using (var cmd = new DatabaseCommand(_connection)) { cmd.Log = Console.WriteLine; cmd.TagWith($"Tag1{NEW_LINE}Tag2"); cmd.CommandText = "SELECT * FROM EMP"; cmd.ActionBeforeExecution = (query) => { Assert.AreEqual($"Tag1", query.Tags.ElementAt(0)); Assert.AreEqual($"Tag2", query.Tags.ElementAt(1)); Assert.AreEqual($"SELECT * FROM EMP", query.CommandText); Assert.AreEqual($"-- Tag1{NEW_LINE}-- Tag2{NEW_LINE}SELECT * FROM EMP", query.Formatted.CommandAsText); }; cmd.ExecuteNonQuery(); } }
public void GetFormattedAsVariables_Parameters_Test() { using (var cmd = new DatabaseCommand(_connection)) { cmd.TagWith("Sample"); cmd.CommandText.AppendLine(" SET ANSI_NULLS OFF"); cmd.CommandText.AppendLine(" SELECT * FROM EMP"); cmd.CommandText.AppendLine(" WHERE EMPNO = @EmpNo"); cmd.CommandText.AppendLine(" AND ENAME LIKE @Ename"); cmd.CommandText.AppendLine(" AND HIREDATE > @Hire"); cmd.CommandText.AppendLine(" AND COMM = @Comm"); cmd.AddParameter("@EmpNo", 7369); // INT cmd.AddParameter("@ENAME", "%SM%"); // VARCHAR(6) cmd.AddParameter("Hire", new DateTime(1970, 05, 04, 14, 15, 16)); // DATETIME cmd.AddParameter("@Comm", null, System.Data.DbType.Currency); // VARCHAR cmd.AddParameter("@MyBool", true); // BIT string formatted = cmd.Formatted.CommandAsVariables; Assert.AreEqual(formatted, @"-- Sample DECLARE @Hire AS DATETIME = '1970-05-04 14:15:16' DECLARE @MyBool AS BIT = 1 DECLARE @ENAME AS VARCHAR(4) = '%SM%' DECLARE @EmpNo AS INT = 7369 DECLARE @Comm AS VARCHAR(4000) = NULL SET ANSI_NULLS OFF SELECT * FROM EMP WHERE EMPNO = @EmpNo AND ENAME LIKE @Ename AND HIREDATE > @Hire AND COMM = @Comm "); } }