Files
Bridge-and-Join-s/internal/lkgateway/prices_live_test.go
T

40 lines
1.5 KiB
Go

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