Files
Bridge-and-Join-s/internal/lkgateway/participant_name_test.go
T
fontvielle c546773840 Анкета участника: что не известно точно — уточнить у НРД
Источник наименований: карточка нашей фирмы в справочнике НРД, без неё —
DEPO (черновик). Анкета предупреждает и даёт готовый текст запроса в НРД,
если карточки нет, полное похоже на краткое, отличается от карточки или
английские неполные; при ответе M2M37 — подсказка запросить наименования.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-22 10:07:33 +03:00

42 lines
1.9 KiB
Go

package lkgateway
import (
"strings"
"testing"
)
// Наименования в анкете — как в клиентской базе НРД: прямые кавычки, без лишних пробелов (M2M37).
func TestParticipantFormNames(t *testing.T) {
d := participantFormData{
INN: "7703807489", DepoCode: "MC0413600000",
FullName: "Общество с ограниченной ответственностью «Инвестиционная Компания “Фонтвьель»",
ShortName: "ООО «ИК «Фонтвьель»",
DisplayName: "ООО «ИК «Фонтвьель»",
}
x := participantFormXML(d)
for _, want := range []string{
`<m2m:FullName>Общество с ограниченной ответственностью "Инвестиционная Компания "Фонтвьель"</m2m:FullName>`,
`<m2m:ShortName>ООО "ИК "Фонтвьель"</m2m:ShortName>`,
`<m2m:DisplayName>ООО "ИК "Фонтвьель"</m2m:DisplayName>`,
} {
if !strings.Contains(x, want) {
t.Errorf("нет %s в\n%s", want, x)
}
}
if strings.Contains(x, "<m2m:Eng>") {
t.Error("пустые английские наименования не должны попадать в анкету")
}
}
// Без карточки НРД и с кратким вместо полного — подсказка уточнить у НРД.
func TestParticipantNameCheck(t *testing.T) {
d := participantFormData{FullName: `ООО "ИК "Фонтвьель"`, ShortName: `ООО "ИК "Фонтвьель"`}
ws := pfNameCheck(nil, d)
if len(ws) != 2 || !strings.Contains(ws[0], "уточните") || !strings.Contains(ws[1], "сокращённое") {
t.Fatalf("подсказки: %q", ws)
}
if !strings.Contains(pfAskNSD("MC0413600000"), "MC0413600000") {
t.Error("в запросе нет кода участника")
}
}