exchange: add SetRequester to exchange Base (#1095)

* add setRequester to exchange Base

* add tests

* fix lint

* Update exchange_test.go
This commit is contained in:
E Sequeira
2022-12-07 09:07:04 +04:00
committed by GitHub
parent 3666dd0e0e
commit d7d4933f93
2 changed files with 39 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ import (
"github.com/thrasher-corp/gocryptotrader/exchanges/margin"
"github.com/thrasher-corp/gocryptotrader/exchanges/order"
"github.com/thrasher-corp/gocryptotrader/exchanges/protocol"
"github.com/thrasher-corp/gocryptotrader/exchanges/request"
"github.com/thrasher-corp/gocryptotrader/exchanges/stream"
"github.com/thrasher-corp/gocryptotrader/exchanges/trade"
"github.com/thrasher-corp/gocryptotrader/log"
@@ -47,6 +48,16 @@ var (
errSymbolCannotBeMatched = errors.New("symbol cannot be matched")
)
// SetRequester sets the instance of the requester
func (b *Base) SetRequester(r *request.Requester) error {
if r == nil {
return fmt.Errorf("%s cannot set requester, no requester provided", b.Name)
}
b.Requester = r
return nil
}
// SetClientProxyAddress sets a proxy address for REST and websocket requests
func (b *Base) SetClientProxyAddress(addr string) error {
if addr == "" {

View File

@@ -2616,3 +2616,31 @@ func TestGetPairAndAssetTypeRequestFormatted(t *testing.T) {
t.Fatalf("received: '%v' but expected: '%v'", p, expected)
}
}
func TestSetRequester(t *testing.T) {
t.Parallel()
b := Base{
Config: &config.Exchange{Name: "kitties"},
Requester: nil,
}
err := b.SetRequester(nil)
if err == nil {
t.Fatal("error cannot be nil")
}
requester, err := request.New("testingRequester", common.NewHTTPClientWithTimeout(0))
if err != nil {
t.Fatal(err)
}
err = b.SetRequester(requester)
if err != nil {
t.Fatalf("expected no error, received %v", err)
}
if b.Requester == nil {
t.Fatal("requester not set correctly")
}
}