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 cy_scdz.Controllers; using cy_scdz.ViewModel.BidOrder.OrderInfoVMs; using cy_scdz.Model.Oder; using cy_scdz.DataAccess; using cy_scdz.Model.Set; namespace cy_scdz.Test { [TestClass] public class OrderInfoControllerTest { private OrderInfoController _controller; private string _seed; public OrderInfoControllerTest() { _seed = Guid.NewGuid().ToString(); _controller = MockController.CreateController(new DataContext(_seed, DBTypeEnum.Memory), "user"); } [TestMethod] public void SearchTest() { PartialViewResult rv = (PartialViewResult)_controller.Index(); Assert.IsInstanceOfType(rv.Model, typeof(IBasePagedListVM)); string rv2 = _controller.Search((rv.Model as OrderInfoListVM).Searcher); Assert.IsTrue(rv2.Contains("\"Code\":200")); } [TestMethod] public void CreateTest() { PartialViewResult rv = (PartialViewResult)_controller.Create(); Assert.IsInstanceOfType(rv.Model, typeof(OrderInfoVM)); OrderInfoVM vm = rv.Model as OrderInfoVM; OrderInfo v = new OrderInfo(); v.Title = "YN6"; v.WinBidTime = DateTime.Parse("2024-12-12 11:17:22"); v.InitialDeliveryTime = DateTime.Parse("2024-06-30 11:17:22"); v.SemesterId = AddDictionary(); v.BidMoney = 24; v.SupplierId = AddDictionary(); v.BidTypeId = AddDictionary(); v.TenderAgentFee = 59; v.WorkbookCoverPaperTypeId = AddDictionary(); v.WorkbookInnerPaperTypeId = AddDictionary(); v.WorkbookColorTypeId = AddDictionary(); v.WorkbookBindingTypeId = AddDictionary(); v.WorkbookPageCount = 86; v.PictureBookCoverPaperTypeId = AddDictionary(); v.PictureBookInnerPaperTypeId = AddDictionary(); v.PictureBookColorTypeId = AddDictionary(); v.PictureBookBindingTypeId = AddDictionary(); v.PictureBookPageCount = 93; v.LargeCharacterBookCoverPaperTypeId = AddDictionary(); v.LargeCharacterBookInnerPaperTypeId = AddDictionary(); v.LargeCharacterBookColorTypeId = AddDictionary(); v.LargeCharacterBookBindingTypeId = AddDictionary(); v.LargeCharacterBookPageCount = 47; v.Workbook16K = 73; v.Workbook32K = 56; v.PictureBook16K = 16; v.PictureBook32K = 85; v.PictureBookA4 = 2; v.LargeCharacterBook = 36; vm.Entity = v; _controller.Create(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set().Find(v.ID); Assert.AreEqual(data.Title, "YN6"); Assert.AreEqual(data.WinBidTime, DateTime.Parse("2024-12-12 11:17:22")); Assert.AreEqual(data.InitialDeliveryTime, DateTime.Parse("2024-06-30 11:17:22")); Assert.AreEqual(data.BidMoney, 24); Assert.AreEqual(data.TenderAgentFee, 59); Assert.AreEqual(data.WorkbookPageCount, 86); Assert.AreEqual(data.PictureBookPageCount, 93); Assert.AreEqual(data.LargeCharacterBookPageCount, 47); Assert.AreEqual(data.Workbook16K, 73); Assert.AreEqual(data.Workbook32K, 56); Assert.AreEqual(data.PictureBook16K, 16); Assert.AreEqual(data.PictureBook32K, 85); Assert.AreEqual(data.PictureBookA4, 2); Assert.AreEqual(data.LargeCharacterBook, 36); Assert.AreEqual(data.CreateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10); } } [TestMethod] public void EditTest() { OrderInfo v = new OrderInfo(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.Title = "YN6"; v.WinBidTime = DateTime.Parse("2024-12-12 11:17:22"); v.InitialDeliveryTime = DateTime.Parse("2024-06-30 11:17:22"); v.SemesterId = AddDictionary(); v.BidMoney = 24; v.SupplierId = AddDictionary(); v.BidTypeId = AddDictionary(); v.TenderAgentFee = 59; v.WorkbookCoverPaperTypeId = AddDictionary(); v.WorkbookInnerPaperTypeId = AddDictionary(); v.WorkbookColorTypeId = AddDictionary(); v.WorkbookBindingTypeId = AddDictionary(); v.WorkbookPageCount = 86; v.PictureBookCoverPaperTypeId = AddDictionary(); v.PictureBookInnerPaperTypeId = AddDictionary(); v.PictureBookColorTypeId = AddDictionary(); v.PictureBookBindingTypeId = AddDictionary(); v.PictureBookPageCount = 93; v.LargeCharacterBookCoverPaperTypeId = AddDictionary(); v.LargeCharacterBookInnerPaperTypeId = AddDictionary(); v.LargeCharacterBookColorTypeId = AddDictionary(); v.LargeCharacterBookBindingTypeId = AddDictionary(); v.LargeCharacterBookPageCount = 47; v.Workbook16K = 73; v.Workbook32K = 56; v.PictureBook16K = 16; v.PictureBook32K = 85; v.PictureBookA4 = 2; v.LargeCharacterBook = 36; context.Set().Add(v); context.SaveChanges(); } PartialViewResult rv = (PartialViewResult)_controller.Edit(v.ID.ToString()); Assert.IsInstanceOfType(rv.Model, typeof(OrderInfoVM)); OrderInfoVM vm = rv.Model as OrderInfoVM; vm.Wtm.DC = new DataContext(_seed, DBTypeEnum.Memory); v = new OrderInfo(); v.ID = vm.Entity.ID; v.Title = "TukzhvPqNM2"; v.WinBidTime = DateTime.Parse("2024-06-29 11:17:22"); v.InitialDeliveryTime = DateTime.Parse("2025-06-30 11:17:22"); v.BidMoney = 63; v.TenderAgentFee = 64; v.WorkbookPageCount = 25; v.PictureBookPageCount = 23; v.LargeCharacterBookPageCount = 61; v.Workbook16K = 95; v.Workbook32K = 78; v.PictureBook16K = 34; v.PictureBook32K = 62; v.PictureBookA4 = 19; v.LargeCharacterBook = 38; vm.Entity = v; vm.FC = new Dictionary(); vm.FC.Add("Entity.Title", ""); vm.FC.Add("Entity.WinBidTime", ""); vm.FC.Add("Entity.InitialDeliveryTime", ""); vm.FC.Add("Entity.SemesterId", ""); vm.FC.Add("Entity.BidMoney", ""); vm.FC.Add("Entity.SupplierId", ""); vm.FC.Add("Entity.BidTypeId", ""); vm.FC.Add("Entity.TenderAgentFee", ""); vm.FC.Add("Entity.WorkbookCoverPaperTypeId", ""); vm.FC.Add("Entity.WorkbookInnerPaperTypeId", ""); vm.FC.Add("Entity.WorkbookColorTypeId", ""); vm.FC.Add("Entity.WorkbookBindingTypeId", ""); vm.FC.Add("Entity.WorkbookPageCount", ""); vm.FC.Add("Entity.PictureBookCoverPaperTypeId", ""); vm.FC.Add("Entity.PictureBookInnerPaperTypeId", ""); vm.FC.Add("Entity.PictureBookColorTypeId", ""); vm.FC.Add("Entity.PictureBookBindingTypeId", ""); vm.FC.Add("Entity.PictureBookPageCount", ""); vm.FC.Add("Entity.LargeCharacterBookCoverPaperTypeId", ""); vm.FC.Add("Entity.LargeCharacterBookInnerPaperTypeId", ""); vm.FC.Add("Entity.LargeCharacterBookColorTypeId", ""); vm.FC.Add("Entity.LargeCharacterBookBindingTypeId", ""); vm.FC.Add("Entity.LargeCharacterBookPageCount", ""); vm.FC.Add("Entity.Workbook16K", ""); vm.FC.Add("Entity.Workbook32K", ""); vm.FC.Add("Entity.PictureBook16K", ""); vm.FC.Add("Entity.PictureBook32K", ""); vm.FC.Add("Entity.PictureBookA4", ""); vm.FC.Add("Entity.LargeCharacterBook", ""); _controller.Edit(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set().Find(v.ID); Assert.AreEqual(data.Title, "TukzhvPqNM2"); Assert.AreEqual(data.WinBidTime, DateTime.Parse("2024-06-29 11:17:22")); Assert.AreEqual(data.InitialDeliveryTime, DateTime.Parse("2025-06-30 11:17:22")); Assert.AreEqual(data.BidMoney, 63); Assert.AreEqual(data.TenderAgentFee, 64); Assert.AreEqual(data.WorkbookPageCount, 25); Assert.AreEqual(data.PictureBookPageCount, 23); Assert.AreEqual(data.LargeCharacterBookPageCount, 61); Assert.AreEqual(data.Workbook16K, 95); Assert.AreEqual(data.Workbook32K, 78); Assert.AreEqual(data.PictureBook16K, 34); Assert.AreEqual(data.PictureBook32K, 62); Assert.AreEqual(data.PictureBookA4, 19); Assert.AreEqual(data.LargeCharacterBook, 38); Assert.AreEqual(data.UpdateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10); } } [TestMethod] public void DeleteTest() { OrderInfo v = new OrderInfo(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.Title = "YN6"; v.WinBidTime = DateTime.Parse("2024-12-12 11:17:22"); v.InitialDeliveryTime = DateTime.Parse("2024-06-30 11:17:22"); v.SemesterId = AddDictionary(); v.BidMoney = 24; v.SupplierId = AddDictionary(); v.BidTypeId = AddDictionary(); v.TenderAgentFee = 59; v.WorkbookCoverPaperTypeId = AddDictionary(); v.WorkbookInnerPaperTypeId = AddDictionary(); v.WorkbookColorTypeId = AddDictionary(); v.WorkbookBindingTypeId = AddDictionary(); v.WorkbookPageCount = 86; v.PictureBookCoverPaperTypeId = AddDictionary(); v.PictureBookInnerPaperTypeId = AddDictionary(); v.PictureBookColorTypeId = AddDictionary(); v.PictureBookBindingTypeId = AddDictionary(); v.PictureBookPageCount = 93; v.LargeCharacterBookCoverPaperTypeId = AddDictionary(); v.LargeCharacterBookInnerPaperTypeId = AddDictionary(); v.LargeCharacterBookColorTypeId = AddDictionary(); v.LargeCharacterBookBindingTypeId = AddDictionary(); v.LargeCharacterBookPageCount = 47; v.Workbook16K = 73; v.Workbook32K = 56; v.PictureBook16K = 16; v.PictureBook32K = 85; v.PictureBookA4 = 2; v.LargeCharacterBook = 36; context.Set().Add(v); context.SaveChanges(); } PartialViewResult rv = (PartialViewResult)_controller.Delete(v.ID.ToString()); Assert.IsInstanceOfType(rv.Model, typeof(OrderInfoVM)); OrderInfoVM vm = rv.Model as OrderInfoVM; v = new OrderInfo(); v.ID = vm.Entity.ID; vm.Entity = v; _controller.Delete(v.ID.ToString(),null); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set().Find(v.ID); Assert.AreEqual(data, null); } } [TestMethod] public void DetailsTest() { OrderInfo v = new OrderInfo(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.Title = "YN6"; v.WinBidTime = DateTime.Parse("2024-12-12 11:17:22"); v.InitialDeliveryTime = DateTime.Parse("2024-06-30 11:17:22"); v.SemesterId = AddDictionary(); v.BidMoney = 24; v.SupplierId = AddDictionary(); v.BidTypeId = AddDictionary(); v.TenderAgentFee = 59; v.WorkbookCoverPaperTypeId = AddDictionary(); v.WorkbookInnerPaperTypeId = AddDictionary(); v.WorkbookColorTypeId = AddDictionary(); v.WorkbookBindingTypeId = AddDictionary(); v.WorkbookPageCount = 86; v.PictureBookCoverPaperTypeId = AddDictionary(); v.PictureBookInnerPaperTypeId = AddDictionary(); v.PictureBookColorTypeId = AddDictionary(); v.PictureBookBindingTypeId = AddDictionary(); v.PictureBookPageCount = 93; v.LargeCharacterBookCoverPaperTypeId = AddDictionary(); v.LargeCharacterBookInnerPaperTypeId = AddDictionary(); v.LargeCharacterBookColorTypeId = AddDictionary(); v.LargeCharacterBookBindingTypeId = AddDictionary(); v.LargeCharacterBookPageCount = 47; v.Workbook16K = 73; v.Workbook32K = 56; v.PictureBook16K = 16; v.PictureBook32K = 85; v.PictureBookA4 = 2; v.LargeCharacterBook = 36; context.Set().Add(v); context.SaveChanges(); } PartialViewResult rv = (PartialViewResult)_controller.Details(v.ID.ToString()); Assert.IsInstanceOfType(rv.Model, typeof(IBaseCRUDVM)); Assert.AreEqual(v.ID, (rv.Model as IBaseCRUDVM).Entity.GetID()); } [TestMethod] public void BatchEditTest() { OrderInfo v1 = new OrderInfo(); OrderInfo v2 = new OrderInfo(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v1.Title = "YN6"; v1.WinBidTime = DateTime.Parse("2024-12-12 11:17:22"); v1.InitialDeliveryTime = DateTime.Parse("2024-06-30 11:17:22"); v1.SemesterId = AddDictionary(); v1.BidMoney = 24; v1.SupplierId = AddDictionary(); v1.BidTypeId = AddDictionary(); v1.TenderAgentFee = 59; v1.WorkbookCoverPaperTypeId = AddDictionary(); v1.WorkbookInnerPaperTypeId = AddDictionary(); v1.WorkbookColorTypeId = AddDictionary(); v1.WorkbookBindingTypeId = AddDictionary(); v1.WorkbookPageCount = 86; v1.PictureBookCoverPaperTypeId = AddDictionary(); v1.PictureBookInnerPaperTypeId = AddDictionary(); v1.PictureBookColorTypeId = AddDictionary(); v1.PictureBookBindingTypeId = AddDictionary(); v1.PictureBookPageCount = 93; v1.LargeCharacterBookCoverPaperTypeId = AddDictionary(); v1.LargeCharacterBookInnerPaperTypeId = AddDictionary(); v1.LargeCharacterBookColorTypeId = AddDictionary(); v1.LargeCharacterBookBindingTypeId = AddDictionary(); v1.LargeCharacterBookPageCount = 47; v1.Workbook16K = 73; v1.Workbook32K = 56; v1.PictureBook16K = 16; v1.PictureBook32K = 85; v1.PictureBookA4 = 2; v1.LargeCharacterBook = 36; v2.Title = "TukzhvPqNM2"; v2.WinBidTime = DateTime.Parse("2024-06-29 11:17:22"); v2.InitialDeliveryTime = DateTime.Parse("2025-06-30 11:17:22"); v2.SemesterId = v1.SemesterId; v2.BidMoney = 63; v2.SupplierId = v1.SupplierId; v2.BidTypeId = v1.BidTypeId; v2.TenderAgentFee = 64; v2.WorkbookCoverPaperTypeId = v1.WorkbookCoverPaperTypeId; v2.WorkbookInnerPaperTypeId = v1.WorkbookInnerPaperTypeId; v2.WorkbookColorTypeId = v1.WorkbookColorTypeId; v2.WorkbookBindingTypeId = v1.WorkbookBindingTypeId; v2.WorkbookPageCount = 25; v2.PictureBookCoverPaperTypeId = v1.PictureBookCoverPaperTypeId; v2.PictureBookInnerPaperTypeId = v1.PictureBookInnerPaperTypeId; v2.PictureBookColorTypeId = v1.PictureBookColorTypeId; v2.PictureBookBindingTypeId = v1.PictureBookBindingTypeId; v2.PictureBookPageCount = 23; v2.LargeCharacterBookCoverPaperTypeId = v1.LargeCharacterBookCoverPaperTypeId; v2.LargeCharacterBookInnerPaperTypeId = v1.LargeCharacterBookInnerPaperTypeId; v2.LargeCharacterBookColorTypeId = v1.LargeCharacterBookColorTypeId; v2.LargeCharacterBookBindingTypeId = v1.LargeCharacterBookBindingTypeId; v2.LargeCharacterBookPageCount = 61; v2.Workbook16K = 95; v2.Workbook32K = 78; v2.PictureBook16K = 34; v2.PictureBook32K = 62; v2.PictureBookA4 = 19; v2.LargeCharacterBook = 38; context.Set().Add(v1); context.Set().Add(v2); context.SaveChanges(); } PartialViewResult rv = (PartialViewResult)_controller.BatchDelete(new string[] { v1.ID.ToString(), v2.ID.ToString() }); Assert.IsInstanceOfType(rv.Model, typeof(OrderInfoBatchVM)); OrderInfoBatchVM vm = rv.Model as OrderInfoBatchVM; vm.Ids = new string[] { v1.ID.ToString(), v2.ID.ToString() }; vm.FC = new Dictionary(); _controller.DoBatchEdit(vm, null); 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.UpdateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data1.UpdateTime.Value).Seconds < 10); Assert.AreEqual(data2.UpdateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data2.UpdateTime.Value).Seconds < 10); } } [TestMethod] public void BatchDeleteTest() { OrderInfo v1 = new OrderInfo(); OrderInfo v2 = new OrderInfo(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v1.Title = "YN6"; v1.WinBidTime = DateTime.Parse("2024-12-12 11:17:22"); v1.InitialDeliveryTime = DateTime.Parse("2024-06-30 11:17:22"); v1.SemesterId = AddDictionary(); v1.BidMoney = 24; v1.SupplierId = AddDictionary(); v1.BidTypeId = AddDictionary(); v1.TenderAgentFee = 59; v1.WorkbookCoverPaperTypeId = AddDictionary(); v1.WorkbookInnerPaperTypeId = AddDictionary(); v1.WorkbookColorTypeId = AddDictionary(); v1.WorkbookBindingTypeId = AddDictionary(); v1.WorkbookPageCount = 86; v1.PictureBookCoverPaperTypeId = AddDictionary(); v1.PictureBookInnerPaperTypeId = AddDictionary(); v1.PictureBookColorTypeId = AddDictionary(); v1.PictureBookBindingTypeId = AddDictionary(); v1.PictureBookPageCount = 93; v1.LargeCharacterBookCoverPaperTypeId = AddDictionary(); v1.LargeCharacterBookInnerPaperTypeId = AddDictionary(); v1.LargeCharacterBookColorTypeId = AddDictionary(); v1.LargeCharacterBookBindingTypeId = AddDictionary(); v1.LargeCharacterBookPageCount = 47; v1.Workbook16K = 73; v1.Workbook32K = 56; v1.PictureBook16K = 16; v1.PictureBook32K = 85; v1.PictureBookA4 = 2; v1.LargeCharacterBook = 36; v2.Title = "TukzhvPqNM2"; v2.WinBidTime = DateTime.Parse("2024-06-29 11:17:22"); v2.InitialDeliveryTime = DateTime.Parse("2025-06-30 11:17:22"); v2.SemesterId = v1.SemesterId; v2.BidMoney = 63; v2.SupplierId = v1.SupplierId; v2.BidTypeId = v1.BidTypeId; v2.TenderAgentFee = 64; v2.WorkbookCoverPaperTypeId = v1.WorkbookCoverPaperTypeId; v2.WorkbookInnerPaperTypeId = v1.WorkbookInnerPaperTypeId; v2.WorkbookColorTypeId = v1.WorkbookColorTypeId; v2.WorkbookBindingTypeId = v1.WorkbookBindingTypeId; v2.WorkbookPageCount = 25; v2.PictureBookCoverPaperTypeId = v1.PictureBookCoverPaperTypeId; v2.PictureBookInnerPaperTypeId = v1.PictureBookInnerPaperTypeId; v2.PictureBookColorTypeId = v1.PictureBookColorTypeId; v2.PictureBookBindingTypeId = v1.PictureBookBindingTypeId; v2.PictureBookPageCount = 23; v2.LargeCharacterBookCoverPaperTypeId = v1.LargeCharacterBookCoverPaperTypeId; v2.LargeCharacterBookInnerPaperTypeId = v1.LargeCharacterBookInnerPaperTypeId; v2.LargeCharacterBookColorTypeId = v1.LargeCharacterBookColorTypeId; v2.LargeCharacterBookBindingTypeId = v1.LargeCharacterBookBindingTypeId; v2.LargeCharacterBookPageCount = 61; v2.Workbook16K = 95; v2.Workbook32K = 78; v2.PictureBook16K = 34; v2.PictureBook32K = 62; v2.PictureBookA4 = 19; v2.LargeCharacterBook = 38; context.Set().Add(v1); context.Set().Add(v2); context.SaveChanges(); } PartialViewResult rv = (PartialViewResult)_controller.BatchDelete(new string[] { v1.ID.ToString(), v2.ID.ToString() }); Assert.IsInstanceOfType(rv.Model, typeof(OrderInfoBatchVM)); OrderInfoBatchVM vm = rv.Model as OrderInfoBatchVM; vm.Ids = new string[] { v1.ID.ToString(), v2.ID.ToString() }; _controller.DoBatchDelete(vm, null); 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); } } [TestMethod] public void ExportTest() { PartialViewResult rv = (PartialViewResult)_controller.Index(); Assert.IsInstanceOfType(rv.Model, typeof(IBasePagedListVM)); IActionResult rv2 = _controller.ExportExcel(rv.Model as OrderInfoListVM); Assert.IsTrue((rv2 as FileContentResult).FileContents.Length > 0); } private Guid AddDictionary() { Dictionary v = new Dictionary(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { try{ v.Name = "Kq0grvnItm2Q15wH9u12gh49oGL"; v.Key = "8deHrntDJE5Rcs4zx"; v.Value = "z9CtDjBQ9Sh9Qc5Sm0PZQ5LIStCE3AsNKvhQ7QHh0SC7YSjw73iVwi3gaxjRVg1LyhDaS9zRPueG8f8mKkSMH5HVcIc2JbVIczQZiVqL0ZcuEHpNVgwan2GAaIucvw6Gr1Ksn2ZsRJlLCiaRz2zieMfU9ca84s42jBw"; v.IsEn = false; context.Set().Add(v); context.SaveChanges(); } catch{} } return v.ID; } } }