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_CONTRACTVMs; using wtmProject.Model; using wtmProject.DataAccess; namespace wtmProject.Test { [TestClass] public class WTM_CONTRACTApiTest { private WTM_CONTRACTController _controller; private string _seed; public WTM_CONTRACTApiTest() { _seed = Guid.NewGuid().ToString(); _controller = MockController.CreateApi(new DataContext(_seed, DBTypeEnum.Memory), "user"); } [TestMethod] public void SearchTest() { ContentResult rv = _controller.Search(new WTM_CONTRACTSearcher()) as ContentResult; Assert.IsTrue(string.IsNullOrEmpty(rv.Content)==false); } [TestMethod] public void CreateTest() { WTM_CONTRACTVM vm = _controller.Wtm.CreateVM(); WTM_CONTRACT v = new WTM_CONTRACT(); v.CustomId = AddWTM_CUSTOM(); v.CustomClass = wtmProject.Model.CustomClassEnum.Inside; v.AreaId = AddWTM_AREA(); v.VisitObjectId = AddWTM_CUSTOM_PERSON(); v.MarkManageId = AddFrameworkUser(); v.ProjectId = AddWTM_PROJECT(); v.ContractName = "GuUPpCoSUm0acPdhfE6rFZxEC4l5o0o"; v.ContractCode = "hIytVohSedZtoXokbG07r5Uim0TULgqliC1RyekjTYv2AfR21nNavWa7I2JaTG9wO2rojDYGfWK0g"; v.SignDate = DateTime.Parse("2023-10-27 15:33:34"); v.ContractAmount = 79; v.CostAmount = 72; v.ContractCycle = wtmProject.Model.ContractCycleEnum.ThirdCycle; v.ProjectManageId = AddFrameworkUser(); v.GrossProfitMargin = "FA4jQDJJLX5IttsaomaVy7kWu6mnBL2lFWyClH"; 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.CustomClass, wtmProject.Model.CustomClassEnum.Inside); Assert.AreEqual(data.ContractName, "GuUPpCoSUm0acPdhfE6rFZxEC4l5o0o"); Assert.AreEqual(data.ContractCode, "hIytVohSedZtoXokbG07r5Uim0TULgqliC1RyekjTYv2AfR21nNavWa7I2JaTG9wO2rojDYGfWK0g"); Assert.AreEqual(data.SignDate, DateTime.Parse("2023-10-27 15:33:34")); Assert.AreEqual(data.ContractAmount, 79); Assert.AreEqual(data.CostAmount, 72); Assert.AreEqual(data.ContractCycle, wtmProject.Model.ContractCycleEnum.ThirdCycle); Assert.AreEqual(data.GrossProfitMargin, "FA4jQDJJLX5IttsaomaVy7kWu6mnBL2lFWyClH"); Assert.AreEqual(data.CreateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10); } } [TestMethod] public void EditTest() { WTM_CONTRACT v = new WTM_CONTRACT(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.CustomId = AddWTM_CUSTOM(); v.CustomClass = wtmProject.Model.CustomClassEnum.Inside; v.AreaId = AddWTM_AREA(); v.VisitObjectId = AddWTM_CUSTOM_PERSON(); v.MarkManageId = AddFrameworkUser(); v.ProjectId = AddWTM_PROJECT(); v.ContractName = "GuUPpCoSUm0acPdhfE6rFZxEC4l5o0o"; v.ContractCode = "hIytVohSedZtoXokbG07r5Uim0TULgqliC1RyekjTYv2AfR21nNavWa7I2JaTG9wO2rojDYGfWK0g"; v.SignDate = DateTime.Parse("2023-10-27 15:33:34"); v.ContractAmount = 79; v.CostAmount = 72; v.ContractCycle = wtmProject.Model.ContractCycleEnum.ThirdCycle; v.ProjectManageId = AddFrameworkUser(); v.GrossProfitMargin = "FA4jQDJJLX5IttsaomaVy7kWu6mnBL2lFWyClH"; context.Set().Add(v); context.SaveChanges(); } WTM_CONTRACTVM vm = _controller.Wtm.CreateVM(); var oldID = v.ID; v = new WTM_CONTRACT(); v.ID = oldID; v.CustomClass = wtmProject.Model.CustomClassEnum.Inside; v.ContractName = "ZLqSZU0IvuR4SmUpyxvRGCqrAkTjYszyEKunjfqrts4G7TobRAcr4pjLbq83eSuUj"; v.ContractCode = "s8Bf4IOCzEyf15RegORRzFoUqkPCPSxoEIqi8kgm"; v.SignDate = DateTime.Parse("2024-09-03 15:33:34"); v.ContractAmount = 35; v.CostAmount = 3; v.ContractCycle = wtmProject.Model.ContractCycleEnum.ThirdCycle; v.GrossProfitMargin = "lDLkYKzgOOhtFx"; vm.Entity = v; vm.FC = new Dictionary(); vm.FC.Add("Entity.CustomId", ""); vm.FC.Add("Entity.CustomClass", ""); vm.FC.Add("Entity.AreaId", ""); vm.FC.Add("Entity.VisitObjectId", ""); vm.FC.Add("Entity.MarkManageId", ""); vm.FC.Add("Entity.ProjectId", ""); vm.FC.Add("Entity.ContractName", ""); vm.FC.Add("Entity.ContractCode", ""); vm.FC.Add("Entity.SignDate", ""); vm.FC.Add("Entity.ContractAmount", ""); vm.FC.Add("Entity.CostAmount", ""); vm.FC.Add("Entity.ContractCycle", ""); vm.FC.Add("Entity.ProjectManageId", ""); vm.FC.Add("Entity.GrossProfitMargin", ""); 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.CustomClass, wtmProject.Model.CustomClassEnum.Inside); Assert.AreEqual(data.ContractName, "ZLqSZU0IvuR4SmUpyxvRGCqrAkTjYszyEKunjfqrts4G7TobRAcr4pjLbq83eSuUj"); Assert.AreEqual(data.ContractCode, "s8Bf4IOCzEyf15RegORRzFoUqkPCPSxoEIqi8kgm"); Assert.AreEqual(data.SignDate, DateTime.Parse("2024-09-03 15:33:34")); Assert.AreEqual(data.ContractAmount, 35); Assert.AreEqual(data.CostAmount, 3); Assert.AreEqual(data.ContractCycle, wtmProject.Model.ContractCycleEnum.ThirdCycle); Assert.AreEqual(data.GrossProfitMargin, "lDLkYKzgOOhtFx"); Assert.AreEqual(data.UpdateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10); } } [TestMethod] public void GetTest() { WTM_CONTRACT v = new WTM_CONTRACT(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.CustomId = AddWTM_CUSTOM(); v.CustomClass = wtmProject.Model.CustomClassEnum.Inside; v.AreaId = AddWTM_AREA(); v.VisitObjectId = AddWTM_CUSTOM_PERSON(); v.MarkManageId = AddFrameworkUser(); v.ProjectId = AddWTM_PROJECT(); v.ContractName = "GuUPpCoSUm0acPdhfE6rFZxEC4l5o0o"; v.ContractCode = "hIytVohSedZtoXokbG07r5Uim0TULgqliC1RyekjTYv2AfR21nNavWa7I2JaTG9wO2rojDYGfWK0g"; v.SignDate = DateTime.Parse("2023-10-27 15:33:34"); v.ContractAmount = 79; v.CostAmount = 72; v.ContractCycle = wtmProject.Model.ContractCycleEnum.ThirdCycle; v.ProjectManageId = AddFrameworkUser(); v.GrossProfitMargin = "FA4jQDJJLX5IttsaomaVy7kWu6mnBL2lFWyClH"; context.Set().Add(v); context.SaveChanges(); } var rv = _controller.Get(v.ID.ToString()); Assert.IsNotNull(rv); } [TestMethod] public void BatchDeleteTest() { WTM_CONTRACT v1 = new WTM_CONTRACT(); WTM_CONTRACT v2 = new WTM_CONTRACT(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v1.CustomId = AddWTM_CUSTOM(); v1.CustomClass = wtmProject.Model.CustomClassEnum.Inside; v1.AreaId = AddWTM_AREA(); v1.VisitObjectId = AddWTM_CUSTOM_PERSON(); v1.MarkManageId = AddFrameworkUser(); v1.ProjectId = AddWTM_PROJECT(); v1.ContractName = "GuUPpCoSUm0acPdhfE6rFZxEC4l5o0o"; v1.ContractCode = "hIytVohSedZtoXokbG07r5Uim0TULgqliC1RyekjTYv2AfR21nNavWa7I2JaTG9wO2rojDYGfWK0g"; v1.SignDate = DateTime.Parse("2023-10-27 15:33:34"); v1.ContractAmount = 79; v1.CostAmount = 72; v1.ContractCycle = wtmProject.Model.ContractCycleEnum.ThirdCycle; v1.ProjectManageId = AddFrameworkUser(); v1.GrossProfitMargin = "FA4jQDJJLX5IttsaomaVy7kWu6mnBL2lFWyClH"; v2.CustomId = v1.CustomId; v2.CustomClass = wtmProject.Model.CustomClassEnum.Inside; v2.AreaId = v1.AreaId; v2.VisitObjectId = v1.VisitObjectId; v2.MarkManageId = v1.MarkManageId; v2.ProjectId = v1.ProjectId; v2.ContractName = "ZLqSZU0IvuR4SmUpyxvRGCqrAkTjYszyEKunjfqrts4G7TobRAcr4pjLbq83eSuUj"; v2.ContractCode = "s8Bf4IOCzEyf15RegORRzFoUqkPCPSxoEIqi8kgm"; v2.SignDate = DateTime.Parse("2024-09-03 15:33:34"); v2.ContractAmount = 35; v2.CostAmount = 3; v2.ContractCycle = wtmProject.Model.ContractCycleEnum.ThirdCycle; v2.ProjectManageId = v1.ProjectManageId; v2.GrossProfitMargin = "lDLkYKzgOOhtFx"; 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 = "EbJmhTsfbwc4eD"; v.AreaName = "MfFEZAVqdZDPVVx2UPEowUy"; 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 = "zEubt9fNFYIcPM8Z0GDt"; v.CustomShortName = "XgnO5POVIOO6RbkvdY9"; v.ParentUnit = "dbooTcBir8WLUYJEyRac9kww0Bwv7jJLyN"; v.AreaId = AddWTM_AREA(); v.EnterprisesType = wtmProject.Model.EnterprisesTypeEnum.Center; v.IndustryType = wtmProject.Model.IndustryTypeEnum.Tungsten; v.CustomClass = wtmProject.Model.CustomClassEnum.OutSide; 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 = "SYI6iqVL89ASNRo"; v.PersonPhone = "luQKGjMsIeXXxBJ26"; v.PersonPost = "hJPls2Dv1L81AsEXZC"; 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 = "DRMi6ADhMd1Cq1kswdNS0Ll9cdNW6o4g9l"; v.GroupName = "gfZKTPT7Y6B7lAEutQS4idUXR4WM"; v.GroupRemark = "sRThuSfRY"; v.Manager = "UJjDcpZAt"; 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 = "A4BCst4p1sL1BA8g"; v.FileExt = "hUE"; v.Path = "4"; v.Length = 59; v.UploadTime = DateTime.Parse("2023-09-27 15:33:34"); v.SaveMode = "d0k"; v.ExtraInfo = "h9gtsLoR7VWtjJGW"; v.HandlerInfo = "ni"; 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.Male; v.CellPhone = "P"; v.GroupId = AddFrameworkGroup(); v.DisplayOrder = 85; v.ITCode = "h1KPnxtVFUwopGKFFQiwl02XHU9sqlFcNGmWAGDKpC5vph1iw"; v.Password = "hjgpaQ"; v.Name = "dbSx4LBgahMk54qLjUmui3KoXNTupW"; v.IsValid = false; v.PhotoId = AddFileAttachment(); context.Set().Add(v); context.SaveChanges(); } catch{} } return v.ID; } private Guid AddWTM_PROJECT() { WTM_PROJECT v = new WTM_PROJECT(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { try{ v.ProjectCode = "IlRMtfFs46O31"; v.ProjectName = "bDMgH2PovARvOQ3sp0jgav0wr"; context.Set().Add(v); context.SaveChanges(); } catch{} } return v.ID; } } }