Example #1
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();
        }
        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);
        }