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();