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{
`Общество с ограниченной ответственностью "Инвестиционная Компания "Фонтвьель"`,
`ООО "ИК "Фонтвьель"`,
`ООО "ИК "Фонтвьель"`,
} {
if !strings.Contains(x, want) {
t.Errorf("нет %s в\n%s", want, x)
}
}
if strings.Contains(x, "") {
t.Error("пустые английские наименования не должны попадать в анкету")
}
}
// Без карточки НРД и с кратким вместо полного — подсказка уточнить у НРД.
func TestParticipantNameCheck(t *testing.T) {
d := participantFormData{FullName: `ООО "ИК "Фонтвьель"`, ShortName: `ООО "ИК "Фонтвьель"`}
ws := pfNameCheck(nil, d)
if len(ws) != 1 || !strings.Contains(ws[0], "сокращённое") {
t.Fatalf("подсказки: %q", ws)
}
if ws := pfNameCheck(nil, participantFormData{}); len(ws) != 1 || !strings.Contains(ws[0], "уточните") {
t.Fatalf("без полного: %q", ws)
}
full := participantFormData{FullName: `Общество с ограниченной ответственностью "Инвестиционная Компания "Фонтвьель"`, ShortName: `ООО "ИК "Фонтвьель"`}
if ws := pfNameCheck(nil, full); len(ws) != 0 {
t.Fatalf("полное из DEPO — без подсказок: %q", ws)
}
if !strings.Contains(pfAskNSD("MC0413600000"), "MC0413600000") {
t.Error("в запросе нет кода участника")
}
}
// Английские из DEPO в «ёлочках» — после замены кавычек ровно как в ответе НРД от 22.10.2026.
func TestParticipantEngQuotes(t *testing.T) {
d := participantFormData{EngFull: "«Investment Company «Fontvielle» Limited Liability Company", EngShort: "«IC «Fontvielle» LLC"}
pfNames(&d)
if d.EngFull != `"Investment Company "Fontvielle" Limited Liability Company` || d.EngShort != `"IC "Fontvielle" LLC` {
t.Fatalf("%q / %q", d.EngFull, d.EngShort)
}
}