mh_custom/wtmProject.Test/FrameworkOutRecordApiTest.cs

273 lines
13 KiB
C#
Raw Permalink Normal View History

2024-05-16 17:30:33 +08:00
using Microsoft.AspNetCore.Mvc;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WalkingTec.Mvvm.Core;
using wtmProject.Controllers;
using wtmProject.ViewModel._Admin.FrameworkOutRecordVMs;
using wtmProject.Model;
using wtmProject.DataAccess;
namespace wtmProject.Test
{
[TestClass]
public class FrameworkOutRecordApiTest
{
private FrameworkOutRecordController _controller;
private string _seed;
public FrameworkOutRecordApiTest()
{
_seed = Guid.NewGuid().ToString();
_controller = MockController.CreateApi<FrameworkOutRecordController>(new DataContext(_seed, DBTypeEnum.Memory), "user");
}
[TestMethod]
public void SearchTest()
{
ContentResult rv = _controller.Search(new FrameworkOutRecordSearcher()) as ContentResult;
Assert.IsTrue(string.IsNullOrEmpty(rv.Content)==false);
}
[TestMethod]
public void CreateTest()
{
FrameworkOutRecordVM vm = _controller.Wtm.CreateVM<FrameworkOutRecordVM>();
FrameworkOutRecord v = new FrameworkOutRecord();
v.UserId = AddFrameworkUser();
v.City = "j0OPsRXQCpbhtIWMRDSYfRri2Z3MsN4MyMb83lWWeKqpa2ishxdrF0xvnfrtXDlxboGeXzLWFChf1rYzprYJ0zmBurnwNCt7ORdAj4BQzLCQAjYUQbvDfPpNeP0uZnhk5fAgqTOjQW5IwWZ1gf8ORE9Tof";
v.OutStartTime = DateTime.Parse("2025-05-07 11:26:13");
v.OutEndTime = DateTime.Parse("2025-01-25 11:26:13");
v.OutRecordType = wtmProject.Model.OutRecordTypeEnum.Implement;
v.CustomId = AddFrameworkCustom();
v.ProjectId = AddFrameworkProject();
v.Remark = "h8G2yphlXf3BGNwrLgwQklYK7bjH17uiQ3o8qFl8mySRk5AoGHTqEf8LIFNGQ6Z5mGrJDsf0xw2jGvLkY7uGvQu4pUNPhrz7vVeNYemsAmFqpamX711T67svlyBoTBgUsCChnTCX1Y1tqlkBb0uwtiYmDipb1yBw0UHaf7Bzdw5Iuu3WCj5KojaU6WfjGpfg0fw1JHiSqcAeHEqHGw4OiwBacH0DsqYCkoWZbU8A7IuRegaOxMxaCsjl57XFhbHR7hOOOOt06ytZYGysD3E0Gc9FIRQ6MgYbCrl7ge7bulzTjk8MybaxqlQhRVjPUr7zkAQQqbjmUZdSyJNKKQj9eaf1sFFlWOwwSyhRQLiBHj7NLS8sXGXGuuhURqeXCdQk67Cx0BphBRHypNLzU2";
vm.Entity = v;
var rv = _controller.Add(vm);
Assert.IsInstanceOfType(rv, typeof(OkObjectResult));
using (var context = new DataContext(_seed, DBTypeEnum.Memory))
{
var data = context.Set<FrameworkOutRecord>().Find(v.ID);
Assert.AreEqual(data.City, "j0OPsRXQCpbhtIWMRDSYfRri2Z3MsN4MyMb83lWWeKqpa2ishxdrF0xvnfrtXDlxboGeXzLWFChf1rYzprYJ0zmBurnwNCt7ORdAj4BQzLCQAjYUQbvDfPpNeP0uZnhk5fAgqTOjQW5IwWZ1gf8ORE9Tof");
Assert.AreEqual(data.OutStartTime, DateTime.Parse("2025-05-07 11:26:13"));
Assert.AreEqual(data.OutEndTime, DateTime.Parse("2025-01-25 11:26:13"));
Assert.AreEqual(data.OutRecordType, wtmProject.Model.OutRecordTypeEnum.Implement);
Assert.AreEqual(data.Remark, "h8G2yphlXf3BGNwrLgwQklYK7bjH17uiQ3o8qFl8mySRk5AoGHTqEf8LIFNGQ6Z5mGrJDsf0xw2jGvLkY7uGvQu4pUNPhrz7vVeNYemsAmFqpamX711T67svlyBoTBgUsCChnTCX1Y1tqlkBb0uwtiYmDipb1yBw0UHaf7Bzdw5Iuu3WCj5KojaU6WfjGpfg0fw1JHiSqcAeHEqHGw4OiwBacH0DsqYCkoWZbU8A7IuRegaOxMxaCsjl57XFhbHR7hOOOOt06ytZYGysD3E0Gc9FIRQ6MgYbCrl7ge7bulzTjk8MybaxqlQhRVjPUr7zkAQQqbjmUZdSyJNKKQj9eaf1sFFlWOwwSyhRQLiBHj7NLS8sXGXGuuhURqeXCdQk67Cx0BphBRHypNLzU2");
Assert.AreEqual(data.CreateBy, "user");
Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10);
}
}
[TestMethod]
public void EditTest()
{
FrameworkOutRecord v = new FrameworkOutRecord();
using (var context = new DataContext(_seed, DBTypeEnum.Memory))
{
v.UserId = AddFrameworkUser();
v.City = "j0OPsRXQCpbhtIWMRDSYfRri2Z3MsN4MyMb83lWWeKqpa2ishxdrF0xvnfrtXDlxboGeXzLWFChf1rYzprYJ0zmBurnwNCt7ORdAj4BQzLCQAjYUQbvDfPpNeP0uZnhk5fAgqTOjQW5IwWZ1gf8ORE9Tof";
v.OutStartTime = DateTime.Parse("2025-05-07 11:26:13");
v.OutEndTime = DateTime.Parse("2025-01-25 11:26:13");
v.OutRecordType = wtmProject.Model.OutRecordTypeEnum.Implement;
v.CustomId = AddFrameworkCustom();
v.ProjectId = AddFrameworkProject();
v.Remark = "h8G2yphlXf3BGNwrLgwQklYK7bjH17uiQ3o8qFl8mySRk5AoGHTqEf8LIFNGQ6Z5mGrJDsf0xw2jGvLkY7uGvQu4pUNPhrz7vVeNYemsAmFqpamX711T67svlyBoTBgUsCChnTCX1Y1tqlkBb0uwtiYmDipb1yBw0UHaf7Bzdw5Iuu3WCj5KojaU6WfjGpfg0fw1JHiSqcAeHEqHGw4OiwBacH0DsqYCkoWZbU8A7IuRegaOxMxaCsjl57XFhbHR7hOOOOt06ytZYGysD3E0Gc9FIRQ6MgYbCrl7ge7bulzTjk8MybaxqlQhRVjPUr7zkAQQqbjmUZdSyJNKKQj9eaf1sFFlWOwwSyhRQLiBHj7NLS8sXGXGuuhURqeXCdQk67Cx0BphBRHypNLzU2";
context.Set<FrameworkOutRecord>().Add(v);
context.SaveChanges();
}
FrameworkOutRecordVM vm = _controller.Wtm.CreateVM<FrameworkOutRecordVM>();
var oldID = v.ID;
v = new FrameworkOutRecord();
v.ID = oldID;
v.City = "EXZN93Wfq0Pwt0TU0Mr32cBIPyhBA73HAiYJW21KeIr";
v.OutStartTime = DateTime.Parse("2024-03-06 11:26:13");
v.OutEndTime = DateTime.Parse("2024-07-04 11:26:13");
v.OutRecordType = wtmProject.Model.OutRecordTypeEnum.Vacation;
v.Remark = "755sQjKc8bSmL8E9xqjAh1XxPAu7dPpPIPR3SLsVofWdA2bNujLvZtPEQihhbDC7NE9nUq6DdwpZlstR2IsXsrosxWTpQfH";
vm.Entity = v;
vm.FC = new Dictionary<string, object>();
vm.FC.Add("Entity.UserId", "");
vm.FC.Add("Entity.City", "");
vm.FC.Add("Entity.OutStartTime", "");
vm.FC.Add("Entity.OutEndTime", "");
vm.FC.Add("Entity.OutRecordType", "");
vm.FC.Add("Entity.CustomId", "");
vm.FC.Add("Entity.ProjectId", "");
vm.FC.Add("Entity.Remark", "");
var rv = _controller.Edit(vm);
Assert.IsInstanceOfType(rv, typeof(OkObjectResult));
using (var context = new DataContext(_seed, DBTypeEnum.Memory))
{
var data = context.Set<FrameworkOutRecord>().Find(v.ID);
Assert.AreEqual(data.City, "EXZN93Wfq0Pwt0TU0Mr32cBIPyhBA73HAiYJW21KeIr");
Assert.AreEqual(data.OutStartTime, DateTime.Parse("2024-03-06 11:26:13"));
Assert.AreEqual(data.OutEndTime, DateTime.Parse("2024-07-04 11:26:13"));
Assert.AreEqual(data.OutRecordType, wtmProject.Model.OutRecordTypeEnum.Vacation);
Assert.AreEqual(data.Remark, "755sQjKc8bSmL8E9xqjAh1XxPAu7dPpPIPR3SLsVofWdA2bNujLvZtPEQihhbDC7NE9nUq6DdwpZlstR2IsXsrosxWTpQfH");
Assert.AreEqual(data.UpdateBy, "user");
Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10);
}
}
[TestMethod]
public void GetTest()
{
FrameworkOutRecord v = new FrameworkOutRecord();
using (var context = new DataContext(_seed, DBTypeEnum.Memory))
{
v.UserId = AddFrameworkUser();
v.City = "j0OPsRXQCpbhtIWMRDSYfRri2Z3MsN4MyMb83lWWeKqpa2ishxdrF0xvnfrtXDlxboGeXzLWFChf1rYzprYJ0zmBurnwNCt7ORdAj4BQzLCQAjYUQbvDfPpNeP0uZnhk5fAgqTOjQW5IwWZ1gf8ORE9Tof";
v.OutStartTime = DateTime.Parse("2025-05-07 11:26:13");
v.OutEndTime = DateTime.Parse("2025-01-25 11:26:13");
v.OutRecordType = wtmProject.Model.OutRecordTypeEnum.Implement;
v.CustomId = AddFrameworkCustom();
v.ProjectId = AddFrameworkProject();
v.Remark = "h8G2yphlXf3BGNwrLgwQklYK7bjH17uiQ3o8qFl8mySRk5AoGHTqEf8LIFNGQ6Z5mGrJDsf0xw2jGvLkY7uGvQu4pUNPhrz7vVeNYemsAmFqpamX711T67svlyBoTBgUsCChnTCX1Y1tqlkBb0uwtiYmDipb1yBw0UHaf7Bzdw5Iuu3WCj5KojaU6WfjGpfg0fw1JHiSqcAeHEqHGw4OiwBacH0DsqYCkoWZbU8A7IuRegaOxMxaCsjl57XFhbHR7hOOOOt06ytZYGysD3E0Gc9FIRQ6MgYbCrl7ge7bulzTjk8MybaxqlQhRVjPUr7zkAQQqbjmUZdSyJNKKQj9eaf1sFFlWOwwSyhRQLiBHj7NLS8sXGXGuuhURqeXCdQk67Cx0BphBRHypNLzU2";
context.Set<FrameworkOutRecord>().Add(v);
context.SaveChanges();
}
var rv = _controller.Get(v.ID.ToString());
Assert.IsNotNull(rv);
}
[TestMethod]
public void BatchDeleteTest()
{
FrameworkOutRecord v1 = new FrameworkOutRecord();
FrameworkOutRecord v2 = new FrameworkOutRecord();
using (var context = new DataContext(_seed, DBTypeEnum.Memory))
{
v1.UserId = AddFrameworkUser();
v1.City = "j0OPsRXQCpbhtIWMRDSYfRri2Z3MsN4MyMb83lWWeKqpa2ishxdrF0xvnfrtXDlxboGeXzLWFChf1rYzprYJ0zmBurnwNCt7ORdAj4BQzLCQAjYUQbvDfPpNeP0uZnhk5fAgqTOjQW5IwWZ1gf8ORE9Tof";
v1.OutStartTime = DateTime.Parse("2025-05-07 11:26:13");
v1.OutEndTime = DateTime.Parse("2025-01-25 11:26:13");
v1.OutRecordType = wtmProject.Model.OutRecordTypeEnum.Implement;
v1.CustomId = AddFrameworkCustom();
v1.ProjectId = AddFrameworkProject();
v1.Remark = "h8G2yphlXf3BGNwrLgwQklYK7bjH17uiQ3o8qFl8mySRk5AoGHTqEf8LIFNGQ6Z5mGrJDsf0xw2jGvLkY7uGvQu4pUNPhrz7vVeNYemsAmFqpamX711T67svlyBoTBgUsCChnTCX1Y1tqlkBb0uwtiYmDipb1yBw0UHaf7Bzdw5Iuu3WCj5KojaU6WfjGpfg0fw1JHiSqcAeHEqHGw4OiwBacH0DsqYCkoWZbU8A7IuRegaOxMxaCsjl57XFhbHR7hOOOOt06ytZYGysD3E0Gc9FIRQ6MgYbCrl7ge7bulzTjk8MybaxqlQhRVjPUr7zkAQQqbjmUZdSyJNKKQj9eaf1sFFlWOwwSyhRQLiBHj7NLS8sXGXGuuhURqeXCdQk67Cx0BphBRHypNLzU2";
v2.UserId = v1.UserId;
v2.City = "EXZN93Wfq0Pwt0TU0Mr32cBIPyhBA73HAiYJW21KeIr";
v2.OutStartTime = DateTime.Parse("2024-03-06 11:26:13");
v2.OutEndTime = DateTime.Parse("2024-07-04 11:26:13");
v2.OutRecordType = wtmProject.Model.OutRecordTypeEnum.Vacation;
v2.CustomId = v1.CustomId;
v2.ProjectId = v1.ProjectId;
v2.Remark = "755sQjKc8bSmL8E9xqjAh1XxPAu7dPpPIPR3SLsVofWdA2bNujLvZtPEQihhbDC7NE9nUq6DdwpZlstR2IsXsrosxWTpQfH";
context.Set<FrameworkOutRecord>().Add(v1);
context.Set<FrameworkOutRecord>().Add(v2);
context.SaveChanges();
}
var rv = _controller.BatchDelete(new string[] { v1.ID.ToString(), v2.ID.ToString() });
Assert.IsInstanceOfType(rv, typeof(OkObjectResult));
using (var context = new DataContext(_seed, DBTypeEnum.Memory))
{
var data1 = context.Set<FrameworkOutRecord>().Find(v1.ID);
var data2 = context.Set<FrameworkOutRecord>().Find(v2.ID);
Assert.AreEqual(data1, null);
Assert.AreEqual(data2, null);
}
rv = _controller.BatchDelete(new string[] {});
Assert.IsInstanceOfType(rv, typeof(OkResult));
}
private Guid AddFileAttachment()
{
FileAttachment v = new FileAttachment();
using (var context = new DataContext(_seed, DBTypeEnum.Memory))
{
try{
v.FileName = "JA51cRwVe0";
v.FileExt = "3nfp";
v.Path = "Mr4UsEUT6UrKpfy";
v.Length = 92;
v.UploadTime = DateTime.Parse("2023-05-14 11:26:13");
v.SaveMode = "MR95oliYP9x5G0lpvqj";
v.ExtraInfo = "pCJxSN";
v.HandlerInfo = "PNb2yd";
context.Set<FileAttachment>().Add(v);
context.SaveChanges();
}
catch{}
}
return v.ID;
}
private Guid AddFrameworkUser()
{
FrameworkUser v = new FrameworkUser();
using (var context = new DataContext(_seed, DBTypeEnum.Memory))
{
try{
v.Gender = WalkingTec.Mvvm.Core.GenderEnum.Female;
v.CellPhone = "UnRjUv6JhaQ65Uldcr";;
v.ITCode = "c7e";
v.Password = "ifEmw7NJEsx3qTPwj";
v.Name = "ZtBu7vJzSrjPWMpzLIwrCT";
v.IsValid = true;
v.PhotoId = AddFileAttachment();
context.Set<FrameworkUser>().Add(v);
context.SaveChanges();
}
catch{}
}
return v.ID;
}
private Guid AddFrameworkCustom()
{
FrameworkCustom v = new FrameworkCustom();
using (var context = new DataContext(_seed, DBTypeEnum.Memory))
{
try{
v.CustomCode = "63f7kd7J29VelvDXzrB35MehS1j9msv9ZiFPO";
v.CustomName = "L1KtYo5yv2i43YF1BsKtbq5tDDvsR0BPTUk";
context.Set<FrameworkCustom>().Add(v);
context.SaveChanges();
}
catch{}
}
return v.ID;
}
private Guid AddFrameworkProject()
{
FrameworkProject v = new FrameworkProject();
using (var context = new DataContext(_seed, DBTypeEnum.Memory))
{
try{
v.ProjectCode = "jpdf52rUbZp2OrcomNf12oc60mbxdY0EJx0yyis71OUdt";
v.ProjectName = "XFPuQP21e6843";
context.Set<FrameworkProject>().Add(v);
context.SaveChanges();
}
catch{}
}
return v.ID;
}
}
}