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