public void AssertTest(string cityName = "", string districtName = "", string townName = "") { ViewResult result = controller.Region(); RegionViewModel viewModel = result.Model as RegionViewModel; Assert.IsNotNull(viewModel); if (!string.IsNullOrEmpty(cityName)) { viewModel.CityName = cityName; } if (!string.IsNullOrEmpty(districtName)) { viewModel.DistrictName = districtName; } if (!string.IsNullOrEmpty(townName)) { viewModel.TownName = townName; } controller.DeleteTown(viewModel); if (controller.TempData["error"] == null) { Assert.AreEqual(controller.TempData["success"].ToString(), viewModel.DeleteSuccessMessage); result = controller.Region(); viewModel = result.Model as RegionViewModel; Assert.IsNotNull(viewModel); Assert.IsNotNull(viewModel.CityList); Assert.IsNotNull(viewModel.DistrictList); Assert.IsNotNull(viewModel.TownList); Town town = townRepository.GetAll().First(); Assert.AreEqual(viewModel.CityName, town.CityName); Assert.AreEqual(viewModel.DistrictName, town.DistrictName); Assert.AreEqual(viewModel.TownName, town.TownName); Assert.AreEqual(viewModel.CityList.Count, service.QueryCount()); service = new QueryDistinctDistrictNamesService(townRepository.GetAll(), viewModel.CityName); Assert.AreEqual(viewModel.DistrictList.Count, service.QueryCount()); service = new QueryDistinctTownNamesService(townRepository.GetAll(), viewModel.CityName, viewModel.DistrictName); Assert.AreEqual(viewModel.TownList.Count, service.QueryCount()); } }