273 lines
13 KiB
C#
273 lines
13 KiB
C#
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;
|
|
}
|
|
|
|
|
|
}
|
|
}
|