From 4e832ed48494f4864e3e1cd75a2ddf789d6a421a Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 4 Oct 2022 23:20:18 +0800 Subject: [PATCH] Add unit test --- .../SqlServerTest/SqlServerTest.csproj | 3 + .../SqlServerTest/UnitTest/CrossDatabase01.cs | 14 +++ .../SqlServerTest/UnitTest/CrossDatabase02.cs | 118 ++++++++++++++++++ .../SqlServerTest/UnitTest/CrossDatabase03.cs | 88 +++++++++++++ Src/Asp.Net/SqlServerTest/UnitTest/Main.cs | 3 + 5 files changed, 226 insertions(+) create mode 100644 Src/Asp.Net/SqlServerTest/UnitTest/CrossDatabase01.cs create mode 100644 Src/Asp.Net/SqlServerTest/UnitTest/CrossDatabase02.cs create mode 100644 Src/Asp.Net/SqlServerTest/UnitTest/CrossDatabase03.cs diff --git a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj index 944790b7d..b812aea55 100644 --- a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj +++ b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj @@ -97,6 +97,9 @@ + + + diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/CrossDatabase01.cs b/Src/Asp.Net/SqlServerTest/UnitTest/CrossDatabase01.cs new file mode 100644 index 000000000..3e4c1f9d4 --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/CrossDatabase01.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OrmTest +{ + public class CrossDatabase01 + { + public static void Init() + { + + } + } +} diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/CrossDatabase02.cs b/Src/Asp.Net/SqlServerTest/UnitTest/CrossDatabase02.cs new file mode 100644 index 000000000..1ae85a6b5 --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/CrossDatabase02.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using SqlSugar; +namespace OrmTest +{ + public class CrossDatabase02 + { + public static void Init() + { + + var db = new SqlSugarClient(new List() + { + new ConnectionConfig(){ConfigId="A",DbType=DbType.SqlServer,ConnectionString="server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST",IsAutoCloseConnection=true}, + new ConnectionConfig(){ConfigId="B",DbType=DbType.SqlServer,ConnectionString="server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST2",IsAutoCloseConnection=true }, + new ConnectionConfig(){ConfigId="AB",DbType=DbType.SqlServer,ConnectionString="server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST3",IsAutoCloseConnection=true } + }); + + db.GetConnection("A").CodeFirst.InitTables(); + db.GetConnection("B").CodeFirst.InitTables(); + db.GetConnection("AB").CodeFirst.InitTables(); + + db.GetConnection("A").DbMaintenance.TruncateTable(); + db.GetConnection("B").DbMaintenance.TruncateTable(); + db.GetConnection("AB").DbMaintenance.TruncateTable(); + + db.GetConnection("A").Insertable(new OperatorInfo() { id=10, realname="A"}).ExecuteCommand(); + db.GetConnection("B").Insertable(new Role() { id=101, name="B"}).ExecuteCommand(); + db.GetConnection("AB").Insertable(new OptRole() { id=1, operId=10, roleId=101}).ExecuteCommand(); + + var x=db.Queryable() + .CrossQueryWithAttr().Includes(z => z.Roles).ToList(); + + if (x.First().Roles.Count == 0) + { + throw new Exception("unit error"); + } + } + /// + /// 描述: + /// 作者:synjones + /// 时间:2022-04-20 21:30:28 + /// + [SugarTable("unit_operatorinfo8")] + [Tenant("A")] + public partial class OperatorInfo + { + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true)] + public int id { get; set; } + + /// + /// 姓名 + /// + public string realname { get; set; } + + /// + /// 多角色 + /// + [Navigate(typeof(OptRole), nameof(OptRole.operId), nameof(OptRole.roleId))]//名字换 + public List Roles { get; set; } + } + + /// + /// 描述: + /// 作者:synjones + /// 时间:2022-04-20 21:30:28 + /// + [SugarTable("unit_role18")] + [Tenant("B")] + public partial class Role + { + /// + /// 角色 + /// + [SugarColumn(IsPrimaryKey = true )] + public int id { get; set; } + + /// + /// 角色名称 + /// + public string name { get; set; } + + } + + + /// + /// 描述: + /// 作者:synjones + /// 时间:2022-04-21 14:35:09 + /// + [SugarTable("unit_operator_role8")] + [Tenant("AB")] + public partial class OptRole + { + /// + /// + /// + [SugarColumn(IsPrimaryKey = true)] + public int id { get; set; } + + /// + /// + /// + public int operId { get; set; } + + /// + /// + /// + public int roleId { get; set; } + + + } + } +} diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/CrossDatabase03.cs b/Src/Asp.Net/SqlServerTest/UnitTest/CrossDatabase03.cs new file mode 100644 index 000000000..b9c94af2f --- /dev/null +++ b/Src/Asp.Net/SqlServerTest/UnitTest/CrossDatabase03.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Text; +using SqlSugar; +using System.Linq; +namespace OrmTest +{ + public class CrossDatabase03 + { + public static void Init() + { + var db = new SqlSugarClient(new List() + { + new ConnectionConfig(){ConfigId="OrderDb",DbType=DbType.SqlServer,ConnectionString="server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST",IsAutoCloseConnection=true}, + new ConnectionConfig(){ConfigId="OrderItemDb",DbType=DbType.SqlServer,ConnectionString="server=.;uid=sa;pwd=sasa;database=SQLSUGAR4XTEST2",IsAutoCloseConnection=true } + }); + + db.GetConnection("OrderDb").CodeFirst.InitTables(); + db.GetConnection("OrderItemDb").CodeFirst.InitTables(); + + db.GetConnection("OrderDb").DbMaintenance.TruncateTable(); + db.GetConnection("OrderItemDb").DbMaintenance.TruncateTable(); + + db.GetConnection("OrderDb").Insertable(new Order() { Id=1, CreateTime=DateTime.Now, Name="a", Price=10, CustomId=1 }).ExecuteCommand(); + db.GetConnection("OrderItemDb").Insertable(new OrderItem() { OrderId = 1, CreateTime = DateTime.Now , Price=10 }).ExecuteCommand(); + + var list=db.QueryableWithAttr() + .CrossQueryWithAttr() + .Includes(z => z.Order) + .ToList(); + + + var list2 = db.QueryableWithAttr() + .CrossQueryWithAttr() + .Includes(z => z.Items) + .ToList(); + + + if (list.First().Order == null) + { + throw new Exception("unit error"); + } + if (list2.First().Items.Count == 0) + { + throw new Exception("unit error"); + } + Console.WriteLine("OrderDb"); + foreach (var item in db.GetConnection("OrderDb").DbMaintenance.GetTableInfoList(false)) + { + Console.WriteLine(item.Name); + } + Console.WriteLine("OrderItemDb"); + foreach (var item in db.GetConnection("OrderItemDb").DbMaintenance.GetTableInfoList(false)) + { + Console.WriteLine(item.Name); + } + } + [Tenant("OrderDb")] + [SqlSugar.SugarTable("Order8")] + public class Order + { + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + public string Name { get; set; } + public decimal Price { get; set; } + [SugarColumn(IsNullable = true)] + public DateTime CreateTime { get; set; } + [SugarColumn(IsNullable = true)] + public int CustomId { get; set; } + [Navigate(NavigateType.OneToMany, nameof(OrderItem.OrderId))] + public List Items { get; set; } + } + [SqlSugar.SugarTable("OrderDetail8")] + [Tenant("OrderItemDb")] + public class OrderItem + { + [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int ItemId { get; set; } + public int OrderId { get; set; } + public decimal? Price { get; set; } + [SqlSugar.SugarColumn(IsNullable = true)] + public DateTime? CreateTime { get; set; } + [Navigate(NavigateType.OneToOne,nameof(OrderId))] + public Order Order { get; set; } + } + } +} diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs b/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs index 4df9a2acd..30ddfc685 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/Main.cs @@ -31,6 +31,9 @@ namespace OrmTest } public static void Init() { + CrossDatabase01.Init(); + CrossDatabase02.Init(); + CrossDatabase03.Init(); UInsertNav0adsf.Init(); UExp.Init(); USelectSinleDTO.Init();