139 lines
3.9 KiB
C#
139 lines
3.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using XCode.DataAccessLayer;
|
|
using XCode.Membership;
|
|
using Xunit;
|
|
|
|
namespace XUnitTest.XCode.Model
|
|
{
|
|
public class FieldLikeTests
|
|
{
|
|
private IDatabase _dbUser;
|
|
private IDatabase _dbLog;
|
|
public FieldLikeTests()
|
|
{
|
|
_dbUser = User.Meta.Session.Dal.Db;
|
|
_dbLog = Log.Meta.Session.Dal.Db;
|
|
}
|
|
|
|
[Fact]
|
|
public void Contains()
|
|
{
|
|
var fi = User._.Name;
|
|
var exp = fi.Contains("dmi");
|
|
var where = exp.GetString(_dbUser, null);
|
|
Assert.Equal("Name Like '%dmi%'", where);
|
|
|
|
Assert.Equal("Name Like '%dmi%'", exp);
|
|
}
|
|
|
|
[Fact]
|
|
public void ContainsWithParameter()
|
|
{
|
|
var fi = User._.Name;
|
|
var exp = fi.Contains("dmi");
|
|
var ps = new Dictionary<String, Object>();
|
|
var where = exp.GetString(_dbUser, ps);
|
|
Assert.Equal("Name Like '%@Name%'", where);
|
|
|
|
Assert.Equal("Name Like '%dmi%'", exp);
|
|
|
|
Assert.Single(ps);
|
|
Assert.True(ps.ContainsKey("Name"));
|
|
Assert.Equal("dmi", ps["Name"]);
|
|
}
|
|
|
|
[Fact]
|
|
public void NotContains()
|
|
{
|
|
var fi = User._.Name;
|
|
var exp = fi.NotContains("dmi");
|
|
var where = exp.GetString(_dbUser, null);
|
|
Assert.Equal("Name Not Like '%dmi%'", where);
|
|
|
|
Assert.Equal("Name Not Like '%dmi%'", exp);
|
|
}
|
|
|
|
[Fact]
|
|
public void NotContainsWithParameter()
|
|
{
|
|
var fi = User._.Name;
|
|
var exp = fi.NotContains("dmi");
|
|
var ps = new Dictionary<String, Object>();
|
|
var where = exp.GetString(_dbUser, ps);
|
|
Assert.Equal("Name Not Like '%@Name%'", where);
|
|
|
|
Assert.Equal("Name Not Like '%dmi%'", exp);
|
|
|
|
Assert.Single(ps);
|
|
Assert.True(ps.ContainsKey("Name"));
|
|
Assert.Equal("dmi", ps["Name"]);
|
|
}
|
|
|
|
[Fact]
|
|
public void StartsWith()
|
|
{
|
|
var fi = User._.Name;
|
|
var exp = fi.StartsWith("dmi");
|
|
var where = exp.GetString(_dbUser, null);
|
|
Assert.Equal("Name Like 'dmi%'", where);
|
|
|
|
Assert.Equal("Name Like 'dmi%'", exp);
|
|
}
|
|
|
|
[Fact]
|
|
public void StartsWithWithParameter()
|
|
{
|
|
var fi = User._.Name;
|
|
var exp = fi.StartsWith("dmi");
|
|
var ps = new Dictionary<String, Object>();
|
|
var where = exp.GetString(_dbUser, ps);
|
|
Assert.Equal("Name Like '@Name%'", where);
|
|
|
|
Assert.Equal("Name Like 'dmi%'", exp);
|
|
|
|
Assert.Single(ps);
|
|
Assert.True(ps.ContainsKey("Name"));
|
|
Assert.Equal("dmi", ps["Name"]);
|
|
}
|
|
|
|
[Fact]
|
|
public void StartsWithEscape()
|
|
{
|
|
var fi = User._.Name;
|
|
var exp = fi.StartsWith("dmi/'[]()%&_end");
|
|
var where = exp.GetString(_dbUser, null);
|
|
Assert.Equal("Name Like 'dmi/''[]()\\%&\\_end%'", where);
|
|
|
|
Assert.Equal("Name Like 'dmi/''[]()\\%&\\_end%'", exp);
|
|
}
|
|
|
|
[Fact]
|
|
public void EndsWith()
|
|
{
|
|
var fi = User._.Name;
|
|
var exp = fi.EndsWith("dmi");
|
|
var where = exp.GetString(_dbUser, null);
|
|
Assert.Equal("Name Like '%dmi'", where);
|
|
|
|
Assert.Equal("Name Like '%dmi'", exp);
|
|
}
|
|
|
|
[Fact]
|
|
public void EndsWithWithParameter()
|
|
{
|
|
var fi = User._.Name;
|
|
var exp = fi.EndsWith("dmi");
|
|
var ps = new Dictionary<String, Object>();
|
|
var where = exp.GetString(_dbUser, ps);
|
|
Assert.Equal("Name Like '%@Name'", where);
|
|
|
|
Assert.Equal("Name Like '%dmi'", exp);
|
|
|
|
Assert.Single(ps);
|
|
Assert.True(ps.ContainsKey("Name"));
|
|
Assert.Equal("dmi", ps["Name"]);
|
|
}
|
|
}
|
|
} |