Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
 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);
     }
 }
Ejemplo n.º 3
0
        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();
            }
        }
Ejemplo n.º 4
0
        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();
            }
        }
Ejemplo n.º 5
0
        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
");
            }
        }