// Метод для получения списка адресатов, подписанных на событие private List<string> GetLinkList(string linkName, string eventName) { List<string> linkList = new List<string>(); try { // Создаем подключение к БД using (NotificationServiceDbContext nsDbContext = new NotificationServiceDbContext()) { // Если нужна рассылка по EMail if (linkName == "Email") linkList = (from item in nsDbContext.Destinations where (item.EventName == eventName || item.EventName == "All") select item.EMail).ToList<string>(); // Если нужна рассылка по SMS if (linkName == "SMS") linkList = (from item in nsDbContext.Destinations where (item.EventName == eventName || item.EventName == "All") select item.Telephone).ToList<string>(); } } catch (Exception ex) { // Запись данных об ошибке в лог-файл LittleLogger.Error(ex.Message); } return linkList; }
// Конструктор public NotificationService() { try { // Создаем подключение к БД using (NotificationServiceDbContext nsDbContext = new NotificationServiceDbContext()) { // Устанаваливаем стратегию инициализации БД Database.SetInitializer(new NotificationServiceDbInitializer()); // Инициализируем БД, наполняя тестовыми данными через метод Seed nsDbContext.Database.Initialize(false); } } catch (Exception ex) { // Запись данных об ошибке в лог-файл NotificationHelper.GetInstance().LittleLogger.Error(ex.Message); } }
public void SmsSenderTest() { // Создаем подключение к БД using (NotificationServiceDbContext nsDbContext = new NotificationServiceDbContext()) { // Устанаваливаем стратегию инициализации БД Database.SetInitializer(new NotificationServiceDbInitializerTest()); // Инициализируем БД, наполняя тестовыми данными через метод Seed nsDbContext.Database.Initialize(true); // Очищаем файл с данными совершенных тестовых рассылок using (StreamWriter streamWriter = new StreamWriter("SMS.txt")) { streamWriter.Write(""); } // Рассылка сообщений адресатам на номер телефона по SMS string eventName_1 = "Php"; string eventName_2 = "CSharp"; string message = "test_message"; NotificationHelper.GetInstance().SmsSender( eventName_1, message); NotificationHelper.GetInstance().SmsSender( eventName_2, message); // Утверждение для тестовых данных в таблице Destination using (StreamReader streamReader = new StreamReader("SMS.txt")) { Assert.AreEqual("[+76892563565]:[Php][test_message]", streamReader.ReadLine()); Assert.AreEqual("[+78568963526]:[Php][test_message]", streamReader.ReadLine()); Assert.AreEqual("[+74569683625]:[CSharp][test_message]", streamReader.ReadLine()); Assert.AreEqual("[+78568963526]:[CSharp][test_message]", streamReader.ReadLine()); } } }
public void DbInitializationTest() { // Создаем БД и наполняем тестовыми данными using (NotificationServiceDbContext nsDbContext = new NotificationServiceDbContext()) { // Устанаваливаем стратегию инициализации БД Database.SetInitializer(new NotificationServiceDbInitializerTest()); // Инициализируем БД, наполняя тестовыми данными через метод Seed nsDbContext.Database.Initialize(true); // В таблицах БД записи отсортированы по primary key в ascending порядке, // поэтому после заполнения таблиц БД тестовыми данными должны быть // верны утверждения: // для таблицы LinkList Assert.AreEqual("All", nsDbContext.LinkLists.ToList<LinkList>()[0].LinkName); Assert.AreEqual("EMail", nsDbContext.LinkLists.ToList<LinkList>()[1].LinkName); Assert.AreEqual("SMS", nsDbContext.LinkLists.ToList<LinkList>()[2].LinkName); // для таблицы EventList Assert.AreEqual("All", nsDbContext.EventLists.ToList<EventList>()[0].EventName); Assert.AreEqual("CSharp", nsDbContext.EventLists.ToList<EventList>()[1].EventName); Assert.AreEqual("Php", nsDbContext.EventLists.ToList<EventList>()[2].EventName); // для таблицы Priority Assert.AreEqual("Critical", nsDbContext.Priorities.ToList<Priority>()[0].PriorityType); Assert.AreEqual("Low", nsDbContext.Priorities.ToList<Priority>()[1].PriorityType); Assert.AreEqual("Middle", nsDbContext.Priorities.ToList<Priority>()[2].PriorityType); // для таблицы Destination Assert.AreEqual("Programmer_1", nsDbContext.Destinations.ToList<Destination>()[0].DestinationName); Assert.AreEqual("Programmer_2", nsDbContext.Destinations.ToList<Destination>()[1].DestinationName); Assert.AreEqual("Programmer_3", nsDbContext.Destinations.ToList<Destination>()[2].DestinationName); } }