Пусть для конвертации валюты ЦБ предоставляет следующий сервис:
/// <summary>
/// Производит конвертацию валюты
/// </summary>
/// <param name="from">ISO код исходной валюты</param>
/// <param name="to">ISO код целевой валюты</param>
/// <returns>Коэффициент перевода</returns>
[WebMethod]
public double Convert(string from, string to)
{
}
В поставленной задаче конвертация всегда производится из долларов в рубли, поэтому эти значения можно использовать в качестве констант для создания сообщения вызова веб-сервиса ЦБ:
CurrencyReq.from = "USD";
CurrencyReq.to = "RUR";
Полученный после вызова веб-сервиса курс перевода используется для модификации суммы заказа, которая в эту оркестровку передается в качестве входного и выходного параметра:
Sum = Sum * CurrencyRes.ConvertResult;
Таким образом, эта оркестровка описывается довольно простой схемой:
Рис. 8.9. Схема оркестровки перевода валюты.
8.2.5 Тестирование работоспособности приложения
Для проверки работоспособности системы был создан тестовый пример, состоящий из трех заказов:
|
|
1. Заказ с большим количеством товаров, заведомо превышающим количество доступных товаров в интернет-магазине.
2. Заказ с неверными номерами товаров, которые не содержатся в каталоге товаров фирмы-поставщика.
3. Заказ с верными номерами товаров, указанных в доступном для заказа количестве.
Функция «OrdersReload» веб-сервиса ERP системы предприятия была модифицирована таким образом, чтобы заполнять очередь заказов данными из тестового примера. В результате запуска приложения при помощи стартового сообщения были получены следующие результаты:
1. Во время регистрации заказа в интернет-магазине произошла ошибка «NotEnoughGoods», в результате чего транзакция была отменена и затем вызвана функция удаления заказа из очереди ERP системы со статусом «successfully = False».
2. Во время регистрации заказа в интернет-магазине произошла ошибка «WrongGoodId», в результате чего транзакция была отменена и затем вызвана функция удаления заказа из очереди ERP системы со статусом «successfully = False».
3. Регистрация заказ в интернет-магазине прошла успешно, затем была вызвана функция конвертации полученной суммы заказа из валюты «USD» в «RUR». После этого веб-сервис платежной системы получил запрос на перевод соответствующей суммы в рублях со счета компании на счет фирмы-поставщика. Заказ был удалее из очереди со статусом «successfully = True».
Кроме вызовов операций веб-сервисов с соответствующими параметрами, которое можно было наблюдать в режиме отладки, результатом работы созданного приложения является набор записей в системном логе, содержащий отладочную информацию о функционировании системы, например о статусе заказа: «Order status is: WrongGoodId».