Files
gocryptotrader/engine/exchange_test.go
Adrian Gallagher f5914e8c10 Engine changes
2019-05-22 17:06:38 +10:00

136 lines
2.7 KiB
Go

package engine
import (
"testing"
"github.com/thrasher-/gocryptotrader/config"
)
var testSetup = false
func SetupTest(t *testing.T) {
if !testSetup {
if Bot == nil {
Bot = new(Engine)
}
Bot.Config = &config.Cfg
err := Bot.Config.LoadConfig("")
if err != nil {
t.Fatalf("Test failed. SetupTest: Failed to load config: %s", err)
}
testSetup = true
}
if CheckExchangeExists("Bitfinex") {
return
}
err := LoadExchange("Bitfinex", false, nil)
if err != nil {
t.Errorf("Test failed. SetupTest: Failed to load exchange: %s", err)
}
}
func CleanupTest(t *testing.T) {
if !CheckExchangeExists("Bitfinex") {
return
}
err := UnloadExchange("Bitfinex")
if err != nil {
t.Fatalf("Test failed. CleanupTest: Failed to unload exchange: %s",
err)
}
}
func TestCheckExchangeExists(t *testing.T) {
SetupTest(t)
if !CheckExchangeExists("Bitfinex") {
t.Errorf("Test failed. TestGetExchangeExists: Unable to find exchange")
}
if CheckExchangeExists("Asdsad") {
t.Errorf("Test failed. TestGetExchangeExists: Non-existent exchange found")
}
CleanupTest(t)
}
func TestGetExchangeByName(t *testing.T) {
SetupTest(t)
exch := GetExchangeByName("Bitfinex")
if exch == nil {
t.Errorf("Test failed. TestGetExchangeByName: Failed to get exchange")
}
if !exch.IsEnabled() {
t.Errorf("Test failed. TestGetExchangeByName: Unexpected result")
}
exch.SetEnabled(false)
bfx := GetExchangeByName("Bitfinex")
if bfx.IsEnabled() {
t.Errorf("Test failed. TestGetExchangeByName: Unexpected result")
}
if exch.GetName() != "Bitfinex" {
t.Errorf("Test failed. TestGetExchangeByName: Unexpected result")
}
exch = GetExchangeByName("Asdasd")
if exch != nil {
t.Errorf("Test failed. TestGetExchangeByName: Non-existent exchange found")
}
CleanupTest(t)
}
func TestReloadExchange(t *testing.T) {
SetupTest(t)
err := ReloadExchange("asdf")
if err != ErrExchangeNotFound {
t.Errorf("Test failed. TestReloadExchange: Incorrect result: %s",
err)
}
err = ReloadExchange("Bitfinex")
if err != nil {
t.Errorf("Test failed. TestReloadExchange: Incorrect result: %s",
err)
}
CleanupTest(t)
err = ReloadExchange("asdf")
if err != ErrNoExchangesLoaded {
t.Errorf("Test failed. TestReloadExchange: Incorrect result: %s",
err)
}
}
func TestUnloadExchange(t *testing.T) {
SetupTest(t)
err := UnloadExchange("asdf")
if err != ErrExchangeNotFound {
t.Errorf("Test failed. TestUnloadExchange: Incorrect result: %s",
err)
}
err = UnloadExchange("Bitfinex")
if err != nil {
t.Errorf("Test failed. TestUnloadExchange: Failed to get exchange. %s",
err)
}
err = UnloadExchange("asdf")
if err != ErrNoExchangesLoaded {
t.Errorf("Test failed. TestUnloadExchange: Incorrect result: %s",
err)
}
CleanupTest(t)
}