890e575d3d
Автоопределение читало исходную запись лица (2016) и брало MNEM как краткое наименование. Теперь — действующая версия (SELF_ID/LAST_FLAG=1): краткое — OD_FACES.NAME, полное — OD_U_FACES.FULL_NAME, английские — ENG_FULL_NAME и ENG_NAME. Анкета участника заполняется из DEPO без справочника НРД; английские — только парой. Проверено на DEPO 28: полное есть у 141 из 145 участников, английские после замены кавычек совпали с ответом НРД. Если OD_U_FACES нет — прежний запрос и подсказка уточнить у НРД. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
58 lines
2.8 KiB
Go
58 lines
2.8 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) != 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)
|
|
}
|
|
}
|