public void dbReadWriteTest() { bool actual_result = false; using (AOSDB aos_db = new AOSDB()) { // Формируем объект класса AOS_KL_PRODUCT_CLASS AOS_KL_PRODUCT_CLASS product_class = new AOS_KL_PRODUCT_CLASS(); product_class.PK_AOS_ID_PRODUCT_CLASS = 4; product_class.PRODUCT_CLASS_NAME_RU = "Напитки"; product_class.PRODUCT_CLASS_NAME_EN = "Drinks"; // Добавляем объект и сохраняем его в БД aos_db.AOS_KL_PRODUCT_CLASS.Add(product_class); aos_db.SaveChanges(); // Проверяем добавилась ли строка в таблицу // AOS_KL_PRODUCT_CLASS foreach (var item in aos_db.AOS_KL_PRODUCT_CLASS) if (item == product_class) actual_result = true; Assert.AreEqual(true, actual_result); // Удаляем строку из БД aos_db.AOS_KL_PRODUCT_CLASS.Remove(product_class); aos_db.SaveChanges(); // Проверяем удалилась ли строка из таблицы // AOS_KL_PRODUCT_CLASS actual_result = false; foreach (var item in aos_db.AOS_KL_PRODUCT_CLASS) if (item == product_class) actual_result = true; Assert.AreNotEqual(true, actual_result); } }
// Конструктор public Order(string menu_client_id, int client_id, string present_order_consist, string history_order_consist, decimal order_worth) { // Формируем данные заказа для сохранения в БД AOS_BD_ORDER order = new AOS_BD_ORDER(); order.ORDER_EMENU_CLIENT_ID = menu_client_id; order.FK_AOS_ID_CLIENT = client_id; order.ORDER_DATE_TIME_BEGIN = DateTime.Now; order.ORDER_DATE_TIME_END = DateTime.Now; order.ORDER_PRESENT_CONSIST = present_order_consist; order.ORDER_HISTORY_CONSIST = history_order_consist; order.ORDER_STATE = "opened"; order.ORDER_WORTH = order_worth; // Добавляем заказ в БД using (AOSDB aos_db = new AOSDB()) { aos_db.AOS_BD_ORDER.Add(order); aos_db.SaveChanges(); _Order_ID = order.PK_AOS_ID_ORDER; } }
// Метод для расчета скидки клиента, // исходя из общей суммы заказов клиента public void setClientDiscount() { // Если клиент не аноним if (_Client_ID != 0) { using (AOSDB aos_db = new AOSDB()) { // Список сумм всех заказов клиента в БД List<string> client_order_worth = (from item in aos_db.AOS_BD_ORDER.ToList<AOS_BD_ORDER>(). AsParallel<AOS_BD_ORDER>() where item.FK_AOS_ID_CLIENT == _Client_ID select item.ORDER_WORTH.ToString()).ToList<string>(); // Сумма всех сумм заказов клиента double client_order_sum = 0; foreach (string item in client_order_worth) client_order_sum += Convert.ToDouble(item); // За каждые 10.000 рублей плюс 1% к скидке byte discount_modifier = (byte)Math.Floor(client_order_sum / 10000); // Находим элемент в таблице с клиентами в БД с ID = _Client_ID AOS_KL_CLIENT client = (from item in aos_db.AOS_KL_CLIENT.ToList<AOS_KL_CLIENT>() .AsParallel<AOS_KL_CLIENT>() where (item.PK_AOS_ID_CLIENT == _Client_ID) select item).Single(); // Устанавливаем новую скидку client.CLIENT_DISCOUNT += discount_modifier; aos_db.SaveChanges(); } } }
// Метод для обновления содержания заказа public bool updateOrderContent(int client_id, string present_order_consist, string history_order_consist, decimal order_worth) { try { using (AOSDB aos_db = new AOSDB()) { // Ищем заказ в таблице заказов в БД с ID = _Order_ID AOS_BD_ORDER order_info = (from item in aos_db.AOS_BD_ORDER.ToList<AOS_BD_ORDER>() .AsParallel<AOS_BD_ORDER>() where item.PK_AOS_ID_ORDER == _Order_ID select item).ToList<AOS_BD_ORDER>().Single(); order_info.FK_AOS_ID_CLIENT = client_id; order_info.ORDER_PRESENT_CONSIST = present_order_consist; order_info.ORDER_HISTORY_CONSIST = history_order_consist; order_info.ORDER_WORTH = order_worth; // Сохраняем данные aos_db.SaveChanges(); } } // Если обновление заказа не удалось catch (Exception) { return false; } return true; }
// Метод для закрытия заказа public void closeOrder() { using (AOSDB aos_db = new AOSDB()) { // Ищем заказ в таблице заказов в БД с ID = _Order_ID AOS_BD_ORDER order_info = (from item in aos_db.AOS_BD_ORDER.ToList<AOS_BD_ORDER>() .AsParallel<AOS_BD_ORDER>() where item.PK_AOS_ID_ORDER == _Order_ID select item).ToList<AOS_BD_ORDER>().Single(); order_info.ORDER_DATE_TIME_END = DateTime.Now; order_info.ORDER_STATE = "ended"; order_info.ORDER_PRESENT_CONSIST = ""; // Сохраняем данные aos_db.SaveChanges(); } }
public void OrderTest() { // Тест конструктора // Ожидаемые данные string expected_menu_client_id = "1"; int expected_client_id = 23456; string expected_present_order_consist = "[{" + '"' + "id" + '"' + ":" + '"' + '5' + '"' + ',' + '"' + "count" + '"' + ':' + '"' + '1' + '"' + "}]"; string expected_history_order_consist = "[{" + '"' + "id" + '"' + ":" + '"' + '5' + '"' + ',' + '"' + "count" + '"' + ':' + '"' + '6' + '"' + "}]"; string expected_order_state = "opened"; decimal expected_order_worth = 2100.00M; // Создаем объект заказа Order order = new Order(expected_menu_client_id, expected_client_id, expected_present_order_consist, expected_history_order_consist, expected_order_worth); // Полученные данные using (AOSDB aos_db = new AOSDB()) { // Ищем заказ в таблице заказов в БД с ID // равным ID заказа AOS_BD_ORDER order_info = (from item in aos_db.AOS_BD_ORDER.ToList<AOS_BD_ORDER>() .AsParallel<AOS_BD_ORDER>() where item.PK_AOS_ID_ORDER == order.Order_ID select item).ToList<AOS_BD_ORDER>().Single(); // Утверждения Assert.AreEqual(expected_menu_client_id, order_info.ORDER_EMENU_CLIENT_ID); Assert.AreEqual(expected_client_id, order_info.FK_AOS_ID_CLIENT); Assert.AreEqual(expected_present_order_consist, order_info.ORDER_PRESENT_CONSIST); Assert.AreEqual(expected_history_order_consist, order_info.ORDER_HISTORY_CONSIST); Assert.AreEqual(expected_order_state, order.getOrderState()); Assert.AreEqual(expected_order_worth, order_info.ORDER_WORTH); } // Тест обновления данных заказа // Ожидаемые данные expected_client_id = 34567; expected_present_order_consist = "[{" + '"' + "id" + '"' + ":" + '"' + '5' + '"' + ',' + '"' + "count" + '"' + ':' + '"' + '6' + '"' + "}]"; expected_history_order_consist = "[{" + '"' + "id" + '"' + ":" + '"' + '5' + '"' + ',' + '"' + "count" + '"' + ':' + '"' + "12" + '"' + "}]"; expected_order_worth = 4200.00M; // Обновляем данные о заказе order.updateOrderContent(expected_client_id, expected_present_order_consist, expected_history_order_consist, expected_order_worth); // Полученные данные using (AOSDB aos_db = new AOSDB()) { // Ищем заказ в таблице заказов в БД с ID // равным ID заказа AOS_BD_ORDER order_info = (from item in aos_db.AOS_BD_ORDER.ToList<AOS_BD_ORDER>() .AsParallel<AOS_BD_ORDER>() where item.PK_AOS_ID_ORDER == order.Order_ID select item).ToList<AOS_BD_ORDER>().Single(); // Утверждения Assert.AreEqual(expected_present_order_consist, order_info.ORDER_PRESENT_CONSIST); Assert.AreEqual(expected_history_order_consist, order_info.ORDER_HISTORY_CONSIST); Assert.AreEqual(expected_order_worth, order_info.ORDER_WORTH); } // Тест закрытия заказа // Ожидаемые данные expected_order_state = "ended"; // Закрываем заказ order.closeOrder(); // Полученные данные using (AOSDB aos_db = new AOSDB()) { // Ищем заказ в таблице заказов в БД с ID // равным ID заказа AOS_BD_ORDER order_info = (from item in aos_db.AOS_BD_ORDER.ToList<AOS_BD_ORDER>() .AsParallel<AOS_BD_ORDER>() where item.PK_AOS_ID_ORDER == order.Order_ID select item).ToList<AOS_BD_ORDER>().Single(); // Утверждения Assert.AreEqual(expected_order_state, order.getOrderState()); // Очищаем БД от добавленного тестового значения aos_db.AOS_BD_ORDER.Remove(order_info); aos_db.SaveChanges(); } }
public void ClientTest() { // Тест конструктора // Ожидаемые данные, взяты из тестовой БД AOS.DB.test int expected_client_id_1 = 23456; string expected_client_fio_1 = "Новиков Павел Николаевич"; string expected_client_phone_1 = "+79084682576"; string expected_client_discount_1 = "0,05"; int expected_client_id_2 = 0; string expected_client_fio_2 = "anonymous"; string expected_client_phone_2 = "none"; string expected_client_discount_2 = "1"; // Полученные данные Client client_1 = new Client(23456); int actual_client_id_1 = client_1.Client_ID; string actual_client_fio_1 = client_1.Client_FIO; string actual_client_phone_1 = client_1.Client_Phone; string actual_client_discount_1 = client_1.getClientDiscount(); Client client_2 = new Client(2345689); int actual_client_id_2 = client_2.Client_ID; string actual_client_fio_2 = client_2.Client_FIO; string actual_client_phone_2 = client_2.Client_Phone; string actual_client_discount_2 = client_2.getClientDiscount(); // Утверждения Assert.AreEqual(expected_client_id_1, actual_client_id_1); Assert.AreEqual(expected_client_fio_1, actual_client_fio_1); Assert.AreEqual(expected_client_phone_1, actual_client_phone_1); Assert.AreEqual(expected_client_discount_1, actual_client_discount_1); Assert.AreEqual(expected_client_id_2, actual_client_id_2); Assert.AreEqual(expected_client_fio_2, actual_client_fio_2); Assert.AreEqual(expected_client_phone_2, actual_client_phone_2); Assert.AreEqual(expected_client_discount_2, actual_client_discount_2); // Тест установки размера скидки // Ожидаемые данные expected_client_discount_1 = "0,08"; // Полученные данные client_1.setClientDiscount(); actual_client_discount_1 = client_1.getClientDiscount(); // Утверждения Assert.AreEqual(expected_client_discount_1, actual_client_discount_1); // Возвращаем значения в БД к прежним using (AOSDB aos_db = new AOSDB()) { // Находим элемент в таблице с клиентами в БД с ID = 23456 AOS_KL_CLIENT client = (from item in aos_db.AOS_KL_CLIENT.ToList<AOS_KL_CLIENT>() .AsParallel<AOS_KL_CLIENT>() where (item.PK_AOS_ID_CLIENT == 23456) select item).Single(); // Возвращаем значение на старте теста client.CLIENT_DISCOUNT = 5; aos_db.SaveChanges(); } }
public void MenuSessionTest_1() { // Тест конструктора MenuSession menu_session = new MenuSession(); // Переключаем язык menu_session.switchMenuLang(); // Ожидаемые данные string expected_lang_menu_flag = "EN"; // Полученные данные string actual_lang_menu_flag = menu_session.lang_menu_flag; // Утверждения Assert.AreEqual(expected_lang_menu_flag, actual_lang_menu_flag); // Переключаем язык menu_session.switchMenuLang(); // Ожидаемые данные expected_lang_menu_flag = "RU"; // Полученные данные actual_lang_menu_flag = menu_session.lang_menu_flag; // Утверждения Assert.AreEqual(expected_lang_menu_flag, actual_lang_menu_flag); // Тест авторизации клиента // Ожидаемые данные Client expected_client = new Client(0); bool expected_auth_flag = false; // Попытка авторизации в меню существующего клиента bool actual_auth_flag = menu_session.tryUserAuth(12); // Утверждения Assert.AreEqual(expected_client.Client_FIO, menu_session.Current_Client.Client_FIO); Assert.AreEqual(expected_auth_flag, actual_auth_flag); // Ожидаемые данные expected_client = new Client(34567); expected_auth_flag = true; // Попытка авторизации в меню существующего клиента actual_auth_flag = menu_session.tryUserAuth(34567); // Утверждения Assert.AreEqual(expected_client.Client_FIO, menu_session.Current_Client.Client_FIO); Assert.AreEqual(expected_auth_flag, actual_auth_flag); // Тест создания заказа // Ожидаемые данные string expected_menu_client_id = "1"; int expected_client_id = menu_session.Current_Client.Client_ID; string expected_present_order_consist = "[{" + '"' + "id" + '"' + ":" + '"' + '5' + '"' + ',' + '"' + "count" + '"' + ':' + '"' + '1' + '"' + "}]"; string expected_history_order_consist = "[{" + '"' + "id" + '"' + ":" + '"' + '5' + '"' + ',' + '"' + "count" + '"' + ':' + '"' + '6' + '"' + "}]"; string expected_order_state = "opened"; decimal expected_order_worth = 2100.00M; // Создаем заказ menu_session.createOrder(expected_menu_client_id, expected_client_id, expected_present_order_consist, expected_history_order_consist, expected_order_worth); // Утверждения Assert.AreEqual(expected_order_state, menu_session.Current_Order.getOrderState()); // Тест отправки сообщения // Ожидаемые данные int expected_msg_client_id = 34567; int expected_msg_order_id = menu_session.Current_Order.Order_ID; string expected_msg_reciever = "cook"; string expected_msg_body = "Сообщене для повара"; // Посылаем сообщение menu_session.sendMessage(expected_msg_reciever, expected_msg_body); using (AOSDB aos_db = new AOSDB()) { AOS_BD_MESSAGE message = (from item in aos_db.AOS_BD_MESSAGE select item).Single(); // Утверждения Assert.AreEqual(expected_msg_client_id, message.FK_AOS_ID_CLIENT); Assert.AreEqual(expected_msg_order_id, message.FK_AOS_ID_ORDER); Assert.AreEqual(expected_msg_reciever, message.MESSAGE_RECIVIER_ID); Assert.AreEqual(expected_msg_body, message.MESSAGE_BODY); // Очищаем таблицу от тестовых данных aos_db.AOS_BD_MESSAGE.Remove(message); aos_db.SaveChanges(); } // Тест запроса на вызов сотрудника // Ожидаемые данные string expected_emenu_client_id = "0.1apb5njklfp"; int expected_call_client_id = 34567; int expected_call_order_id = menu_session.Current_Order.Order_ID; string expected_employee_id = "admin"; // Посылаем запрос на вызов сотрудника menu_session.callStaff(expected_emenu_client_id, expected_employee_id); using (AOSDB aos_db = new AOSDB()) { AOS_BD_CALL_QUEUE call = (from item in aos_db.AOS_BD_CALL_QUEUE select item).Single(); // Утверждения Assert.AreEqual(expected_emenu_client_id, call.CALL_QUEUE_EMENU_CLIENT_ID); Assert.AreEqual(expected_call_client_id, call.FK_AOS_ID_CLIENT); Assert.AreEqual(expected_call_order_id, call.FK_AOS_ID_ORDER); Assert.AreEqual(expected_employee_id, call.CALL_QUEUE_EMPLOYEE_ID); // Очищаем таблицу от тестовых данных aos_db.AOS_BD_CALL_QUEUE.Remove(call); aos_db.SaveChanges(); } // Просим счет menu_session.getBill(); }
// Метод для отправки сообщения public bool sendMessage(string msg_destination, string message_body) { try { using (AOSDB aos_db = new AOSDB()) { // Формируем данные для отправки сообщения AOS_BD_MESSAGE message = new AOS_BD_MESSAGE(); message.FK_AOS_ID_CLIENT = _Current_Client == null ? 0 : _Current_Client.Client_ID; if (_Current_Order != null) message.FK_AOS_ID_ORDER = _Current_Order.Order_ID; message.MESSAGE_RECIVIER_ID = msg_destination; message.MESSAGE_DATE_TIME = DateTime.Now; message.MESSAGE_BODY = message_body; // Добавляем сообщение aos_db.AOS_BD_MESSAGE.Add(message); aos_db.SaveChanges(); } } // Если отправка не удалась catch (Exception) { return false; } return true; }
// Метод для вызова сотрудника public bool callStaff(string emenu_client_id, string employee_id) { try { using (AOSDB aos_db = new AOSDB()) { // Формируем данные для для запроса на вызов сотрудника AOS_BD_CALL_QUEUE call = new AOS_BD_CALL_QUEUE(); call.CALL_QUEUE_EMENU_CLIENT_ID = emenu_client_id; call.FK_AOS_ID_CLIENT = _Current_Client == null ? 0 : _Current_Client.Client_ID; if (_Current_Order != null) call.FK_AOS_ID_ORDER = _Current_Order.Order_ID; call.CALL_QUEUE_DATE_TIME = DateTime.Now; call.CALL_QUEUE_EMPLOYEE_ID = employee_id; // Добавляем сообщение aos_db.AOS_BD_CALL_QUEUE.Add(call); aos_db.SaveChanges(); } } // Если вызов не удался catch (Exception) { return false; } return true; }
// Метод для сохранения рейта в БД public bool setProductRate(byte product_rate) { try { using (AOSDB aos_db = new AOSDB()) { // Находим элемент в таблице с рейтами БД с ID = _Product_ID AOS_BD_PRODUCT_RATE product_rate_list = (from item in aos_db.AOS_BD_PRODUCT_RATE.ToList<AOS_BD_PRODUCT_RATE>() .AsParallel<AOS_BD_PRODUCT_RATE>() where (item.PK_AOS_ID_PRODUCT == _Product_ID) select item).Single(); // В зависимости от product_rate сохраняем значение в БД // в таблицу с рейтами switch (product_rate) { case 0: ++product_rate_list.PRODUCT_RATE_0; break; case 1: ++product_rate_list.PRODUCT_RATE_1; break; case 2: ++product_rate_list.PRODUCT_RATE_2; break; case 3: ++product_rate_list.PRODUCT_RATE_3; break; case 4: ++product_rate_list.PRODUCT_RATE_4; break; case 5: ++product_rate_list.PRODUCT_RATE_5; break; default: break; } aos_db.SaveChanges(); } } // Если не удалось сохранить рейт catch (Exception) { return false; } return true; }