Created
July 22, 2020 01:49
-
-
Save gloriousCode/90901cc21a2a66a443089b2741336e0c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func TestTheThing1(t *testing.T) { | |
var err error | |
Bot, err = New() | |
if err != nil { | |
t.Fatalf("Failed to initialise engine. Err: %s", err) | |
} | |
Bot.Settings = Settings{ | |
DisableExchangeAutoPairUpdates: true, | |
EnableExchangeHTTPRateLimiter: true, | |
EnableExchangeWebsocketSupport: true, | |
} | |
var wg sync.WaitGroup | |
for x := range exchange.Exchanges { | |
name := exchange.Exchanges[x] | |
exchCfg, err := Bot.Config.GetExchangeConfig(name) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", name, err) | |
} | |
exchCfg.Verbose = true | |
exchCfg.Websocket = convert.BoolPtr(false) | |
err = LoadExchange(name, true, &wg) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", name, err) | |
} | |
} | |
wg.Wait() | |
server := grpc.NewServer() | |
s := RPCServer{} | |
gctrpc.RegisterGoCryptoTraderServer(server, &s) | |
exchangesButts := GetExchanges() | |
_, err = Bot.Config.GetExchangeConfig("im not real") | |
if err == nil { | |
t.Errorf("expected error") | |
} | |
for i := range exchangesButts { | |
_, err := Bot.Config.GetExchangeConfig(exchangesButts[i].GetName()) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", exchangesButts[i].GetName(), err) | |
} | |
assetTypes := exchangesButts[i].GetAssetTypes() | |
for j := range assetTypes { | |
_, err = s.SetExchangeAsset(nil, &gctrpc.SetExchangeAssetRequest{ | |
Exchange: exchangesButts[i].GetName(), | |
Asset: assetTypes[j].String(), | |
Enable: false, | |
}) | |
if err != nil && err.Error() != "asset already disabled" && err.Error() != "asset type not found" { | |
t.Errorf("%s %s %s", exchangesButts[i].GetName(), assetTypes[j].String(), err) | |
} | |
_, err = s.SetExchangeAsset(nil, &gctrpc.SetExchangeAssetRequest{ | |
Exchange: exchangesButts[i].GetName(), | |
Asset: assetTypes[j].String(), | |
Enable: true, | |
}) | |
if err != nil && err.Error() != "asset already enabled" && err.Error() != "asset type not found" { | |
t.Errorf("%s %s %s", exchangesButts[i].GetName(), assetTypes[j].String(), err) | |
} | |
} | |
} | |
} | |
func TestTheThing2(t *testing.T) { | |
var err error | |
Bot, err = New() | |
if err != nil { | |
t.Fatalf("Failed to initialise engine. Err: %s", err) | |
} | |
Bot.Settings = Settings{ | |
DisableExchangeAutoPairUpdates: true, | |
EnableExchangeHTTPRateLimiter: true, | |
EnableExchangeWebsocketSupport: true, | |
} | |
var wg sync.WaitGroup | |
for x := range exchange.Exchanges { | |
name := exchange.Exchanges[x] | |
exchCfg, err := Bot.Config.GetExchangeConfig(name) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", name, err) | |
} | |
exchCfg.Verbose = true | |
exchCfg.Websocket = convert.BoolPtr(false) | |
err = LoadExchange(name, true, &wg) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", name, err) | |
} | |
} | |
wg.Wait() | |
server := grpc.NewServer() | |
s := RPCServer{} | |
gctrpc.RegisterGoCryptoTraderServer(server, &s) | |
exchangesButts := GetExchanges() | |
for i := range exchangesButts { | |
exchCfg, err := Bot.Config.GetExchangeConfig(exchangesButts[i].GetName()) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", exchangesButts[i].GetName(), err) | |
} | |
_, err = s.SetExchangePair(nil, &gctrpc.SetExchangePairRequest{ | |
Exchange: exchangesButts[i].GetName(), | |
AssetType: asset.Spot.String(), | |
Pairs: []*gctrpc.CurrencyPair{{ | |
Delimiter: "lol", | |
Base: "bae", | |
Quote: "quo", | |
}, | |
}, | |
Enable: false, | |
}) | |
if err == nil { | |
t.Error("expected error") | |
} | |
assetTypes := exchangesButts[i].GetAssetTypes() | |
for j := range assetTypes { | |
pairs, err := exchangesButts[i].GetAvailablePairs(assetTypes[j]) | |
if err != nil { | |
t.Error(err) | |
} | |
if len(pairs) > 0 { | |
bae := "" | |
if !pairs[0].Base.IsEmpty() { | |
bae = pairs[0].Base.String() | |
} | |
quo := "" | |
if !pairs[0].Quote.IsEmpty() { | |
quo = pairs[0].Quote.String() | |
} | |
del := "" | |
if bae != "" && quo != "" { | |
del = pairs[0].Delimiter | |
} | |
_, err = s.SetExchangePair(nil, &gctrpc.SetExchangePairRequest{ | |
Exchange: exchangesButts[i].GetName(), | |
AssetType: assetTypes[j].String(), | |
Pairs: []*gctrpc.CurrencyPair{{ | |
Delimiter: del, | |
Base: bae, | |
Quote: quo, | |
}, | |
}, | |
Enable: false, | |
}) | |
if err != nil && err.Error() != "specified pair is not enabled" { | |
t.Error(err) | |
} | |
_, err = s.SetExchangePair(nil, &gctrpc.SetExchangePairRequest{ | |
Exchange: exchangesButts[i].GetName(), | |
AssetType: assetTypes[j].String(), | |
Pairs: []*gctrpc.CurrencyPair{{ | |
Delimiter: del, | |
Base: bae, | |
Quote: quo, | |
}, | |
}, | |
Enable: true, | |
}) | |
if err != nil && err.Error() != "specified pair is enabled" { | |
t.Error(err) | |
} | |
_, err = s.SetAllExchangePairs(nil, &gctrpc.SetExchangeAllPairsRequest{Enable: true, Exchange: exchangesButts[i].GetName()}) | |
if err != nil { | |
t.Error(err) | |
} | |
_, err = s.SetAllExchangePairs(nil, &gctrpc.SetExchangeAllPairsRequest{Enable: false, Exchange: exchangesButts[i].GetName()}) | |
if err != nil { | |
t.Error(err) | |
} | |
if exchCfg.Features.Supports.RESTCapabilities.AutoPairUpdates { | |
_, err = s.UpdateExchangeSupportedPairs(nil, &gctrpc.UpdateExchangeSupportedPairsRequest{ | |
Exchange: exchangesButts[i].GetName(), | |
}) | |
if err != nil && err.Error() != "cannot auto pair update for exchange, a manual update is needed" { | |
t.Error(err) | |
} | |
} | |
_, err = s.GetExchangeAssets(nil, &gctrpc.GetExchangeAssetsRequest{ | |
Exchange: exchangesButts[i].GetName(), | |
}) | |
if err != nil { | |
t.Error(err) | |
} | |
_, err = s.SetExchangePair(nil, &gctrpc.SetExchangePairRequest{ | |
Exchange: exchangesButts[i].GetName(), | |
AssetType: assetTypes[j].String(), | |
Pairs: []*gctrpc.CurrencyPair{{ | |
Delimiter: del, | |
Base: bae, | |
Quote: quo, | |
}, | |
}, | |
Enable: true, | |
}) | |
if err != nil && err.Error() != "specified pair is enabled" { | |
t.Error(err) | |
} | |
} | |
} | |
} | |
} | |
func TestTheThing3(t *testing.T) { | |
var err error | |
Bot, err = New() | |
if err != nil { | |
t.Fatalf("Failed to initialise engine. Err: %s", err) | |
} | |
Bot.Settings = Settings{ | |
DisableExchangeAutoPairUpdates: true, | |
EnableExchangeHTTPRateLimiter: true, | |
} | |
var wg sync.WaitGroup | |
for x := range exchange.Exchanges { | |
name := exchange.Exchanges[x] | |
exchCfg, err := Bot.Config.GetExchangeConfig(name) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", name, err) | |
} | |
exchCfg.Websocket = convert.BoolPtr(false) | |
err = LoadExchange(name, true, &wg) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", name, err) | |
} | |
} | |
wg.Wait() | |
server := grpc.NewServer() | |
s := RPCServer{} | |
gctrpc.RegisterGoCryptoTraderServer(server, &s) | |
exchangesButts := GetExchanges() | |
for i := range exchangesButts { | |
exchCfg, err := Bot.Config.GetExchangeConfig(exchangesButts[i].GetName()) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", exchangesButts[i].GetName(), err) | |
} | |
if exchCfg.Features.Supports.Websocket { | |
_, err = s.WebsocketSetEnabled(nil, &gctrpc.WebsocketSetEnabledRequest{Exchange: exchangesButts[i].GetName(), Enable: true}) | |
if err != nil && !strings.Contains(err.Error(), "websocket is already ") { | |
t.Error(err) | |
} | |
_, err = s.WebsocketSetURL(nil, &gctrpc.WebsocketSetURLRequest{Exchange:exchangesButts[i].GetName(), Url: "wss://echo.websocket.org"}) | |
if err != nil { | |
t.Error(err) | |
} | |
_, err = s.WebsocketSetURL(nil, &gctrpc.WebsocketSetURLRequest{Exchange:exchangesButts[i].GetName(), Url: ""}) | |
if err != nil { | |
t.Error(err) | |
} | |
ws, err := exchangesButts[i].GetWebsocket() | |
if err != nil { | |
t.Error(err) | |
} | |
time.Sleep(time.Second) | |
if ws != nil && ws.Conn != nil { | |
err = ws.Conn.Shutdown() | |
if err != nil { | |
t.Error(err) | |
} | |
} | |
} | |
} | |
} | |
func TestTheThing4(t *testing.T) { | |
var err error | |
Bot, err = New() | |
if err != nil { | |
t.Fatalf("Failed to initialise engine. Err: %s", err) | |
} | |
Bot.Settings = Settings{ | |
DisableExchangeAutoPairUpdates: true, | |
EnableExchangeHTTPRateLimiter: true, | |
} | |
var wg sync.WaitGroup | |
for x := range exchange.Exchanges { | |
name := exchange.Exchanges[x] | |
exchCfg, err := Bot.Config.GetExchangeConfig(name) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", name, err) | |
} | |
exchCfg.Websocket = convert.BoolPtr(false) | |
err = LoadExchange(name, true, &wg) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", name, err) | |
} | |
} | |
wg.Wait() | |
server := grpc.NewServer() | |
s := RPCServer{} | |
gctrpc.RegisterGoCryptoTraderServer(server, &s) | |
exchangesButts := GetExchanges() | |
for i := range exchangesButts { | |
exchCfg, err := Bot.Config.GetExchangeConfig(exchangesButts[i].GetName()) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", exchangesButts[i].GetName(), err) | |
} | |
if exchCfg.Features.Supports.Websocket { | |
_, err = s.WebsocketSetEnabled(nil, &gctrpc.WebsocketSetEnabledRequest{Exchange: exchangesButts[i].GetName(), Enable: true}) | |
if err != nil && !strings.Contains(err.Error(), "websocket is already ") { | |
t.Error(err) | |
} | |
_, err = s.WebsocketGetInfo(nil, &gctrpc.WebsocketGetInfoRequest{Exchange: exchangesButts[i].GetName()}) | |
if err != nil { | |
t.Error(err) | |
} | |
ws, err := exchangesButts[i].GetWebsocket() | |
if err != nil { | |
t.Error(err) | |
} | |
if ws != nil && ws.Conn != nil { | |
err = ws.Conn.Shutdown() | |
if err != nil { | |
t.Error(err) | |
} | |
} | |
} | |
} | |
} | |
func TestTheThing5(t *testing.T) { | |
var err error | |
Bot, err = New() | |
if err != nil { | |
t.Fatalf("Failed to initialise engine. Err: %s", err) | |
} | |
Bot.Settings = Settings{ | |
DisableExchangeAutoPairUpdates: true, | |
EnableExchangeHTTPRateLimiter: true, | |
} | |
var wg sync.WaitGroup | |
for x := range exchange.Exchanges { | |
name := exchange.Exchanges[x] | |
exchCfg, err := Bot.Config.GetExchangeConfig(name) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", name, err) | |
} | |
exchCfg.Websocket = convert.BoolPtr(false) | |
err = LoadExchange(name, true, &wg) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", name, err) | |
} | |
} | |
wg.Wait() | |
server := grpc.NewServer() | |
s := RPCServer{} | |
gctrpc.RegisterGoCryptoTraderServer(server, &s) | |
exchangesButts := GetExchanges() | |
for i := range exchangesButts { | |
exchCfg, err := Bot.Config.GetExchangeConfig(exchangesButts[i].GetName()) | |
if err != nil { | |
t.Errorf("Failed to load exchange %s. Err: %s", exchangesButts[i].GetName(), err) | |
} | |
if exchCfg.Features.Supports.Websocket { | |
_, err = s.WebsocketSetEnabled(nil, &gctrpc.WebsocketSetEnabledRequest{Exchange: exchangesButts[i].GetName(), Enable: true}) | |
if err != nil && !strings.Contains(err.Error(), "websocket is already ") { | |
t.Error(err) | |
} | |
_, err = s.WebsocketGetSubscriptions(nil, &gctrpc.WebsocketGetSubscriptionsRequest{Exchange: exchangesButts[i].GetName()}) | |
if err != nil { | |
t.Error(err) | |
} | |
time.Sleep(time.Second) | |
_, err = s.WebsocketSetEnabled(nil, &gctrpc.WebsocketSetEnabledRequest{Exchange: exchangesButts[i].GetName(), Enable: false}) | |
if err != nil && !strings.Contains(err.Error(), "websocket is already ") { | |
t.Error(err) | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment