Files
gocryptotrader/exchanges/request/request_test.go
2018-03-27 14:22:52 +11:00

85 lines
1.8 KiB
Go

package request
import (
"net/http"
"sync"
"testing"
)
var (
wg sync.WaitGroup
bitfinex *Handler
BTCMarkets *Handler
)
func TestSetRequestHandler(t *testing.T) {
bitfinex = new(Handler)
err := bitfinex.SetRequestHandler("bitfinex", 1000, 1000, new(http.Client))
if err != nil {
t.Error("Test failed - request SetRequestHandler()", err)
}
err = bitfinex.SetRequestHandler("bitfinex", 1000, 1000, new(http.Client))
if err == nil {
t.Error("Test failed - request SetRequestHandler()", err)
}
err = bitfinex.SetRequestHandler("bla", 1000, 1000, new(http.Client))
if err == nil {
t.Error("Test failed - request SetRequestHandler()", err)
}
BTCMarkets = new(Handler)
BTCMarkets.SetRequestHandler("btcmarkets", 1000, 1000, new(http.Client))
if len(request.exchangeHandlers) != 2 {
t.Error("test failed - request GetRequestHandler() error")
}
wg.Add(2)
}
func TestSetRateLimit(t *testing.T) {
bitfinex.SetRateLimit(0, 0)
BTCMarkets.SetRateLimit(0, 0)
}
func TestSend(t *testing.T) {
for i := 0; i < 1; i++ {
go func() {
var v interface{}
err := bitfinex.SendPayload("GET",
"https://api.bitfinex.com/v1/pubticker/BTCUSD",
nil,
nil,
&v,
false,
false,
)
if err != nil {
t.Error("test failed - send error", err)
}
wg.Done()
}()
go func() {
var v interface{}
err := BTCMarkets.SendPayload("GET",
"https://api.btcmarkets.net/market/BTC/AUD/tick",
nil,
nil,
&v,
false,
false,
)
if err != nil {
t.Error("test failed - send error", err)
}
wg.Done()
}()
}
wg.Wait()
newHandler := new(Handler)
err := newHandler.SendPayload("GET", "https://api.bitfinex.com/v1/pubticker/BTCUSD",
nil, nil, nil, false, false)
if err == nil {
t.Error("test failed - request Send() error", err)
}
}