public async Task GetWeatherData_ShouldReturnWeatherData()
        {
            var controller = new WeatherDataController(new WeatherTestRepository());
            // Act on Test
            var actionResult = await controller.Get();

            Assert.IsInstanceOfType(actionResult, typeof(OkNegotiatedContentResult <string>));
        }
Example #2
0
        public void TestGetWeatherForInValidCityAPI()
        {  //Arrange
            MockWeatherDataService mockService = new MockWeatherDataService();
            WeatherDataController  service     = new WeatherDataController(mockService);

            //Act
            var result   = service.GetWeather("Australia", "Tokyo") as NotFoundObjectResult;
            var response = result.Value as string;

            //Asset
            Assert.AreEqual("Tokyo City does not exist in Australia", response);
        }
Example #3
0
        public void TestGetCitiesForInvalidCountryAPI()
        {  //Arrange
            MockWeatherDataService mockService = new MockWeatherDataService();
            WeatherDataController  service     = new WeatherDataController(mockService);

            //Act
            var result   = service.GetCities("Japan") as NotFoundObjectResult;
            var response = result.Value as string;

            //Asset
            Assert.AreEqual("Japan not found", response);
        }
Example #4
0
        public void TestGetCountriesAPI()
        {  //Arrange
            MockWeatherDataService mockService = new MockWeatherDataService();
            WeatherDataController  service     = new WeatherDataController(mockService);

            //Act
            var result      = service.GetCountries() as OkObjectResult;
            var countrylist = result.Value as List <string>;

            //Asset
            Assert.AreEqual(2, countrylist.Count);
        }
Example #5
0
        public void TestGetCitiesForAustraliaAPI()
        {  //Arrange
            MockWeatherDataService mockService = new MockWeatherDataService();
            WeatherDataController  service     = new WeatherDataController(mockService);

            //Act
            var result   = service.GetCities("Australia") as OkObjectResult;
            var citylist = result.Value as List <string>;
            //Asset
            var count = citylist.Where(city => new string[] { "Sydney", "Melbourne", "Perth" }.Contains(city)).ToList().Count();

            Assert.AreEqual(3, count);
        }
Example #6
0
        public void TestGetWeatherAPI()
        {  //Arrange
            MockWeatherDataService mockService = new MockWeatherDataService();
            WeatherDataController  service     = new WeatherDataController(mockService);
            CityWeatherData        sydneyData  = new CityWeatherData {
                Wind = "Strong", Pressure = "1008 hpa", SkyCondition = "Clear", Temperature = 31.3, Time = DateTime.Now.ToString(), Visibility = "Good"
            };

            //Act
            var result   = service.GetWeather("Australia", "Sydney") as OkObjectResult;
            var response = result.Value as CityWeatherData;

            //Asset
            Assert.AreEqual(sydneyData, response);
        }
Example #7
0
        public void TestMethodGetFailied()
        {
            var rep           = new Mock <IRepositoryBase>();
            var randGenerator = new Mock <IFaultyServiceSimulator>();

            randGenerator.Setup(m => m.CheckIfServiceIsFaulty()).Returns(true);

            var students = new List <WeatherInfo>
            {
                new WeatherInfo {
                    Id = 1, InfoDate = DateTime.Parse("2018-06-24"), TemperatureC = 32, Summary = "Scorching"
                },
                new WeatherInfo {
                    Id = 2, InfoDate = DateTime.Parse("2018-06-25"), TemperatureC = 45, Summary = "Mild"
                },
            }.AsQueryable <WeatherInfo>();

            WeatherDataController objWeatherDataController = new WeatherDataController(rep.Object, randGenerator.Object);
            var result     = objWeatherDataController.Get();
            var statuscode = (Microsoft.AspNetCore.Mvc.StatusCodeResult)result;

            Assert.AreEqual(500, statuscode.StatusCode);
        }
Example #8
0
        public void TestMethodGetSuccess()
        {
            var rep           = new Mock <IRepositoryBase>();
            var randGenerator = new Mock <IFaultyServiceSimulator>();

            randGenerator.Setup(m => m.CheckIfServiceIsFaulty()).Returns(false);

            var students = new List <WeatherInfo>
            {
                new WeatherInfo {
                    Id = 1, InfoDate = DateTime.Parse("2018-06-24"), TemperatureC = 32, Summary = "Scorching"
                },
                new WeatherInfo {
                    Id = 2, InfoDate = DateTime.Parse("2018-06-25"), TemperatureC = 45, Summary = "Mild"
                },
            }.AsQueryable <WeatherInfo>();

            WeatherDataController objWeatherDataController = new WeatherDataController(rep.Object, randGenerator.Object);
            var result         = objWeatherDataController.Get();
            var okObjectResult = result as OkObjectResult;

            Assert.IsNotNull(okObjectResult);
        }
Example #9
0
        public void TestSetup()
        {
            var configuration = new ConfigurationBuilder()
                                .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                                .AddEnvironmentVariables()
                                .Build();

            var services = new ServiceCollection();

            //services.AddLogging();
            services.AddMvc().AddJsonOptions(jsonOptions =>
            {
                jsonOptions.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
            });
            services.AddOptions();

            //services.Configure<AppSettings>(configuration.GetSection("AppSettings"));
            services.AddSingleton <IConfiguration>(configuration);
            ////services.AddTransient<IEmailSender, EmailSender>();

            //var options = Options.Create(configuration.GetSection("AppSettings").Get<AppSettings>());
            //var serviceProvider = services.BuildServiceProvider();
            //var loggerFactory = serviceProvider.GetService<ILoggerFactory>();
            //loggerFactory.AddConsole(configuration.GetSection("Logging"));
            //loggerFactory.AddDebug();
            //loggerFactory.AddTestsLogger(_testLogsStore);

            //var userManagerLogger = loggerFactory.CreateLogger<UserManager<ApplicationUser>>();

            var cache = new MemoryCache(new MemoryCacheOptions());

            _cache = cache;

            var mockHostingEnvironment = new Mock <IHostingEnvironment>(MockBehavior.Strict);


            var mockHttpContext = new Mock <HttpContext>(MockBehavior.Strict);

            //mockHttpContext.SetupGet(hc => hc.User).Returns(validPrincipal);
            //mockHttpContext.SetupGet(c => c.Items).Returns(_httpContextItems);
            mockHttpContext.SetupGet(ctx => ctx.RequestServices)
            //.Returns(serviceProvider)
            ;

            var collection = Mock.Of <IFormCollection>();
            var request    = new Mock <HttpRequest>();

            request.Setup(f => f.ReadFormAsync(CancellationToken.None)).Returns(Task.FromResult(collection));

            var mockHeader = new Mock <IHeaderDictionary>();

            mockHeader.Setup(h => h["X-Requested-With"]).Returns("XMLHttpRequest");
            request.SetupGet(r => r.Headers).Returns(mockHeader.Object);

            mockHttpContext.SetupGet(c => c.Request).Returns(request.Object);

            var response = new Mock <HttpResponse>();

            response.SetupProperty(it => it.StatusCode);

            mockHttpContext.Setup(c => c.Response).Returns(response.Object);

            _controller = new WeatherDataController(_cache);

            _controller.ControllerContext = new ControllerContext()
            {
                HttpContext = mockHttpContext.Object
            };
        }