mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 04:18:16 +08:00
add \0 string test
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
using FreeSql.DataAnnotations;
|
||||
using FreeSql.DataAnnotations;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@ -11,12 +11,32 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
{
|
||||
public class MySqlCodeFirstTest
|
||||
{
|
||||
[Fact]
|
||||
public void Test_0String()
|
||||
{
|
||||
var fsql = g.mysql;
|
||||
fsql.Delete<test_0string01>().Where("1=1").ExecuteAffrows();
|
||||
|
||||
Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows());
|
||||
Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows());
|
||||
|
||||
var list = fsql.Select<test_0string01>().ToList();
|
||||
Assert.Equal(2, list.Count);
|
||||
Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name);
|
||||
Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name);
|
||||
}
|
||||
class test_0string01
|
||||
{
|
||||
public Guid id { get; set; }
|
||||
public string name { get; set; }
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void InsertUpdateParameter()
|
||||
{
|
||||
var fsql = g.mysql;
|
||||
fsql.CodeFirst.SyncStructure<ts_iupstr_bak>();
|
||||
var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>")) };
|
||||
var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "我是中国人")) };
|
||||
Assert.Equal(1, fsql.Insert(item).ExecuteAffrows());
|
||||
var find = fsql.Select<ts_iupstr>().Where(a => a.id == item.id).First();
|
||||
Assert.NotNull(find);
|
||||
@ -126,7 +146,7 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
[Fact]
|
||||
public void Text_StringLength_1()
|
||||
{
|
||||
var str1 = string.Join(",", Enumerable.Range(0, 1000).Select(a => "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>"));
|
||||
var str1 = string.Join(",", Enumerable.Range(0, 1000).Select(a => "我是中国人"));
|
||||
|
||||
var item1 = new TS_TEXT02 { Data = str1 };
|
||||
Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows());
|
||||
@ -148,7 +168,7 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
[Fact]
|
||||
public void Text()
|
||||
{
|
||||
var str1 = string.Join(",", Enumerable.Range(0, 1000).Select(a => "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>"));
|
||||
var str1 = string.Join(",", Enumerable.Range(0, 1000).Select(a => "我是中国人"));
|
||||
|
||||
var item1 = new TS_TEXT01 { Data = str1 };
|
||||
Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows());
|
||||
@ -170,7 +190,7 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
[Fact]
|
||||
public void Text_StringLength_2()
|
||||
{
|
||||
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>"));
|
||||
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人"));
|
||||
|
||||
var item1 = new TS_TEXT04 { Data = str1 };
|
||||
Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows());
|
||||
@ -192,7 +212,7 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
[Fact]
|
||||
public void LongText()
|
||||
{
|
||||
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>"));
|
||||
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人"));
|
||||
|
||||
var item1 = new TS_TEXT03 { Data = str1 };
|
||||
Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows());
|
||||
@ -214,7 +234,7 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
[Fact]
|
||||
public void Blob()
|
||||
{
|
||||
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>"));
|
||||
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人"));
|
||||
var data1 = Encoding.UTF8.GetBytes(str1);
|
||||
|
||||
var item1 = new TS_BLB01 { Data = data1 };
|
||||
@ -260,7 +280,7 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>()
|
||||
public void 表名中有点()
|
||||
{
|
||||
var item = new tbdot01 { name = "insert" };
|
||||
g.mysql.Insert(item).ExecuteAffrows();
|
||||
@ -288,61 +308,61 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void <EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>_<EFBFBD>ֶ<EFBFBD>()
|
||||
public void 中文表_字段()
|
||||
{
|
||||
var sql = g.mysql.CodeFirst.GetComparisonDDLStatements<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>2>();
|
||||
g.mysql.CodeFirst.SyncStructure<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>2>();
|
||||
var sql = g.mysql.CodeFirst.GetComparisonDDLStatements<测试中文表2>();
|
||||
g.mysql.CodeFirst.SyncStructure<测试中文表2>();
|
||||
|
||||
var item = new <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>2
|
||||
var item = new 测试中文表2
|
||||
{
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = "<EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD>",
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> = DateTime.Now
|
||||
标题 = "测试标题",
|
||||
创建时间 = DateTime.Now
|
||||
};
|
||||
Assert.Equal(1, g.mysql.Insert<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>2>().AppendData(item).ExecuteAffrows());
|
||||
Assert.NotEqual(Guid.Empty, item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
|
||||
var item2 = g.mysql.Select<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>2>().Where(a => a.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> == item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>).First();
|
||||
Assert.Equal(1, g.mysql.Insert<测试中文表2>().AppendData(item).ExecuteAffrows());
|
||||
Assert.NotEqual(Guid.Empty, item.编号);
|
||||
var item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First();
|
||||
Assert.NotNull(item2);
|
||||
Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
|
||||
Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
|
||||
Assert.Equal(item.编号, item2.编号);
|
||||
Assert.Equal(item.标题, item2.标题);
|
||||
|
||||
g.mysql.Update<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>2>().SetSource(item2).ExecuteAffrows();
|
||||
g.mysql.Update<测试中文表2>().SetSource(item2).ExecuteAffrows();
|
||||
|
||||
|
||||
|
||||
item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = "<EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
Assert.Equal(1, g.mysql.Update<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>2>().SetSource(item).ExecuteAffrows());
|
||||
item2 = g.mysql.Select<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>2>().Where(a => a.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> == item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>).First();
|
||||
item.标题 = "测试标题更新";
|
||||
Assert.Equal(1, g.mysql.Update<测试中文表2>().SetSource(item).ExecuteAffrows());
|
||||
item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First();
|
||||
Assert.NotNull(item2);
|
||||
Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
|
||||
Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
|
||||
Assert.Equal(item.编号, item2.编号);
|
||||
Assert.Equal(item.标题, item2.标题);
|
||||
|
||||
item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = "<EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_repo";
|
||||
var repo = g.mysql.GetRepository<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>2>();
|
||||
item.标题 = "测试标题更新_repo";
|
||||
var repo = g.mysql.GetRepository<测试中文表2>();
|
||||
Assert.Equal(1, repo.Update(item));
|
||||
item2 = g.mysql.Select<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>2>().Where(a => a.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> == item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>).First();
|
||||
item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First();
|
||||
Assert.NotNull(item2);
|
||||
Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
|
||||
Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
|
||||
Assert.Equal(item.编号, item2.编号);
|
||||
Assert.Equal(item.标题, item2.标题);
|
||||
|
||||
item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = "<EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_repo22";
|
||||
item.标题 = "测试标题更新_repo22";
|
||||
Assert.Equal(1, repo.Update(item));
|
||||
item2 = g.mysql.Select<<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>2>().Where(a => a.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> == item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>).First();
|
||||
item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First();
|
||||
Assert.NotNull(item2);
|
||||
Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
|
||||
Assert.Equal(item.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, item2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
|
||||
Assert.Equal(item.编号, item2.编号);
|
||||
Assert.Equal(item.标题, item2.标题);
|
||||
}
|
||||
class <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>2
|
||||
class 测试中文表2
|
||||
{
|
||||
[Column(IsPrimary = true)]
|
||||
public Guid <EFBFBD><EFBFBD><EFBFBD><EFBFBD> { get; set; }
|
||||
public Guid 编号 { get; set; }
|
||||
|
||||
public string <EFBFBD><EFBFBD><EFBFBD><EFBFBD> { get; set; }
|
||||
public string 标题 { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local, CanUpdate = false)]
|
||||
public DateTime <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> { get; set; }
|
||||
public DateTime 创建时间 { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> { get; set; }
|
||||
public DateTime 更新时间 { get; set; }
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@ -394,7 +414,7 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
{
|
||||
|
||||
var sql = g.mysql.CodeFirst.GetComparisonDDLStatements<TableAllType>();
|
||||
Assert.True(string.IsNullOrEmpty(sql)); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>
|
||||
Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后
|
||||
sql = g.mysql.CodeFirst.GetComparisonDDLStatements<Tb_alltype>();
|
||||
}
|
||||
|
||||
@ -415,7 +435,7 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
testFieldBoolNullable = true,
|
||||
testFieldByte = 255,
|
||||
testFieldByteNullable = 127,
|
||||
testFieldBytes = Encoding.UTF8.GetBytes("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>"),
|
||||
testFieldBytes = Encoding.UTF8.GetBytes("我是中国人"),
|
||||
testFieldDateTime = DateTime.Now,
|
||||
testFieldDateTimeNullable = DateTime.Now.AddHours(-1),
|
||||
testFieldDecimal = 99.99M,
|
||||
@ -459,7 +479,7 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
testFieldSByteNullable = 99,
|
||||
testFieldShort = short.MaxValue,
|
||||
testFieldShortNullable = short.MinValue,
|
||||
testFieldString = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD>string'\\?!@#$%^&*()_+{}}{~?><<>",
|
||||
testFieldString = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>",
|
||||
testFieldChar = 'X',
|
||||
testFieldTimeSpan = TimeSpan.FromSeconds(999),
|
||||
testFieldTimeSpanNullable = TimeSpan.FromSeconds(60),
|
||||
@ -675,7 +695,7 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Update<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Insert
|
||||
/// 保存或添加,如果主键有值则尝试 Update,如果影响的行为 0 则尝试 Insert
|
||||
/// </summary>
|
||||
public void Save()
|
||||
{
|
||||
|
Reference in New Issue
Block a user