public void HttpGetRequestTest()
        {
            LittleLogger logger =
                new LittleLogger("../../Test_Data/HttpGetRequestTest/log.txt");
            WeatherService wService = new WeatherService(logger);
            
            // Результат запроса
            string str1 = wService.Request("http://yandex.ru/");
            string str2 = wService.Request("http://news.yandex.ru/");

            // Сохраним результат запроса в файл
            using (StreamWriter writer =
                new StreamWriter("../../Test_Data/HttpGetRequestTest/request_1.htm"))
            {
                writer.Write(str1);
            }
            using (StreamWriter writer =
                new StreamWriter("../../Test_Data/HttpGetRequestTest/request_2.htm"))
            {
                writer.Write(str2);
            }

            // Содержат ли результат запроса заданные элементы
            StringAssert.Contains(str1, "https://disk.yandex.ru/");
            StringAssert.Contains(str2, "Яндекс.Новости: Главные новости");
        }              
        public void LogWriteTest()
        {
            LittleLogger logger =
                new LittleLogger("../../Test_Data/LogWriteTest/log.txt");

            // Очищаем файл с логами от записей
            logger.ClearLog();

            // Список ошибок
            List<string> errorList = new List<string>();
            errorList.Add("02.06.2014:12.12.12 Ошибочка 1 вышла!");
            errorList.Add("02.07.2015:12.16.18 Ошибочка 1 не вышла!");

            // Запись ошибок в лог файл
            foreach (string error in errorList)
                logger.WriteLog(error);

            // Сравниваем ожидаемые и фактические значения
            using (StreamReader reader =
                new StreamReader("../../Test_Data/LogWriteTest/log.txt"))
            {
                int i = 0;
                while (!reader.EndOfStream)
                {
                    Assert.AreEqual(errorList[i], reader.ReadLine());
                    ++i;
                }
            }
        }
        public void GetWeatherTest()
        {
            // Чистим файлы с погодными данными
            List<string> weatherLogList = new List<string>();
            weatherLogList.Add("../../Test_Data/GetWeatherTest/yahoo.txt");
            weatherLogList.Add("../../Test_Data/GetWeatherTest/yandex.txt");
            foreach (string logfile in weatherLogList)
                using (StreamWriter writer =
                        new StreamWriter(logfile))
                {
                    writer.Write("");
                }

            // Список городов для сбора погодных данных
            List<City> citylist = new List<City>();
            Dictionary<string, string> idlist = new Dictionary<string, string>();
            // Челябинск
            idlist["Yahoo"] = "1997422";
            idlist["Yandex"] = "28642";
            City city1 = new City("Челябинск", idlist);
            citylist.Add(city1);
            // Москва
            idlist["Yahoo"] = "2122265";
            idlist["Yandex"] = "27612";
            City city2 = new City("Москва", idlist);
            citylist.Add(city2);
            
            // Собираем погодные данные для списка городов
            LittleLogger logger =
                new LittleLogger("../../Test_Data/GetWeatherTest/log.txt");
            WeatherService wService = new WeatherService(logger);
            WeatherReader wReader = new WeatherReader(logger);
            foreach (City city in citylist)
            {
                // Погода с Yahoo! Weather
                wService.WeatherData = wReader.getYahooWeather(city);
                using (StreamWriter writer = new StreamWriter(weatherLogList[0], true))
                {
                    writer.WriteLine(city.Name + ':');
                    foreach (var item in wService.WeatherData)
                        writer.WriteLine("{0}: {1}", item.Key, item.Value);
                    writer.WriteLine();
                }

                // Погода с Яндекс Погода
                wService.WeatherData = wReader.getYandexWeather(city);
                using (StreamWriter writer = new StreamWriter(weatherLogList[1], true))
                {
                    writer.WriteLine(city.Name + ':');
                    foreach (var item in wService.WeatherData)
                        writer.WriteLine("{0}: {1}", item.Key, item.Value);
                    writer.WriteLine();
                }
            }
        }
Esempio n. 4
0
        // Конструктор (список городов для мониторинга погоды, промежуток сбора
        // погодных данных, путь до файла с логами, список строк подключения к БД)
        public WeatherBot(List<City> citylist, int timeout,
                    LittleLogger logger, List<string> cnctstrlist)
        {
            CityList = citylist;
            TimeOut = timeout;
            Logger = logger;
            CnctStrList = cnctstrlist;

            wReader = new WeatherReader(Logger);
            wWriter = new WeatherWriter(Logger);
        }
        public void WeatherBotTest()
        {
            // Строки подключения к БД
            List<string> cnctstrlist = new List<string>();
            //Создаем подключение к БД и чистим таблицы БД            
            EntityConnectionStringBuilder ConnectionString = new EntityConnectionStringBuilder();
            ConnectionString.ProviderConnectionString =
                @"data source=../../Test_Data/WeatherBotTest/YahooWeatherDB.sqlite";
            ConnectionString.Provider = @"System.Data.SQLite";
            ConnectionString.Metadata =
                @"res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl";
            cnctstrlist.Add(ConnectionString.ToString());
            LittleLogger logger =
                new LittleLogger("../../Test_Data/WeatherBotTest/log.txt");
            WeatherWriter wWriter = new WeatherWriter(logger);
            wWriter.ClearData(ConnectionString.ToString());
            ConnectionString.ProviderConnectionString =
                @"data source=../../Test_Data/WeatherBotTest/YandexWeatherDB.sqlite";
            cnctstrlist.Add(ConnectionString.ToString());
            wWriter.ClearData(ConnectionString.ToString());

            // Формируем список городов для мониторинга
            // погодных данных
            List<City> CityList = new List<City>();
            Dictionary<string, string> idlist = new Dictionary<string, string>();
            // Челябинск                            
            idlist["Yahoo"] = "1997422";
            idlist["Yandex"] = "28642";
            City city1 = new City("Челябинск", idlist);
            CityList.Add(city1);
            // Москва
            idlist["Yahoo"] = "2122265";
            idlist["Yandex"] = "27612";
            City city2 = new City("Москва", idlist);
            CityList.Add(city2);
            // Самара
            idlist["Yahoo"] = "2077746";
            idlist["Yandex"] = "28807";
            City city3 = new City("Самара", idlist);
            CityList.Add(city3);

            // Интервал сбора погодных данных
            int timeout = 0;                        

            // Создаем погодного бота для одноразовго сбора погодных данных
            WeatherBot wBot = new WeatherBot(CityList, timeout,
                                             logger, cnctstrlist);
            wBot.Start();
        }
Esempio n. 6
0
 // Конструктор
 public WeatherWriter(LittleLogger logger)
 {
     Logger = logger;
 }
Esempio n. 7
0
 // Конструктор        
 public WeatherService(LittleLogger logger)
 {
     Logger = logger;
 }
Esempio n. 8
0
 //Конструктор
 public WeatherReader(LittleLogger loggger)
 {
     Logger = loggger;
 }
        public void SaveWeatherToDBTest_1()
        {
            //Создаем подключение к БД и чистим таблицы БД            
            EntityConnectionStringBuilder ConnectionString = new EntityConnectionStringBuilder();
            ConnectionString.ProviderConnectionString =
                @"data source=../../Test_Data/SaveWeatherToDBTest_1/testDB.sqlite";
            ConnectionString.Provider = @"System.Data.SQLite";
            ConnectionString.Metadata =
                @"res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl";
            LittleLogger logger =
                new LittleLogger("../../Test_Data/SaveWeatherToDBTest_1/log.txt");
            WeatherWriter wWriter = new WeatherWriter(logger);
            wWriter.ClearData(ConnectionString.ToString());

            // Формируем погодные данные для записи в таблицы БД
            WeatherService wService = new WeatherService(logger);
            wService.WeatherData.Add("Date", "Tue, 17 Jun 2014 12:29 pm MSK");
            wService.WeatherData.Add("Temperature", "17C");
            wService.WeatherData.Add("Pressure", "982.05millibars");
            wService.WeatherData.Add("Wetness", "52%");
            wService.WeatherData.Add("Wind", "Direction: 210deegres. | 25.75km/h");
            wService.WeatherData.Add("Clouds", "Mostly Cloudy");

            // Сохраняем погодные данные в таблицы БД
            wWriter.City1Save(ConnectionString.ToString(), wService.WeatherData);
            wWriter.City2Save(ConnectionString.ToString(), wService.WeatherData);
            wWriter.City3Save(ConnectionString.ToString(), wService.WeatherData);

            // Создаем подключение к БД и извлекаем данные из таблиц
            WeatherDBEntity WeatherDB = new WeatherDBEntity(ConnectionString.ToString());
            // Данные из 1-ой таблицы
            WeatherService wService_t1 = new WeatherService(logger);
            wService_t1.WeatherData.Add("Date",
                WeatherDB.City1Entity.ToList<City1Entity>()[0].Date);
            wService_t1.WeatherData.Add("Temperature",
                WeatherDB.City1Entity.ToList<City1Entity>()[0].Temperature);
            wService_t1.WeatherData.Add("Pressure",
                WeatherDB.City1Entity.ToList<City1Entity>()[0].Pressure);
            wService_t1.WeatherData.Add("Wetness",
                WeatherDB.City1Entity.ToList<City1Entity>()[0].Wetness);
            wService_t1.WeatherData.Add("Wind",
                WeatherDB.City1Entity.ToList<City1Entity>()[0].Wind);
            wService_t1.WeatherData.Add("Clouds",
                WeatherDB.City1Entity.ToList<City1Entity>()[0].Clouds);
            // Данные из 2-ой таблицы
            WeatherService wService_t2 = new WeatherService(logger);
            wService_t2.WeatherData.Add("Date",
                WeatherDB.City2Entity.ToList<City2Entity>()[0].Date);
            wService_t2.WeatherData.Add("Temperature",
                WeatherDB.City2Entity.ToList<City2Entity>()[0].Temperature);
            wService_t2.WeatherData.Add("Pressure",
                WeatherDB.City2Entity.ToList<City2Entity>()[0].Pressure);
            wService_t2.WeatherData.Add("Wetness",
                WeatherDB.City2Entity.ToList<City2Entity>()[0].Wetness);
            wService_t2.WeatherData.Add("Wind",
                WeatherDB.City2Entity.ToList<City2Entity>()[0].Wind);
            wService_t2.WeatherData.Add("Clouds",
                WeatherDB.City2Entity.ToList<City2Entity>()[0].Clouds);
            // Данные из 3-ой таблицы
            WeatherService wService_t3 = new WeatherService(logger);
            wService_t3.WeatherData.Add("Date",
                WeatherDB.City3Entity.ToList<City3Entity>()[0].Date);
            wService_t3.WeatherData.Add("Temperature",
                WeatherDB.City3Entity.ToList<City3Entity>()[0].Temperature);
            wService_t3.WeatherData.Add("Pressure",
                WeatherDB.City3Entity.ToList<City3Entity>()[0].Pressure);
            wService_t3.WeatherData.Add("Wetness",
                WeatherDB.City3Entity.ToList<City3Entity>()[0].Wetness);
            wService_t3.WeatherData.Add("Wind",
                WeatherDB.City3Entity.ToList<City3Entity>()[0].Wind);
            wService_t3.WeatherData.Add("Clouds",
                WeatherDB.City3Entity.ToList<City3Entity>()[0].Clouds);

            // Сравниваем ожидаемые и фактические значения
            CollectionAssert.AreEqual(wService.WeatherData, wService_t1.WeatherData);
            CollectionAssert.AreEqual(wService.WeatherData, wService_t2.WeatherData);
            CollectionAssert.AreEqual(wService.WeatherData, wService_t3.WeatherData);
        }