Example #1
0
        public void To_String()
        {
            IAlias  person = sql.Alias("person");
            IRawSql raw    = sql.Raw("SELECT {0} FROM {2}", person["Name"], "Some text", person);

            Assert.Equal("SELECT person.Name FROM person", raw.ToString());
        }
Example #2
0
        public void From_Dummy_Empty()
        {
            IRawSql from = sql.FromDummy;

            QueryResult result = engine.Compile(from);

            Assert.Equal("", result.Sql);
        }
Example #3
0
        public void Null_Value_Expression_Inline()
        {
            IRawSql raw = sql.Raw("{0}", sql.Val(() => null));

            QueryResult result = engine.Compile(raw);

            Assert.Equal("NULL", result.Sql);
            Assert.Equal(new Dictionary <string, object>(), result.Parameters);
        }
Example #4
0
        public void Raw_Text()
        {
            IRawSql raw = sql.Raw("SELECT * FROM person");

            QueryResult result = engine.Compile(raw);

            Assert.Equal("SELECT * FROM person", result.Sql);
            Assert.Equal(new Dictionary <string, object>(), result.Parameters);
        }
Example #5
0
        public void Raw_Format_Only_Index()
        {
            IAlias  person = sql.Alias("person");
            IRawSql raw    = sql.Raw("{0}", person["Name"], person);

            QueryResult result = engine.Compile(raw);

            Assert.Equal("\"person\".\"Name\"", result.Sql);
            Assert.Equal(new Dictionary <string, object>(), result.Parameters);
        }
Example #6
0
        public void Raw_Format_Escape_Multiple()
        {
            IAlias  person = sql.Alias("person");
            IRawSql raw    = sql.Raw("SELECT '{{{{Some text}}}}', {0} FROM {1}", person["Name"], person);

            QueryResult result = engine.Compile(raw);

            Assert.Equal("SELECT '{{Some text}}', \"person\".\"Name\" FROM \"person\"", result.Sql);
            Assert.Equal(new Dictionary <string, object>(), result.Parameters);
        }
Example #7
0
        public void Null_Value()
        {
            string  value = null;
            IRawSql raw   = sql.Raw("{0}", value);

            QueryResult result = engine.Compile(raw);

            Assert.Equal("NULL", result.Sql);
            Assert.Equal(new Dictionary <string, object>(), result.Parameters);
        }
Example #8
0
        public void Raw_Format_Escape_Start_End()
        {
            IAlias  person = sql.Alias("person");
            IRawSql raw    = sql.Raw("{{Some text}}", person["Name"], person);

            QueryResult result = engine.Compile(raw);

            Assert.Equal("{Some text}", result.Sql);
            Assert.Equal(new Dictionary <string, object>(), result.Parameters);
        }
Example #9
0
        public void From_Dummy_Value()
        {
            engine.Options.FromDummyName = "DUAL";

            IRawSql from = sql.FromDummy;

            QueryResult result = engine.Compile(from);

            Assert.Equal("FROM DUAL", result.Sql);
        }
Example #10
0
        public void String_Value_Expression_Inline()
        {
            IRawSql raw = sql.Raw("{0}", sql.Val(() => "abcd"));

            QueryResult result = engine.Compile(raw);

            Assert.Equal("@p0", result.Sql);
            Assert.Equal(new Dictionary <string, object>
            {
                ["@p0"] = "abcd"
            }, result.Parameters);
        }
Example #11
0
        public void Array_Value_Expression_Inline()
        {
            IRawSql raw = sql.Raw("{0}", sql.Val(() => new byte[] { 1, 2, 3 }));

            QueryResult result = engine.Compile(raw);

            Assert.Equal("@p0", result.Sql);
            Assert.Equal(new Dictionary <string, object>
            {
                ["@p0"] = new byte[] { 1, 2, 3 }
            }, result.Parameters);
        }
Example #12
0
        public void DateTime_Value_Expression_Inline()
        {
            IRawSql raw = sql.Raw("{0}", sql.Val(() => new DateTime(2000, 1, 1)));

            QueryResult result = engine.Compile(raw);

            Assert.Equal("@p0", result.Sql);
            Assert.Equal(new Dictionary <string, object>
            {
                ["@p0"] = new DateTime(2000, 1, 1)
            }, result.Parameters);
        }
Example #13
0
        public void List_Value <T>(List <T> value)
        {
            IRawSql raw = sql.Raw("{0}", value);

            QueryResult result = engine.Compile(raw);

            Assert.Equal("@p0", result.Sql);
            Assert.Equal(new Dictionary <string, object>
            {
                ["@p0"] = value
            }, result.Parameters);
        }
Example #14
0
        public void Int32_Value()
        {
            int     value = 1;
            IRawSql raw   = sql.Raw("{0}", value);

            QueryResult result = engine.Compile(raw);

            Assert.Equal("@p0", result.Sql);
            Assert.Equal(new Dictionary <string, object>
            {
                ["@p0"] = value
            }, result.Parameters);
        }
Example #15
0
        public void DateTime_Value_Expression()
        {
            DateTime value = DateTime.Now;
            IRawSql  raw   = sql.Raw("{0}", sql.Val(() => value));

            QueryResult result = engine.Compile(raw);

            Assert.Equal("@p0", result.Sql);
            Assert.Equal(new Dictionary <string, object>
            {
                ["@p0"] = value
            }, result.Parameters);
        }
Example #16
0
        public void Array_Value()
        {
            byte[]  values = new byte[] { 1, 2, 3 };
            IRawSql raw    = sql.Raw("{0}", values);

            QueryResult result = engine.Compile(raw);

            Assert.Equal("@p0", result.Sql);
            Assert.Equal(new Dictionary <string, object>
            {
                ["@p0"] = values
            }, result.Parameters);
        }
Example #17
0
        public void Raw_Format()
        {
            IAlias  person = sql.Alias("person");
            IRawSql raw    = sql.Raw("SELECT {0}, {1} FROM {2}", person["Name"], "Some text", person);

            QueryResult result = engine.Compile(raw);

            Assert.Equal("SELECT \"person\".\"Name\", @p0 FROM \"person\"", result.Sql);
            Assert.Equal(new Dictionary <string, object>
            {
                ["@p0"] = "Some text"
            }, result.Parameters);
        }
Example #18
0
        public void Parameter_Prefix_Custom()
        {
            engine.Options.ParameterPrefix = ":i";

            IRawSql raw = sql.Raw("{0}", 1);

            QueryResult result = engine.Compile(raw);

            Assert.Equal(":i0", result.Sql);
            Assert.Equal(new Dictionary <string, object>
            {
                [":i0"] = 1
            }, result.Parameters);
        }
Example #19
0
        public void Parameters_List()
        {
            engine.Options.ParameterPrefix = "?";
            engine.Options.ParameterIndex  = false;

            IRawSql raw = sql.Raw("{0}, {1}, {2}, {3}, {4}", 1, 2, null, 4, 5);

            QueryResult result = engine.Compile(raw);

            Assert.Equal("?, ?, NULL, ?, ?", result.Sql);
            Assert.Equal(new List <object> {
                1, 2, 4, 5
            }, result.ParametersList);
            Assert.Null(result.Parameters);
        }
Example #20
0
        public void Parameters()
        {
            IRawSql raw = sql.Raw("{0}, {1}, {2}, {3}, {4}", 1, 2, null, 4, 5);

            QueryResult result = engine.Compile(raw);

            Assert.Equal("@p0, @p1, NULL, @p2, @p3", result.Sql);
            Assert.Equal(new Dictionary <string, object>
            {
                ["@p0"] = 1,
                ["@p1"] = 2,
                ["@p2"] = 4,
                ["@p3"] = 5
            }, result.Parameters);
            Assert.Null(result.ParametersList);
        }
Example #21
0
 /// <summary>
 /// Adds a raw "top" clause.
 /// <para>You must write the entire clause.</para>
 /// </summary>
 /// <param name="top">The "top" clause.</param>
 /// <returns>The "update" statement.</returns>
 public virtual IUpdate Top(IRawSql top)
 {
     TopValue = top;
     return(this);
 }
Example #22
0
        public void From_Dummy_To_String()
        {
            IRawSql from = sql.FromDummy;

            Assert.Equal("FROM dummy_table", from.ToString());
        }
Example #23
0
 /// <summary>
 /// Adds a "partition by" clause.
 /// </summary>
 /// <param name="partitionBy">The "partition by" value.</param>
 /// <returns>The "over" clause.</returns>
 public virtual IOver PartitionBy(IRawSql partitionBy)
 {
     PartitionByValue = partitionBy;
     return(this);
 }
Example #24
0
 /// <summary>
 /// Adds a "order by" clause.
 /// </summary>
 /// <param name="orderBy">The "order by" value.</param>
 /// <returns>The "over" clause.</returns>
 public virtual IOver OrderBy(IRawSql orderBy)
 {
     OrderByValue = orderBy;
     return(this);
 }
Example #25
0
 /// <summary>
 /// Sets a raw "offset" clause.
 /// <para>You must write the entire clause.</para>
 /// </summary>
 /// <param name="offset">The "offset" clause.</param>
 /// <returns>The raw query.</returns>
 public virtual IRawQuery Offset(IRawSql offset)
 {
     OffsetValue = offset;
     return(this);
 }