2017-01-28 21:56:15 +08:00
|
|
|
|
using OrmTest.Models;
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Linq.Expressions;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
2017-03-04 15:07:58 +08:00
|
|
|
|
namespace OrmTest.UnitTest
|
2017-01-28 21:56:15 +08:00
|
|
|
|
{
|
|
|
|
|
public class Method : ExpTestBase
|
|
|
|
|
{
|
|
|
|
|
private Method() { }
|
|
|
|
|
public Method(int eachCount)
|
|
|
|
|
{
|
|
|
|
|
this.Count = eachCount;
|
|
|
|
|
}
|
|
|
|
|
internal void Init()
|
|
|
|
|
{
|
|
|
|
|
base.Begin();
|
|
|
|
|
for (int i = 0; i < base.Count; i++)
|
|
|
|
|
{
|
2017-01-30 18:53:06 +08:00
|
|
|
|
#region StringIsNullOrEmpty
|
2017-01-30 15:10:54 +08:00
|
|
|
|
StringIsNullOrEmpty();
|
2017-01-30 15:41:16 +08:00
|
|
|
|
StringIsNullOrEmpty2();
|
2017-01-30 16:42:33 +08:00
|
|
|
|
StringIsNullOrEmpty3();
|
2017-01-30 18:17:55 +08:00
|
|
|
|
StringIsNullOrEmpty4();
|
2017-01-30 18:53:06 +08:00
|
|
|
|
ToUpper();
|
2017-01-30 21:54:23 +08:00
|
|
|
|
ToLower();
|
2017-01-30 22:05:08 +08:00
|
|
|
|
Trim();
|
2017-01-31 20:39:57 +08:00
|
|
|
|
Contains();
|
2017-04-29 22:51:41 +08:00
|
|
|
|
Between();
|
|
|
|
|
Equals();
|
|
|
|
|
Equals_2();
|
|
|
|
|
DateIsSameByDay();
|
|
|
|
|
DateIsSameByType();
|
|
|
|
|
DateAddDay();
|
|
|
|
|
DateAddByType();
|
2017-01-30 18:53:06 +08:00
|
|
|
|
#endregion
|
2017-01-28 21:56:15 +08:00
|
|
|
|
}
|
|
|
|
|
base.End("Method Test");
|
|
|
|
|
}
|
2017-01-31 20:39:57 +08:00
|
|
|
|
|
2017-04-29 22:51:41 +08:00
|
|
|
|
private void Between()
|
|
|
|
|
{
|
|
|
|
|
//throw new NotImplementedException();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void DateAddByType()
|
|
|
|
|
{
|
|
|
|
|
var x2 = DateTime.Now;
|
|
|
|
|
Expression<Func<Student, bool>> exp = it => NBORM.DateAdd(x2, 11, DateType.Millisecond);
|
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
|
|
|
|
base.Check(value, pars, " (DATEADD(@MethodConst2,@MethodConst1,@MethodConst0)) ", new List<SugarParameter>() {
|
|
|
|
|
new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",11),
|
|
|
|
|
new SugarParameter("@MethodConst2",DateType.Millisecond)
|
|
|
|
|
}, "DateAddByType");
|
|
|
|
|
}
|
|
|
|
|
private void DateAddDay()
|
|
|
|
|
{
|
|
|
|
|
var x2 = DateTime.Now;
|
|
|
|
|
Expression<Func<Student, bool>> exp = it => NBORM.DateAdd(x2, 1);
|
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
|
|
|
|
base.Check(value, pars, " (DATEADD(day,@MethodConst1,@MethodConst0)) ", new List<SugarParameter>() {
|
|
|
|
|
new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",1)
|
|
|
|
|
}, "DateIsSameByType");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void DateIsSameByType()
|
|
|
|
|
{
|
|
|
|
|
var x2 = DateTime.Now;
|
|
|
|
|
Expression<Func<Student, bool>> exp = it => NBORM.DateIsSame(x2,x2, DateType.Millisecond);
|
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
|
|
|
|
base.Check(value, pars, " (DATEDIFF(@MethodConst2,@MethodConst0,@MethodConst1)=0) ", new List<SugarParameter>() {
|
|
|
|
|
new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",x2),
|
|
|
|
|
new SugarParameter("@MethodConst2",DateType.Millisecond)
|
|
|
|
|
}, "DateIsSameByType");
|
|
|
|
|
}
|
|
|
|
|
private void DateIsSameByDay()
|
|
|
|
|
{
|
|
|
|
|
var x2 = DateTime.Now;
|
|
|
|
|
Expression<Func<Student, bool>> exp = it => NBORM.DateIsSame(x2,x2);
|
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
|
|
|
|
base.Check(value, pars, "(DATEDIFF(day,@MethodConst0,@MethodConst1)=0) ", new List<SugarParameter>() {
|
|
|
|
|
new SugarParameter("@MethodConst0",x2),new SugarParameter("@MethodConst1",x2)
|
|
|
|
|
}, "DateIsSameDay");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Equals()
|
|
|
|
|
{
|
|
|
|
|
Expression<Func<Student, bool>> exp = it => NBORM.Equals(it.Name, "a");
|
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
|
|
|
|
base.Check(value, pars, " ([Name] = @MethodConst0) ", new List<SugarParameter>() {
|
|
|
|
|
new SugarParameter("@MethodConst0","a")
|
|
|
|
|
}, "Equals1");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Expression<Func<Student, bool>> exp2 = it => NBORM.Equals("a",it.Name);
|
|
|
|
|
SqlServerExpressionContext expContext2 = new SqlServerExpressionContext();
|
|
|
|
|
expContext2.Resolve(exp2, ResolveExpressType.WhereSingle);
|
|
|
|
|
var value2 = expContext2.Result.GetString();
|
|
|
|
|
var pars2 = expContext2.Parameters;
|
|
|
|
|
base.Check(value2, pars2, " (@MethodConst0 = [Name]) ", new List<SugarParameter>() {
|
|
|
|
|
new SugarParameter("@MethodConst0","a")
|
|
|
|
|
}, "Equals2");
|
|
|
|
|
}
|
|
|
|
|
private void Equals_2()
|
|
|
|
|
{
|
|
|
|
|
Expression<Func<Student, bool>> exp = it => NBORM.Equals(it.Name, it.Name);
|
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
|
|
|
|
base.Check(value, pars, " ([Name] = [Name]) ", new List<SugarParameter>() {
|
|
|
|
|
new SugarParameter("@MethodConst0","a")
|
|
|
|
|
}, "Equals1");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Expression<Func<Student, bool>> exp2 = it => NBORM.Equals("a", "a2");
|
|
|
|
|
SqlServerExpressionContext expContext2 = new SqlServerExpressionContext();
|
|
|
|
|
expContext2.Resolve(exp2, ResolveExpressType.WhereSingle);
|
|
|
|
|
var value2 = expContext2.Result.GetString();
|
|
|
|
|
var pars2 = expContext2.Parameters;
|
|
|
|
|
base.Check(value2, pars2, " (@MethodConst0 = @MethodConst1) ", new List<SugarParameter>() {
|
|
|
|
|
new SugarParameter("@MethodConst0","a"),new SugarParameter("@MethodConst1","a2")
|
|
|
|
|
}, "Equals2");
|
|
|
|
|
}
|
|
|
|
|
|
2017-01-31 20:39:57 +08:00
|
|
|
|
private void Contains()
|
|
|
|
|
{
|
|
|
|
|
Expression<Func<Student, bool>> exp = it => NBORM.Contains(it.Name,"a");
|
2017-02-26 23:56:28 +08:00
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
2017-01-31 20:39:57 +08:00
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
2017-03-13 10:55:22 +08:00
|
|
|
|
base.Check(value, pars, " ([Name] like '%'+@MethodConst0+'%') ", new List<SugarParameter>() {
|
2017-01-31 21:23:01 +08:00
|
|
|
|
new SugarParameter("@MethodConst0","a")
|
2017-01-31 20:39:57 +08:00
|
|
|
|
}, "Contains");
|
|
|
|
|
}
|
|
|
|
|
|
2017-01-30 22:05:08 +08:00
|
|
|
|
private void Trim()
|
|
|
|
|
{
|
|
|
|
|
Expression<Func<Student, bool>> exp = it =>NBORM.Trim(" a")==it.Name;
|
2017-02-26 23:56:28 +08:00
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
2017-01-30 22:05:08 +08:00
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
2017-04-29 21:17:57 +08:00
|
|
|
|
base.Check(value, pars, "((rtrim(ltrim(@MethodConst0))) = [Name] )", new List<SugarParameter>() {
|
2017-01-31 20:26:38 +08:00
|
|
|
|
new SugarParameter("@MethodConst0"," a")
|
|
|
|
|
}, "Trim");
|
2017-01-30 22:05:08 +08:00
|
|
|
|
}
|
2017-01-30 18:53:06 +08:00
|
|
|
|
|
|
|
|
|
private void ToUpper()
|
2017-01-30 15:10:54 +08:00
|
|
|
|
{
|
2017-01-30 21:54:23 +08:00
|
|
|
|
Expression<Func<Student, bool>> exp = it =>"a"== NBORM.ToUpper(it.Id) ;
|
2017-02-26 23:56:28 +08:00
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
2017-01-30 15:10:54 +08:00
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
2017-04-29 21:17:57 +08:00
|
|
|
|
base.Check(value, pars, "( @Const0 = (UPPER([Id])) )", new List<SugarParameter>() {
|
2017-01-30 21:54:23 +08:00
|
|
|
|
new SugarParameter("@Const0","a")
|
2017-01-30 18:55:50 +08:00
|
|
|
|
}, "ToUpper");
|
2017-01-30 15:41:16 +08:00
|
|
|
|
}
|
2017-01-30 21:54:23 +08:00
|
|
|
|
private void ToLower()
|
|
|
|
|
{
|
|
|
|
|
Expression<Func<Student, bool>> exp = it => "a" == NBORM.ToLower(it.Id);
|
2017-02-26 23:56:28 +08:00
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
2017-01-30 21:54:23 +08:00
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
2017-04-29 21:17:57 +08:00
|
|
|
|
base.Check(value, pars, "( @Const0 = (LOWER([Id])) )", new List<SugarParameter>() {
|
2017-01-30 21:54:23 +08:00
|
|
|
|
new SugarParameter("@Const0","a")
|
|
|
|
|
}, "ToLower");
|
|
|
|
|
}
|
2017-01-30 15:41:16 +08:00
|
|
|
|
|
2017-01-30 18:53:06 +08:00
|
|
|
|
#region StringIsNullOrEmpty
|
|
|
|
|
private void StringIsNullOrEmpty()
|
|
|
|
|
{
|
|
|
|
|
Expression<Func<Student, bool>> exp = it => it.Id > 2 || NBORM.IsNullOrEmpty(it.Id); ;
|
2017-02-26 23:56:28 +08:00
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
2017-01-30 18:53:06 +08:00
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
2017-04-29 21:17:57 +08:00
|
|
|
|
base.Check(value, pars, "(( [Id] > @Id0 ) OR ( [Id]='' OR [Id] IS NULL ))", new List<SugarParameter>() {
|
2017-01-30 18:53:06 +08:00
|
|
|
|
new SugarParameter("@Id0",2)
|
|
|
|
|
}, "StringIsNullOrEmpty");
|
|
|
|
|
}
|
2017-01-30 15:41:16 +08:00
|
|
|
|
private void StringIsNullOrEmpty2()
|
|
|
|
|
{
|
2017-01-30 18:53:06 +08:00
|
|
|
|
Expression<Func<Student, bool>> exp = it => 2 == it.Id || NBORM.IsNullOrEmpty(true); ;
|
2017-02-26 23:56:28 +08:00
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
2017-01-30 15:41:16 +08:00
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
2017-04-29 21:17:57 +08:00
|
|
|
|
base.Check(value, pars, "(( @Id0 = [Id] ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))", new List<SugarParameter>() {
|
2017-01-30 21:54:23 +08:00
|
|
|
|
new SugarParameter("@MethodConst1",true),
|
2017-01-30 15:41:16 +08:00
|
|
|
|
new SugarParameter("@Id0",2)
|
|
|
|
|
}, "StringIsNullOrEmpty2");
|
2017-01-30 15:10:54 +08:00
|
|
|
|
}
|
2017-01-30 16:42:33 +08:00
|
|
|
|
private void StringIsNullOrEmpty3()
|
|
|
|
|
{
|
|
|
|
|
int a = 1;
|
|
|
|
|
Expression<Func<Student, bool>> exp = it => 2 == it.Id || NBORM.IsNullOrEmpty(a); ;
|
2017-02-26 23:56:28 +08:00
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
2017-01-30 16:42:33 +08:00
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
2017-04-29 21:17:57 +08:00
|
|
|
|
base.Check(value, pars, "(( @Id0 = [Id] ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))", new List<SugarParameter>() {
|
2017-01-30 21:54:23 +08:00
|
|
|
|
new SugarParameter("@MethodConst1",1),
|
2017-01-30 16:42:33 +08:00
|
|
|
|
new SugarParameter("@Id0",2)
|
|
|
|
|
}, "StringIsNullOrEmpty3");
|
|
|
|
|
}
|
2017-01-30 18:17:55 +08:00
|
|
|
|
private void StringIsNullOrEmpty4()
|
|
|
|
|
{
|
|
|
|
|
WhereConst.name = "xx";
|
|
|
|
|
Expression<Func<Student, bool>> exp = it => 2 == it.Id || NBORM.IsNullOrEmpty(WhereConst.name); ;
|
2017-02-26 23:56:28 +08:00
|
|
|
|
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
|
|
|
|
|
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
|
2017-01-30 18:17:55 +08:00
|
|
|
|
var value = expContext.Result.GetString();
|
|
|
|
|
var pars = expContext.Parameters;
|
2017-04-29 21:17:57 +08:00
|
|
|
|
base.Check(value, pars, "(( @Id0 = [Id] ) OR ( @MethodConst1='' OR @MethodConst1 IS NULL ))", new List<SugarParameter>() {
|
2017-01-30 21:54:23 +08:00
|
|
|
|
new SugarParameter("@MethodConst1","xx"),
|
2017-01-30 18:17:55 +08:00
|
|
|
|
new SugarParameter("@Id0",2)
|
|
|
|
|
}, "StringIsNullOrEmpty4");
|
2017-01-30 18:53:06 +08:00
|
|
|
|
}
|
|
|
|
|
#endregion
|
2017-01-28 21:56:15 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2017-01-30 15:41:16 +08:00
|
|
|
|
|