feat(bj): модуль ЛК на PostgreSQL, обмен с DEPO, боевой ЛК с имитатором НРД, QUIK, НПР
- 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>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user