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) } } }