//go:build live package lkgateway import ( "context" "testing" ) // Цены из базы экспорта QUIK и карточка бумаги из справочника депозитария. func TestLivePricesAndCard(t *testing.T) { rc, err := NewRuntimeConfig("/var/lib/bj/.bj/setup.json") if err != nil { t.Fatal(err) } globalRC = rc ctx := context.Background() isins := []string{"RU0009029540", "RU000A1014L8", "RU000A10EYV6", "RU000A1038V6"} px := lkPrices(ctx, rc, isins) if len(px) == 0 { t.Fatal("цены не получены: проверьте подключение к базе экспорта и пакет «Цены»") } for _, i := range isins { p := px[i] t.Logf("%s: %s %.4f (пред. %.4f, номинал %.2f, НКД %.4f, %%=%v) → 100 шт. = %.2f ₽", i, p.Board, p.Price, p.Prev, p.Face, p.Accrued, p.InPct, p.Value(100)) } for _, i := range []string{"RU000A10EYV6", "RU0009029540"} { card, err := securityCard(ctx, rc, i, nil) if err != nil { t.Fatalf("карточка %s: %v", i, err) } t.Logf("%s · %s · %s · эмитент %q · номинал %.2f · погашение %s · CFI %s · на обслуживании %v · квал %v · выплат %d", card.ISIN, card.Name, card.Kind, card.Issuer, card.Face, card.Maturity, card.CFI, card.Accepted, card.QualOnly, len(card.Payments)) for _, p := range card.Payments { t.Logf(" %s %s %.2f %.2f%%", p.Date, p.Kind, p.Amount, p.Percent) } } }