public void TestAddTown_EmptyInput()
 {
     controller                = new RegionController(repository.Object, null, null, null);
     viewModel.CityName        = "Foshan";
     viewModel.NewCityName     = "";
     viewModel.DistrictName    = "";
     viewModel.NewDistrictName = "";
     viewModel.TownName        = "";
     viewModel.NewTownName     = "";
     controller.AddTown(viewModel);
     Assert.AreEqual(controller.TempData["error"], "输入有误!城市、区域、镇区都不能为空。");
 }
        public void AssertTest(int cityId    = 0, int districtId    = 0, int townId    = 0,
                               int newCityId = 0, int newDistrictId = 0, int newTownId = 0)
        {
            ViewResult      result    = controller.Region();
            RegionViewModel viewModel = result.Model as RegionViewModel;

            Assert.IsNotNull(viewModel);
            Assert.AreEqual(viewModel.CityName, townRepository.GetAll().First().CityName);
            Assert.AreEqual(viewModel.DistrictName, townRepository.GetAll().First().DistrictName);
            Assert.AreEqual(viewModel.TownName, townRepository.GetAll().First().TownName);

            UpdateServices(viewModel);
            Assert.AreEqual(viewModel.CityList.Count, cityService.QueryCount());
            Assert.AreEqual(viewModel.DistrictList.Count, districtService.QueryCount());
            Assert.AreEqual(viewModel.TownList.Count, townService.QueryCount());

            Town addConditions
                = SetAddConditions(cityId, districtId, townId, newCityId, newDistrictId, newTownId, viewModel);

            controller.AddTown(viewModel);

            if (addConditions.IsAddConditionsValid())
            {
                Assert.IsNull(controller.TempData["error"]);
                Assert.AreEqual(controller.TempData["success"].ToString(),
                                "增加镇街:" + addConditions.GetAddConditionsInfo() + "成功");
                result    = controller.Region();
                viewModel = result.Model as RegionViewModel;
                Assert.IsNotNull(viewModel);
                Assert.IsNotNull(viewModel.CityList);
                Assert.IsNotNull(viewModel.DistrictList);
                Assert.IsNotNull(viewModel.TownList);
                Assert.AreEqual(viewModel.CityName, addConditions.CityName);
                Assert.AreEqual(viewModel.DistrictName, addConditions.DistrictName);
                Assert.AreEqual(viewModel.TownName, addConditions.TownName);

                UpdateServices(viewModel);
                Assert.AreEqual(viewModel.CityList.Count, cityService.QueryCount());
                Assert.AreEqual(viewModel.DistrictList.Count, districtService.QueryCount());
                Assert.AreEqual(viewModel.TownList.Count, townService.QueryCount());
            }
            else
            {
                Assert.AreEqual(controller.TempData["error"].ToString(),
                                "输入有误!城市、区域、镇区都不能为空。");
            }
        }
        public void TestAddTown_NormalInput(string cityName, string districtName, string townName)
        {
            controller                = new RegionController(repository.Object, null, null, null);
            viewModel.CityName        = cityName;
            viewModel.NewCityName     = "";
            viewModel.DistrictName    = "";
            viewModel.NewDistrictName = districtName;
            viewModel.TownName        = "";
            viewModel.NewTownName     = townName;
            Assert.AreEqual(repository.Object.Count(), 0);
            controller.AddTown(viewModel);
            IQueryable <Town> resultTowns = repository.Object.GetAll();

            Assert.AreEqual(resultTowns.Count(), 1);
            Assert.AreEqual(resultTowns.ElementAt(0).CityName, cityName);
            Assert.AreEqual(resultTowns.ElementAt(0).DistrictName, districtName);
            Assert.AreEqual(resultTowns.ElementAt(0).TownName, townName);
        }