예제 #1
0
        public void Index()
        {
            // Arrange
            var controller = new HomeController();

            // Act
            var result = controller.Index() as ViewResult;

            // Assert
            Assert.AreEqual("Modify this template to jump-start your ASP.NET MVC application.", result.ViewBag.Message);
        }
예제 #2
0
        public void About()
        {
            // Arrange
            HomeController controller = new HomeController();

            // Act
            ViewResult result = controller.About() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
예제 #3
0
        public void FindDistinctLocations()
        {
            // Arrange
            HomeController controller = new HomeController();

            // Act
            JsonResult result = controller.FindDistinctLocations("Kalmar") as JsonResult;
            string[] resultString = (string[])result.Data;

            // Assert
            Assert.IsTrue(resultString.Contains("Kalmar"));
        }
예제 #4
0
        public void GetLatestData()
        {
            // Arrange
            var controller = new HomeController(new WeatherService(new WeatherRepository(new XmlDataSource("WeatherData.xml"))));

            // Act
            var result = controller.GetLatestData(new DataTable { iDisplayStart = 0, iDisplayLength = 1 }) as DataTableResult;

            // Assert
            Assert.AreEqual(1, result.aaData.Count());
            Assert.AreEqual(340, result.iTotalDisplayRecords);
            Assert.AreEqual(340, result.iTotalRecords);
        }
예제 #5
0
        public void IndexPost()
        {
            // Arrange
            HomeController controller = new HomeController();
            HomeIndexViewModel viewModel = new HomeIndexViewModel();
            viewModel.LocationName = "Kalmar";

            // Fake ajax request
            Mock<ControllerContext> controllerContext = new Mock<ControllerContext>();
            controllerContext.Setup(r => r.HttpContext.Request["X-Requested-With"]).Returns("XMLHttpRequest");
            controller.ControllerContext = controllerContext.Object;

            // Act
            PartialViewResult result = controller.Index(viewModel) as PartialViewResult;
            HomeIndexViewModel newViewModel = result.Model as HomeIndexViewModel;
            Assert.IsTrue(result.ViewName == "_LocationResult", "Wrong view returned");
            Assert.IsTrue(newViewModel.GeoNames.Count > 0, "No matches was found");
        }
예제 #6
0
        public void SearchStationWithDummyDataExpectsNoObject()
        {
            // Arrange
            var controller = new HomeController(new WeatherService(new WeatherRepository(new XmlDataSource("WeatherData.xml"))));

            // Act
            var result = controller.SearchStation(new SearchPanelViewModel
            {
                StationName = "this is test",
                FromDate = new DateTime(2010, 9, 30),
                ToDate = new DateTime(2010, 9, 30)
            }) as JsonResult;

            // Assert
            Assert.IsNotNull(result);
            var returnData = result.Data as List<Observation>;
            Assert.IsNotNull(returnData);
            Assert.AreEqual(0, returnData.Count());
        }
예제 #7
0
        public void SearchStationWithCorrectDataExpectsOneObservationObject()
        {
            // Arrange
            var controller = new HomeController(new WeatherService(new WeatherRepository(new XmlDataSource("WeatherData.xml"))));

            // Act
            var result = controller.SearchStation(new SearchPanelViewModel
                {
                    StationName = "adelong",
                    FromDate = new DateTime(2010, 9, 30),
                    ToDate = new DateTime(2010, 9, 30)
                }) as JsonResult;

            // Assert
            Assert.IsNotNull(result);
            var returnData = result.Data as List<Observation>;
            Assert.IsNotNull(returnData);
            Assert.AreEqual(1, returnData.Count());
            Assert.AreEqual("ADELONG POST OFFICE", returnData.FirstOrDefault().StationName);
        }
예제 #8
0
        public void Forecast()
        {
            // Arrange
            HomeController controller = new HomeController();

            // Faks ajax-request
            Mock<ControllerContext> controllerContext = new Mock<ControllerContext>();
            controllerContext.Setup(r => r.HttpContext.Request["X-Requested-With"]).Returns("XMLHttpRequest");
            controller.ControllerContext = controllerContext.Object;

            // Act
            HomeIndexViewModel viewModel = new HomeIndexViewModel();
            viewModel.Country = "Sweden";
            viewModel.CountyName = "Kalmar";
            viewModel.LocationName = "Kalmar";

            PartialViewResult result = controller.ForeCast(viewModel) as PartialViewResult;

            // Assert
            Assert.IsTrue(result.ViewName == "_ForeCast", "Returned partial view is not correct (_ForeCast)");
            Assert.IsNotNull(result, "ViewResult is null");
        }
예제 #9
0
        public void ViewDetail()
        {
            // Arrange
            var controller = new HomeController(new WeatherService(new WeatherRepository(new XmlDataSource("WeatherData.xml"))));

            // Act
            var result = controller.ViewDetail("ADELONG POST OFFICE") as ViewResult;

            // Assert
            Assert.IsNotNull(result);
            var returnModel = result.Model as WeatherDetailViewModel;
            Assert.IsNotNull(returnModel);
            Assert.AreEqual("ADELONG POST OFFICE", returnModel.StationName);
        }