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.dictionary.DictionaryVMs; using cy_scdz.Model.Set; using cy_scdz.DataAccess; namespace cy_scdz.Test { [TestClass] public class DictionaryControllerTest { private SetingController _controller; private string _seed; public DictionaryControllerTest() { _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 DictionaryListVM).Searcher); Assert.IsTrue(rv2.Contains("\"Code\":200")); } [TestMethod] public void CreateTest() { PartialViewResult rv = (PartialViewResult)_controller.Create(); Assert.IsInstanceOfType(rv.Model, typeof(DictionaryVM)); DictionaryVM vm = rv.Model as DictionaryVM; Dictionary v = new Dictionary(); v.Name = "b"; v.Key = "xMrl9"; v.Value = "EywYKwZjnxDmyQVwVYph9bYpAudrE9fseXiODivU84zBNHxqZv7ztyImrm4bTwJHFxtTfnJfwnwkWtP9LQeWCjwoO0sKPFEz3KD5Ni6QzJViWgOZjbDtvCCAOM3Md"; v.IsEn = true; v.ParentId = AddDictionary(); vm.Entity = v; _controller.Create(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set().Find(v.ID); Assert.AreEqual(data.Name, "b"); Assert.AreEqual(data.Key, "xMrl9"); Assert.AreEqual(data.Value, "EywYKwZjnxDmyQVwVYph9bYpAudrE9fseXiODivU84zBNHxqZv7ztyImrm4bTwJHFxtTfnJfwnwkWtP9LQeWCjwoO0sKPFEz3KD5Ni6QzJViWgOZjbDtvCCAOM3Md"); Assert.AreEqual(data.IsEn, true); } } [TestMethod] public void EditTest() { Dictionary v = new Dictionary(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.Name = "b"; v.Key = "xMrl9"; v.Value = "EywYKwZjnxDmyQVwVYph9bYpAudrE9fseXiODivU84zBNHxqZv7ztyImrm4bTwJHFxtTfnJfwnwkWtP9LQeWCjwoO0sKPFEz3KD5Ni6QzJViWgOZjbDtvCCAOM3Md"; v.IsEn = true; v.ParentId = AddDictionary(); context.Set().Add(v); context.SaveChanges(); } PartialViewResult rv = (PartialViewResult)_controller.Edit(v.ID.ToString()); Assert.IsInstanceOfType(rv.Model, typeof(DictionaryVM)); DictionaryVM vm = rv.Model as DictionaryVM; vm.Wtm.DC = new DataContext(_seed, DBTypeEnum.Memory); v = new Dictionary(); v.ID = vm.Entity.ID; v.Name = "QsFRU0Hrpj0paqSATzzz7bBy7XUEiXX3n2ochswiODO"; v.Key = "xpZrS27u53"; v.Value = "guWhKhfl1PVouMDiYmcgkvledon5IsxDS1OmRCXsI7DN5NMIKex21a9FdhlIzkPnMebXpH5Lvb2kOk0ADso6eGecpBYjRnFQcZopebKAQp1q7XghV67Mbqe7Uy"; v.IsEn = false; vm.Entity = v; vm.FC = new Dictionary(); vm.FC.Add("Entity.Name", ""); vm.FC.Add("Entity.Key", ""); vm.FC.Add("Entity.Value", ""); vm.FC.Add("Entity.IsEn", ""); vm.FC.Add("Entity.ParentId", ""); _controller.Edit(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set().Find(v.ID); Assert.AreEqual(data.Name, "QsFRU0Hrpj0paqSATzzz7bBy7XUEiXX3n2ochswiODO"); Assert.AreEqual(data.Key, "xpZrS27u53"); Assert.AreEqual(data.Value, "guWhKhfl1PVouMDiYmcgkvledon5IsxDS1OmRCXsI7DN5NMIKex21a9FdhlIzkPnMebXpH5Lvb2kOk0ADso6eGecpBYjRnFQcZopebKAQp1q7XghV67Mbqe7Uy"); Assert.AreEqual(data.IsEn, false); } } [TestMethod] public void DeleteTest() { Dictionary v = new Dictionary(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.Name = "b"; v.Key = "xMrl9"; v.Value = "EywYKwZjnxDmyQVwVYph9bYpAudrE9fseXiODivU84zBNHxqZv7ztyImrm4bTwJHFxtTfnJfwnwkWtP9LQeWCjwoO0sKPFEz3KD5Ni6QzJViWgOZjbDtvCCAOM3Md"; v.IsEn = true; v.ParentId = AddDictionary(); context.Set().Add(v); context.SaveChanges(); } PartialViewResult rv = (PartialViewResult)_controller.Delete(v.ID.ToString()); Assert.IsInstanceOfType(rv.Model, typeof(DictionaryVM)); DictionaryVM vm = rv.Model as DictionaryVM; v = new Dictionary(); 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() { Dictionary v = new Dictionary(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.Name = "b"; v.Key = "xMrl9"; v.Value = "EywYKwZjnxDmyQVwVYph9bYpAudrE9fseXiODivU84zBNHxqZv7ztyImrm4bTwJHFxtTfnJfwnwkWtP9LQeWCjwoO0sKPFEz3KD5Ni6QzJViWgOZjbDtvCCAOM3Md"; v.IsEn = true; v.ParentId = AddDictionary(); 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() { Dictionary v1 = new Dictionary(); Dictionary v2 = new Dictionary(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v1.Name = "b"; v1.Key = "xMrl9"; v1.Value = "EywYKwZjnxDmyQVwVYph9bYpAudrE9fseXiODivU84zBNHxqZv7ztyImrm4bTwJHFxtTfnJfwnwkWtP9LQeWCjwoO0sKPFEz3KD5Ni6QzJViWgOZjbDtvCCAOM3Md"; v1.IsEn = true; v1.ParentId = AddDictionary(); v2.Name = "QsFRU0Hrpj0paqSATzzz7bBy7XUEiXX3n2ochswiODO"; v2.Key = "xpZrS27u53"; v2.Value = "guWhKhfl1PVouMDiYmcgkvledon5IsxDS1OmRCXsI7DN5NMIKex21a9FdhlIzkPnMebXpH5Lvb2kOk0ADso6eGecpBYjRnFQcZopebKAQp1q7XghV67Mbqe7Uy"; v2.IsEn = false; v2.ParentId = v1.ParentId; 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(DictionaryBatchVM)); DictionaryBatchVM vm = rv.Model as DictionaryBatchVM; 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); } } [TestMethod] public void BatchDeleteTest() { Dictionary v1 = new Dictionary(); Dictionary v2 = new Dictionary(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v1.Name = "b"; v1.Key = "xMrl9"; v1.Value = "EywYKwZjnxDmyQVwVYph9bYpAudrE9fseXiODivU84zBNHxqZv7ztyImrm4bTwJHFxtTfnJfwnwkWtP9LQeWCjwoO0sKPFEz3KD5Ni6QzJViWgOZjbDtvCCAOM3Md"; v1.IsEn = true; v1.ParentId = AddDictionary(); v2.Name = "QsFRU0Hrpj0paqSATzzz7bBy7XUEiXX3n2ochswiODO"; v2.Key = "xpZrS27u53"; v2.Value = "guWhKhfl1PVouMDiYmcgkvledon5IsxDS1OmRCXsI7DN5NMIKex21a9FdhlIzkPnMebXpH5Lvb2kOk0ADso6eGecpBYjRnFQcZopebKAQp1q7XghV67Mbqe7Uy"; v2.IsEn = false; v2.ParentId = v1.ParentId; 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(DictionaryBatchVM)); DictionaryBatchVM vm = rv.Model as DictionaryBatchVM; 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); } } private Guid AddDictionary() { Dictionary v = new Dictionary(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { try{ v.Name = "SP8IclP"; v.Key = "dpuu"; v.Value = "umUUGsNG3WGFIQnAVwzjcLncu32tsbKnwmsdNxeZP20qaqTdQ2Soi1J2k5Y2x68gHiUOv"; v.IsEn = false; context.Set().Add(v); context.SaveChanges(); } catch{} } return v.ID; } } }