Полное тестирование

ВыполнитьПолноеТестированиеКомпоненты()

Процедура выполняет полное тестирование всех функций компонента. Можно использовать как сквозной пример.

Листинг:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Процедура ВыполнитьПолноеТестированиеКомпоненты()
     ПутьКомпоненты = "D:\websocket.dll";

     // ШАГ1. ТЕСТ КЛИЕНТА ЧЕРЕЗ ВНЕШНИЙ СЕРВИС
     АдресСервера = "wss://echo.websocket.org";

     Если НЕ ПодключитьВнешнююКомпоненту(ПутьКомпоненты, "websocket", ТипВнешнейКомпоненты.Native) Тогда
         СисИнфо = Новый СистемнаяИнформация;
         ОписаниеОшибки = НСтр("ru='Ошибка подключения компоненты ('") + СисИнфо.ТипПлатформы + "):
         |" + ОписаниеОшибки();

         ВызватьИсключение ОписаниеОшибки;
     КонецЕсли;

     Клиент = Новый("AddIn.WebSocket.Client");

     Попытка
         Клиент.Подключиться(Объект.АдресСервера);
     Исключение

         Описание = ОписаниеОшибки();
         ТекстОшибки =  Клиент.ОписаниеОшибки();

         ТекстОписания = Описание + ": " + ТекстОшибки;

         ВызватьИсключение ТекстОписания;

     КонецПопытки;


     Попытка
         Клиент.Подключиться(Объект.АдресСервера);
     Исключение
         ТекстОшибки =  Клиент.ОписаниеОшибки();

         Если найти(ТекстОшибки, "Подключение уже выполнено") = 0 Тогда

             ВызватьИсключение ТекстОписания;

         КонецЕсли;

     КонецПопытки;

     ДанныеОтправки = "ase1ЙЦУ";

     Клиент.Отправить(ДанныеОтправки);

     Данные = "";

     Принято = Клиент.Принять(0, Данные);

     Если НЕ Данные = ДанныеОтправки Тогда
         ВызватьИсключение "Приняты не те данные которые отправлены";
     КонецЕсли;

     Данные = "";
     Принято = Клиент.Принять(3000, Данные);

     Если Принято ИЛИ ЗначениеЗаполнено(Данные) Тогда
         ВызватьИсключение "Принято то что не дожно принматься";
     КонецЕсли;

     Клиент.Отключиться();
     Клиент.Отключиться();

     Клиент = Неопределено;

     Сообщить("Тестирование Шаг 1. Успешно пройдено");

     // ШАГ 2. ТЕСТ СОБСТВЕННОГО СЕРВЕРА И СОБСТВЕННЫХ КЛИЕНТОВ

     АдресПодключения = "127.0.0.1";
     ПортПодключения = 9098;

     Сервер = Новый(Объект.ПрефиксКомпоненты  + "Server");

     Попытка
         Сервер.Запустить(АдресПодключения, ПортПодключения);
     Исключение

         Описание = ОписаниеОшибки();
         ТекстОшибки =  Сервер.ОписаниеОшибки();

         ТекстОписания = Описание + ": " + ТекстОшибки;

         ВызватьИсключение ТекстОписания;

     КонецПопытки;

     Клиент1 = Новый(Объект.ПрефиксКомпоненты  + "Client");
     Клиент2 = Новый(Объект.ПрефиксКомпоненты  + "Client");

     СтрокаПодключения  = СтрШаблон("ws://%1:%2", АдресПодключения, Формат(ПортПодключения, "ЧГ=0"));

     Попытка
         Клиент1.Подключиться(СтрокаПодключения+"/first");
         Клиент2.Подключиться(СтрокаПодключения+"/testadr");
     Исключение

         Сервер.Остановить();

         Описание = ОписаниеОшибки();
         ТекстОшибки =  Клиент1.ОписаниеОшибки();
         ТекстОшибки = ТекстОшибки+ Клиент2.ОписаниеОшибки();

         ТекстОписания = Описание + ": " + ТекстОшибки;

         ВызватьИсключение ТекстОписания;

     КонецПопытки;

     ТекстОтправки = "ase1ЙЦУ";

     Клиент1.Отправить("ase1ЙЦУ");

     Данные = "";
     ИДКлиента = 0;

     Принято = Сервер.Принять(0, ИДКлиента, Данные);

     Результат = Сервер.Отключить(ИдКлиента);

     Клиент1 = Неопределено;
     Клиент2 = Неопределено;
     Сервер = Неопределено;

КонецПроцедуры