package lkgateway import ( "strings" "testing" ) func TestClassifyNSDDoc(t *testing.T) { cases := []struct{ pkg, body, code, title string }{ {"K1699092", `144622492026-09-16 16:03:5320608`, "REG", "Квитанция о регистрации поручения"}, {"K1", `12060812Нет встречного`, "REG_REJECT", "Отказ в регистрации поручения"}, {"50818777", `GS036 отсутствии встречного поручения к поручению депоКод операции16`, "GS036", "Уведомление об отсутствии встречного поручения (GS036)"}, {"50818779", `GS1162060814462249MACH`, "GS116", "Отчёт о статусе поручения (GS116)"}, {"50818781", `MS01020608DELI10HL171004001C`, "MS010", "Отчёт об исполнении поручения (MS010)"}, } for _, c := range cases { d := classifyNSDDoc(c.pkg, c.body) if d.Code != c.code || d.Title != c.title { t.Errorf("%s: %s «%s», ожидали %s «%s»", c.pkg, d.Code, d.Title, c.code, c.title) } } ms := classifyNSDDoc("50818781", cases[4].body) if !ms.Done || !strings.Contains(ms.About, "списание") { t.Errorf("MS010: %+v", ms) } var acc string for _, kv := range ms.Fields { if kv[0] == "Счёт депо" { acc = kv[1] } } if acc != "HL171004001C" { t.Errorf("счёт депо: %q (%v)", acc, ms.Fields) } if f := nsdDocFolder(1, classifyNSDDoc("50818777", cases[2].body)); f != "02 Уведомление об отсутствии встречного поручения (GS036) — 50818777" { t.Errorf("папка: %q", f) } }