f35c72c50a
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
27 lines
1016 B
Go
27 lines
1016 B
Go
package lkgateway
|
||
|
||
import (
|
||
"net/http/httptest"
|
||
"net/url"
|
||
"strings"
|
||
"testing"
|
||
)
|
||
|
||
func TestM2MQtyOverrides(t *testing.T) {
|
||
c := m2mCase{ID: "2", Secs: []m2mSec{sSBER("10"), {ISIN: "RU000A0JUR61", Code: "PAI", Qty: "5", Frac: true}}}
|
||
form := url.Values{"qty_RU0009029540": {"1"}, "qty_RU000A0JUR61": {"2,5"}}
|
||
r := httptest.NewRequest("POST", "/admin/m2m-testing/initiate", strings.NewReader(form.Encode()))
|
||
r.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
||
got := m2mQtyOverrides(r, c)
|
||
if got["RU0009029540"] != "1" || got["RU000A0JUR61"] != "2.5" {
|
||
t.Fatalf("количество: %v", got)
|
||
}
|
||
if note := m2mQtyNote(c, got); !strings.Contains(note, "SBER/03 × 1 (по плану 10)") {
|
||
t.Fatalf("отметка: %q", note)
|
||
}
|
||
bad := httptest.NewRequest("GET", "/?qty_RU0009029540=1.5&qty_RU000A0JUR61=-1", nil)
|
||
if got := m2mQtyOverrides(bad, c); len(got) != 0 {
|
||
t.Fatalf("дробное для акций и отрицательное — игнорировать: %v", got)
|
||
}
|
||
}
|