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()); }
public void From_Dummy_Empty() { IRawSql from = sql.FromDummy; QueryResult result = engine.Compile(from); Assert.Equal("", result.Sql); }
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); }
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); }
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); }
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); }
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); }
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); }
public void From_Dummy_Value() { engine.Options.FromDummyName = "DUAL"; IRawSql from = sql.FromDummy; QueryResult result = engine.Compile(from); Assert.Equal("FROM DUAL", result.Sql); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
/// <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); }
public void From_Dummy_To_String() { IRawSql from = sql.FromDummy; Assert.Equal("FROM dummy_table", from.ToString()); }
/// <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); }
/// <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); }
/// <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); }