da12a9ec1c
- bj_exchange и «кран» Fancy убраны: данные модуля ЛК в PostgreSQL (схема lk) - трансферные таблицы FTV_M2M: создание при установке, события, справочник участников - сверка с DEPO: счёт, ФИО, дата рождения, ИИС по договору, квал-инвестор из опции DEPO - боевой ЛК ЕСИА Финанс при тестовом ИШ: журнал, отказ через DEPO, статусы в ЛК - онлайн-лицензирование в bj, план тестирования M2M для контрагента (интерактивный HTML) - модули QUIK МНП, экспорт QUIK, НПР/УДС; документы и тестовые материалы Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
41 lines
1.7 KiB
Go
41 lines
1.7 KiB
Go
package lkgateway
|
|
|
|
import (
|
|
"context"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
// Данные заявки ЛК на входе не бракуются: заявка забирается и уходит в журнал, решает
|
|
// проверка шлюза (сверка с DEPO) и формат НРД.
|
|
func TestLKClaimAcceptedForGatewayCheck(t *testing.T) {
|
|
rc, err := NewRuntimeConfig(filepath.Join(t.TempDir(), "setup.json"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
cases := []struct {
|
|
name string
|
|
data map[string]any
|
|
}{
|
|
{"ISIN из ЛК-стенда (8 символов)", map[string]any{"paper": map[string]any{"name": "СБЕР", "isin": "RU123321", "registration_number": "321123"}, "paper_count": 1.0}},
|
|
{"ISIN длиннее 12", map[string]any{"paper": map[string]any{"isin": "RU0009029540X"}, "paper_count": 1.0}},
|
|
{"иностранная бумага", map[string]any{"paper": map[string]any{"isin": "US0378331005"}, "paper_count": 1.0}},
|
|
{"нет бумаги", map[string]any{"paper": map[string]any{"name": "СБЕР"}, "paper_count": 1.0}},
|
|
{"нет количества", map[string]any{"paper": map[string]any{"isin": "RU0009029540"}, "paper_count": 0.0}},
|
|
}
|
|
for _, c := range cases {
|
|
req, err := lkClaimToRequest(context.Background(), rc, LKEndpoint{}, map[string]any{"id": 1.0}, c.data)
|
|
if err != nil {
|
|
t.Errorf("%s: заявка должна приниматься в разбор, получили %v", c.name, err)
|
|
continue
|
|
}
|
|
if len(req.Securities) != 1 {
|
|
t.Errorf("%s: бумаг %d, ожидали 1", c.name, len(req.Securities))
|
|
continue
|
|
}
|
|
if _, err := dtoToClaim(req); err != nil {
|
|
t.Errorf("%s: пакет должен собираться без проверки формата, dtoToClaim: %v", c.name, err)
|
|
}
|
|
}
|
|
}
|