Browse Source

Add unit test

pull/20/head
sunkaixuan 2 years ago
parent
commit
51f89e37ae
  1. 3
      Src/Asp.Net/SqlServerTest/SqlServerTest.csproj
  2. 1
      Src/Asp.Net/SqlServerTest/UnitTest/Main.cs
  3. 0
      Src/Asp.Net/SqlServerTest/UnitTest/UOneManyMany2.cs
  4. 166
      Src/Asp.Net/SqlServerTest/UnitTest/UOneManyMany3.cs

3
Src/Asp.Net/SqlServerTest/SqlServerTest.csproj

@ -139,7 +139,8 @@
<Compile Include="UnitTest\UDelete.cs" />
<Compile Include="UnitTest\UFastest.cs" />
<Compile Include="UnitTest\UConfig.cs" />
<Compile Include="UnitTest\UOneManyMany 2.cs" />
<Compile Include="UnitTest\UOneManyMany3.cs" />
<Compile Include="UnitTest\UOneManyMany2.cs" />
<Compile Include="UnitTest\UOneManyMany.cs" />
<Compile Include="UnitTest\USplit.cs" />
<Compile Include="UnitTest\Models\TB_AdminUser.cs" />

1
Src/Asp.Net/SqlServerTest/UnitTest/Main.cs

@ -32,6 +32,7 @@ namespace OrmTest
public static void Init()
{
UOneManyMany3.init();
UOneManyMany2.init();
UOneManyMany.init();
UNavDynamic111N.Init();

0
Src/Asp.Net/SqlServerTest/UnitTest/UOneManyMany 2.cs → Src/Asp.Net/SqlServerTest/UnitTest/UOneManyMany2.cs

166
Src/Asp.Net/SqlServerTest/UnitTest/UOneManyMany3.cs

@ -0,0 +1,166 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OrmTest
{
public class UOneManyMany3
{
public static void init()
{
var db = NewUnitTest.Db;
db.CodeFirst.InitTables<Student_003, School_003, Room_003, Desk_003>();
db.DbMaintenance.TruncateTable<Student_003, School_003, Room_003, Desk_003>();
db.Insertable(new Student_003() { sid = 1, Name = "北大jack", SchoolId = 1 }).ExecuteCommand();
db.Insertable(new Student_003() { sid = 2, Name = "青华jack", SchoolId = 2 }).ExecuteCommand();
db.Insertable(new School_003() { scid = 1, schname = "北大" }).ExecuteCommand();
db.Insertable(new School_003() { scid = 2, schname = "青华" }).ExecuteCommand();
db.Insertable(new Room_003() { roomId = 1, schoolId = 1, roomName = "北大01室" }).ExecuteCommand();
db.Insertable(new Room_003() { roomId = 2, schoolId = 1, roomName = "北大02室" }).ExecuteCommand();
db.Insertable(new Room_003() { roomId = 3, schoolId = 2, roomName = "青华03室" }).ExecuteCommand();
db.Insertable(new Room_003() { roomId = 4, schoolId = 2, roomName = "青华04室" }).ExecuteCommand();
db.Insertable(new Desk_003() { roomId = 1, deskid = 1, deskName = "北大01室_01" }).ExecuteCommand();
db.Insertable(new Desk_003() { roomId = 2, deskid = 2, deskName = "北大02室_01" }).ExecuteCommand();
db.Insertable(new Desk_003() { roomId = 3, deskid = 3, deskName = "青华03室_01" }).ExecuteCommand();
db.Insertable(new Desk_003() { roomId = 4, deskid = 4, deskName = "青华04室_01" }).ExecuteCommand();
var list = db.Queryable<Student_003>()
.Includes(x => x.school_001, x => x.rooms, x => x.desk)
.Where(x => x.school_001.rooms.Any(z => z.desk.Any())).ToList();
if (list.Count() != 2)
{
throw new Exception("unit error");
}
var list2 = db.Queryable<Student_003>()
.Includes(x => x.school_001, x => x.rooms)
.Where(x => x.school_001.rooms.Any(z =>
z.roomName == "北大01室" &&
z.desk.Any())).ToList();
if (list2.Count() != 1)
{
throw new Exception("unit error");
}
var list3 = db.Queryable<Student_003>()
.Includes(x => x.school_001, x => x.rooms)
.Where(x => x.school_001.rooms.Any(z =>
z.roomName == "青华03室" &&
z.desk.Any(c => c.deskName == "青华03室_01"))).ToList();
if (list3.Count != 1)
{
throw new Exception("unit error");
}
var list4 = db.Queryable<Student_003>()
.Where(x => x.school_001.rooms.Any(z =>
z.roomName == "青华03室" &&
z.desk.Any(c => c.deskName == "青华04室_01"))).ToList();
if (list4.Count != 0)
{
throw new Exception("unit error");
}
db.DbMaintenance.TruncateTable<Student_003, School_003, Room_003, Desk_003>();
foreach (var item in list)
{
item.sid = 0;
item.SchoolId = 0;
item.school_001.scid = 0;
foreach (var r in item.school_001.rooms)
{
r.roomId = 0;
r.schoolId = 0;
foreach (var z in r.desk)
{
z.deskid = 0;
z.roomId = 0;
}
}
}
db.InsertNav(list.First())
.ThenInclude(x => x.school_001)
.ThenInclude(x => x.rooms)
.ThenInclude(x => x.desk);
db.InsertNav(list.Last())
.ThenInclude(x => x.school_001)
.ThenInclude(x => x.rooms)
.ThenInclude(x => x.desk);
if (db.Queryable<Desk_003>().Count() != 4 || db.Queryable<Room_003>().Count() != 4
|| db.Queryable<School_003>().Count() != 2 || db.Queryable<Student_003>().Count() != 2)
{
throw new Exception("unit error");
}
db.DbMaintenance.TruncateTable<Student_003, School_003, Room_003, Desk_003>();
db.InsertNav(list.First().school_001)
.ThenInclude(x => x.rooms)
.ThenInclude(x => x.desk);
db.InsertNav(list.Last().school_001)
.ThenInclude(x => x.rooms)
.ThenInclude(x => x.desk);
if (db.Queryable<Desk_003>().Count() != 4 || db.Queryable<Room_003>().Count() != 4
|| db.Queryable<School_003>().Count() != 2 || db.Queryable<Student_003>().Count() != 0)
{
throw new Exception("unit error");
}
}
public class Student_003
{
[SqlSugar.SugarColumn(IsPrimaryKey =true)]
public long sid { get; set; }
public string Name { get; set; }
public long SchoolId { get; set; }
[SqlSugar.Navigate(SqlSugar.NavigateType.OneToOne,nameof(SchoolId))]
public School_003 school_001 { get; set; }
}
public class School_003
{
[SqlSugar.SugarColumn(IsPrimaryKey = true )]
public long scid { get; set; }
public string schname { get; set; }
[SqlSugar.Navigate(SqlSugar.NavigateType.OneToMany, nameof(Room_003.schoolId))]
public List<Room_003> rooms { get; set; }
}
public class Room_003
{
[SqlSugar.SugarColumn(IsPrimaryKey = true )]
public long roomId { get; set; }
public long schoolId { get; set; }
public string roomName { get; set; }
[SqlSugar.Navigate(SqlSugar.NavigateType.OneToMany, nameof(Desk_003.roomId))]
public List<Desk_003> desk { get; set; }
}
public class Desk_003
{
[SqlSugar.SugarColumn(IsPrimaryKey = true)]
public long deskid { get; set; }
public string deskName { get; set; }
public long roomId { get; set; }
}
}
}
Loading…
Cancel
Save