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.WTM_VISIT_PLANVMs; using wtmProject.Model; using wtmProject.DataAccess; namespace wtmProject.Test { [TestClass] public class WTM_VISIT_PLANApiTest { private WTM_VISIT_PLANController _controller; private string _seed; public WTM_VISIT_PLANApiTest() { _seed = Guid.NewGuid().ToString(); _controller = MockController.CreateApi(new DataContext(_seed, DBTypeEnum.Memory), "user"); } [TestMethod] public void SearchTest() { ContentResult rv = _controller.Search(new WTM_VISIT_PLANSearcher()) as ContentResult; Assert.IsTrue(string.IsNullOrEmpty(rv.Content)==false); } [TestMethod] public void CreateTest() { WTM_VISIT_PLANVM vm = _controller.Wtm.CreateVM(); WTM_VISIT_PLAN v = new WTM_VISIT_PLAN(); v.CustomId = AddWTM_CUSTOM(); v.AreaId = AddWTM_AREA(); v.VisitObjectId = AddWTM_CUSTOM_PERSON(); v.VisitStartTime = DateTime.Parse("2024-06-15 16:22:47"); v.VisitEndTime = DateTime.Parse("2024-06-20 16:22:47"); v.VisitTarget = "V27KaBibnaAucD8MVmKab9eUxCLY43hD6PmqQMEK2hURtYhmEabTgZIzv01my3CWYmn77uysiWasIy5BtGYfiwWCiTUkcxpSSroHKfizjIV51fQHmeNwQRXegYm4bcXwq2zgewHZyqKsUNhiIjn8O4iVAU9GTHOtOIduB13bUAWfphGJdPKs4JF3Dbd46RTzbBKgg8y5LD0I5ISv72POQJ6Xn3we74Eh2pQygLIYvFa1kjn0uEhfN2SMcNYMI16NdVIeIypi8ALMzYAO7X46NV8amOI4yDJwBnS"; v.MarkManageId = AddFrameworkUser(); 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().Find(v.ID); Assert.AreEqual(data.VisitStartTime, DateTime.Parse("2024-06-15 16:22:47")); Assert.AreEqual(data.VisitEndTime, DateTime.Parse("2024-06-20 16:22:47")); Assert.AreEqual(data.VisitTarget, "V27KaBibnaAucD8MVmKab9eUxCLY43hD6PmqQMEK2hURtYhmEabTgZIzv01my3CWYmn77uysiWasIy5BtGYfiwWCiTUkcxpSSroHKfizjIV51fQHmeNwQRXegYm4bcXwq2zgewHZyqKsUNhiIjn8O4iVAU9GTHOtOIduB13bUAWfphGJdPKs4JF3Dbd46RTzbBKgg8y5LD0I5ISv72POQJ6Xn3we74Eh2pQygLIYvFa1kjn0uEhfN2SMcNYMI16NdVIeIypi8ALMzYAO7X46NV8amOI4yDJwBnS"); Assert.AreEqual(data.CreateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10); } } [TestMethod] public void EditTest() { WTM_VISIT_PLAN v = new WTM_VISIT_PLAN(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.CustomId = AddWTM_CUSTOM(); v.AreaId = AddWTM_AREA(); v.VisitObjectId = AddWTM_CUSTOM_PERSON(); v.VisitStartTime = DateTime.Parse("2024-06-15 16:22:47"); v.VisitEndTime = DateTime.Parse("2024-06-20 16:22:47"); v.VisitTarget = "V27KaBibnaAucD8MVmKab9eUxCLY43hD6PmqQMEK2hURtYhmEabTgZIzv01my3CWYmn77uysiWasIy5BtGYfiwWCiTUkcxpSSroHKfizjIV51fQHmeNwQRXegYm4bcXwq2zgewHZyqKsUNhiIjn8O4iVAU9GTHOtOIduB13bUAWfphGJdPKs4JF3Dbd46RTzbBKgg8y5LD0I5ISv72POQJ6Xn3we74Eh2pQygLIYvFa1kjn0uEhfN2SMcNYMI16NdVIeIypi8ALMzYAO7X46NV8amOI4yDJwBnS"; v.MarkManageId = AddFrameworkUser(); context.Set().Add(v); context.SaveChanges(); } WTM_VISIT_PLANVM vm = _controller.Wtm.CreateVM(); var oldID = v.ID; v = new WTM_VISIT_PLAN(); v.ID = oldID; v.VisitStartTime = DateTime.Parse("2024-06-25 16:22:47"); v.VisitEndTime = DateTime.Parse("2023-05-03 16:22:47"); v.VisitTarget = "y4seHcv9Oosdo8sFXq3VIc5ws9xasiyEnTYX0eVp9j9dA26srT31Xb3tj52aNfjWe6fJpA5TXko1kc3gme7Slc3T4w9x3QGnvBAo4YsdHE7poCs4SllFe1hoQnpnQzNEIyvchmJHJhDMV1pTvh9L83ugxXXzLxELkNZw7oFDOWOisFv8i9p3nPfi6EPbJTztjFS3wmtbzbyPwOr5q49PcNF4h5hwdmKNg3gBgyUGNgRwDxPbSvMdiHspS4YRDxKiWgfB93ctvTJwGeKvU3wfI0qYYAHhMADxSjdou4IIcp6dgg91Q6EcKrlcs9Oi6LIY2IviP5r0X4fi1nDbS1kBI5AMAqEvqGlsqtG042QGfSBZhISIyrAkRCSCwmHFQeSyVILqnKyhp"; vm.Entity = v; vm.FC = new Dictionary(); vm.FC.Add("Entity.CustomId", ""); vm.FC.Add("Entity.AreaId", ""); vm.FC.Add("Entity.VisitObjectId", ""); vm.FC.Add("Entity.VisitStartTime", ""); vm.FC.Add("Entity.VisitEndTime", ""); vm.FC.Add("Entity.VisitTarget", ""); vm.FC.Add("Entity.MarkManageId", ""); var rv = _controller.Edit(vm); Assert.IsInstanceOfType(rv, typeof(OkObjectResult)); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set().Find(v.ID); Assert.AreEqual(data.VisitStartTime, DateTime.Parse("2024-06-25 16:22:47")); Assert.AreEqual(data.VisitEndTime, DateTime.Parse("2023-05-03 16:22:47")); Assert.AreEqual(data.VisitTarget, "y4seHcv9Oosdo8sFXq3VIc5ws9xasiyEnTYX0eVp9j9dA26srT31Xb3tj52aNfjWe6fJpA5TXko1kc3gme7Slc3T4w9x3QGnvBAo4YsdHE7poCs4SllFe1hoQnpnQzNEIyvchmJHJhDMV1pTvh9L83ugxXXzLxELkNZw7oFDOWOisFv8i9p3nPfi6EPbJTztjFS3wmtbzbyPwOr5q49PcNF4h5hwdmKNg3gBgyUGNgRwDxPbSvMdiHspS4YRDxKiWgfB93ctvTJwGeKvU3wfI0qYYAHhMADxSjdou4IIcp6dgg91Q6EcKrlcs9Oi6LIY2IviP5r0X4fi1nDbS1kBI5AMAqEvqGlsqtG042QGfSBZhISIyrAkRCSCwmHFQeSyVILqnKyhp"); Assert.AreEqual(data.UpdateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10); } } [TestMethod] public void GetTest() { WTM_VISIT_PLAN v = new WTM_VISIT_PLAN(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.CustomId = AddWTM_CUSTOM(); v.AreaId = AddWTM_AREA(); v.VisitObjectId = AddWTM_CUSTOM_PERSON(); v.VisitStartTime = DateTime.Parse("2024-06-15 16:22:47"); v.VisitEndTime = DateTime.Parse("2024-06-20 16:22:47"); v.VisitTarget = "V27KaBibnaAucD8MVmKab9eUxCLY43hD6PmqQMEK2hURtYhmEabTgZIzv01my3CWYmn77uysiWasIy5BtGYfiwWCiTUkcxpSSroHKfizjIV51fQHmeNwQRXegYm4bcXwq2zgewHZyqKsUNhiIjn8O4iVAU9GTHOtOIduB13bUAWfphGJdPKs4JF3Dbd46RTzbBKgg8y5LD0I5ISv72POQJ6Xn3we74Eh2pQygLIYvFa1kjn0uEhfN2SMcNYMI16NdVIeIypi8ALMzYAO7X46NV8amOI4yDJwBnS"; v.MarkManageId = AddFrameworkUser(); context.Set().Add(v); context.SaveChanges(); } var rv = _controller.Get(v.ID.ToString()); Assert.IsNotNull(rv); } [TestMethod] public void BatchDeleteTest() { WTM_VISIT_PLAN v1 = new WTM_VISIT_PLAN(); WTM_VISIT_PLAN v2 = new WTM_VISIT_PLAN(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v1.CustomId = AddWTM_CUSTOM(); v1.AreaId = AddWTM_AREA(); v1.VisitObjectId = AddWTM_CUSTOM_PERSON(); v1.VisitStartTime = DateTime.Parse("2024-06-15 16:22:47"); v1.VisitEndTime = DateTime.Parse("2024-06-20 16:22:47"); v1.VisitTarget = "V27KaBibnaAucD8MVmKab9eUxCLY43hD6PmqQMEK2hURtYhmEabTgZIzv01my3CWYmn77uysiWasIy5BtGYfiwWCiTUkcxpSSroHKfizjIV51fQHmeNwQRXegYm4bcXwq2zgewHZyqKsUNhiIjn8O4iVAU9GTHOtOIduB13bUAWfphGJdPKs4JF3Dbd46RTzbBKgg8y5LD0I5ISv72POQJ6Xn3we74Eh2pQygLIYvFa1kjn0uEhfN2SMcNYMI16NdVIeIypi8ALMzYAO7X46NV8amOI4yDJwBnS"; v1.MarkManageId = AddFrameworkUser(); v2.CustomId = v1.CustomId; v2.AreaId = v1.AreaId; v2.VisitObjectId = v1.VisitObjectId; v2.VisitStartTime = DateTime.Parse("2024-06-25 16:22:47"); v2.VisitEndTime = DateTime.Parse("2023-05-03 16:22:47"); v2.VisitTarget = "y4seHcv9Oosdo8sFXq3VIc5ws9xasiyEnTYX0eVp9j9dA26srT31Xb3tj52aNfjWe6fJpA5TXko1kc3gme7Slc3T4w9x3QGnvBAo4YsdHE7poCs4SllFe1hoQnpnQzNEIyvchmJHJhDMV1pTvh9L83ugxXXzLxELkNZw7oFDOWOisFv8i9p3nPfi6EPbJTztjFS3wmtbzbyPwOr5q49PcNF4h5hwdmKNg3gBgyUGNgRwDxPbSvMdiHspS4YRDxKiWgfB93ctvTJwGeKvU3wfI0qYYAHhMADxSjdou4IIcp6dgg91Q6EcKrlcs9Oi6LIY2IviP5r0X4fi1nDbS1kBI5AMAqEvqGlsqtG042QGfSBZhISIyrAkRCSCwmHFQeSyVILqnKyhp"; v2.MarkManageId = v1.MarkManageId; context.Set().Add(v1); context.Set().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().Find(v1.ID); var data2 = context.Set().Find(v2.ID); Assert.AreEqual(data1, null); Assert.AreEqual(data2, null); } rv = _controller.BatchDelete(new string[] {}); Assert.IsInstanceOfType(rv, typeof(OkResult)); } private Guid AddWTM_AREA() { WTM_AREA v = new WTM_AREA(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { try{ v.AreaCode = "bfMGraiFFs9QbqtNXotwVhByoxyiw"; v.AreaName = "KTUlSCWfyGfx7cqwVEkADnXhFfBMEBYrzBrbVB1J"; context.Set().Add(v); context.SaveChanges(); } catch{} } return v.ID; } private Guid AddWTM_CUSTOM() { WTM_CUSTOM v = new WTM_CUSTOM(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { try{ v.CustomAllName = "3nTEQ1RrjRHazqOYkTbrDDKpqL4RD4u"; v.CustomShortName = "HjEEf5tVLCFdzyM6Ukx"; v.ParentUnit = "3"; v.AreaId = AddWTM_AREA(); context.Set().Add(v); context.SaveChanges(); } catch{} } return v.ID; } private Guid AddWTM_CUSTOM_PERSON() { WTM_CUSTOM_PERSON v = new WTM_CUSTOM_PERSON(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { try{ v.CustomId = AddWTM_CUSTOM(); v.PersonName = "S"; v.PersonPhone = "DRI1bBNvT973KpL"; v.PersonPost = "ybFeuUGouKbD"; context.Set().Add(v); context.SaveChanges(); } catch{} } return v.ID; } private Guid AddFrameworkGroup() { FrameworkGroup v = new FrameworkGroup(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { try{ v.GroupCode = "zdTpW6cTt"; v.GroupName = "YRgC2"; v.GroupRemark = "ilMg5Gciyj"; v.Manager = "i7hv"; context.Set().Add(v); context.SaveChanges(); } catch{} } return v.ID; } private Guid AddFileAttachment() { FileAttachment v = new FileAttachment(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { try{ v.FileName = "O"; v.FileExt = "T9B"; v.Path = "4C"; v.Length = 80; v.UploadTime = DateTime.Parse("2024-08-22 16:22:47"); v.SaveMode = "UD"; v.ExtraInfo = "N9wS3N9qbxWkgFi"; v.HandlerInfo = "Haeb9Nglwa"; context.Set().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 = "Yt"; v.GroupId = AddFrameworkGroup(); v.ITCode = "n2hzhFKwDxBe8sGXo"; v.Password = "hkfgR3zCQnEW003UZMeK"; v.Name = "GxnDydZb6zXEokiQIVqL"; v.IsValid = false; v.PhotoId = AddFileAttachment(); context.Set().Add(v); context.SaveChanges(); } catch{} } return v.ID; } } }