Telegram testing and race condition fix. (#195)

* Telegram testing and race condition fix.

Improving telegram Setup test
More coverage for telegram PushEvent test
Adding telegram HandleMessages test
Adding telegram GetUpdates test
Adding telegram TestConnection test
Adding telegram SendMessage test
(Hopefully) completely fixed race conditions with slack testing

* Adding testing to communications.go
This commit is contained in:
cranktakular
2018-10-23 15:40:25 +11:00
committed by Adrian Gallagher
parent d0f5f46c9d
commit 8cbe99cf2f
3 changed files with 120 additions and 11 deletions

View File

@@ -0,0 +1,28 @@
package communications
import (
"testing"
"github.com/thrasher-/gocryptotrader/config"
)
func TestNewComm(t *testing.T) {
var config config.CommunicationsConfig
communications := NewComm(config)
if len(communications.IComm) != 0 {
t.Errorf("Test failed, communications NewComm, expected len 0, got len %d",
len(communications.IComm))
}
config.TelegramConfig.Enabled = true
config.SMSGlobalConfig.Enabled = true
config.SMTPConfig.Enabled = true
config.SlackConfig.Enabled = true
communications = NewComm(config)
if len(communications.IComm) != 4 {
t.Errorf("Test failed, communications NewComm, expected len 4, got len %d",
len(communications.IComm))
}
}

View File

@@ -4,7 +4,6 @@ import (
"testing"
"github.com/thrasher-/gocryptotrader/common"
"github.com/thrasher-/gocryptotrader/communications/base"
"github.com/thrasher-/gocryptotrader/config"
)
@@ -104,7 +103,6 @@ func TestGetChannelsString(t *testing.T) {
}
func TestGetUsernameByID(t *testing.T) {
t.Parallel()
username := s.GetUsernameByID("1337")
if len(username) != 0 {
t.Error("test failed - slack GetUsernameByID() error")
@@ -239,7 +237,6 @@ func TestNewConnection(t *testing.T) {
}
func TestWebsocketConnect(t *testing.T) {
t.Parallel()
err := s.WebsocketConnect()
if err == nil {
t.Error("test failed - slack WebsocketConnect() error")
@@ -247,7 +244,6 @@ func TestWebsocketConnect(t *testing.T) {
}
func TestHandlePresenceChange(t *testing.T) {
t.Parallel()
var pres PresenceChange
pres.User = "1337"
pres.Presence = "Present"
@@ -265,7 +261,6 @@ func TestHandlePresenceChange(t *testing.T) {
}
func TestHandleMessageResponse(t *testing.T) {
t.Parallel()
var data WebsocketResponse
data.ReplyTo = 1
@@ -316,13 +311,11 @@ func TestHandleErrorResponse(t *testing.T) {
}
func TestHandleHelloResponse(t *testing.T) {
t.Parallel()
var data WebsocketResponse
s.handleHelloResponse(data)
}
func TestHandleReconnectResponse(t *testing.T) {
t.Parallel()
err := s.handleReconnectResponse([]byte(`{"malformedjson}`))
if err == nil {
@@ -344,7 +337,6 @@ func TestHandleReconnectResponse(t *testing.T) {
}
func TestWebsocketSend(t *testing.T) {
t.Parallel()
err := s.WebsocketSend("test", "Hello World!")
if err == nil {
t.Error("test failed - slack WebsocketSend(), Sent message through nil websocket")
@@ -352,7 +344,6 @@ func TestWebsocketSend(t *testing.T) {
}
func TestHandleMessage(t *testing.T) {
t.Parallel()
var msg Message
err := s.HandleMessage(msg)

View File

@@ -13,18 +13,108 @@ func TestSetup(t *testing.T) {
cfg := config.GetConfig()
cfg.LoadConfig("../../testdata/configtest.json")
T.Setup(cfg.GetCommunicationsConfig())
if T.Name != "Telegram" || T.Enabled != false ||
T.Token != "testest" || T.Verbose != false {
t.Error("test failed - telegram Setup() error, unexpected setup values",
T.Name, T.Enabled, T.Token, T.Verbose)
}
}
func TestConnect(t *testing.T) {
err := T.Connect()
if err == nil {
t.Error("test failed - telegram Connect() error", err)
t.Error("test failed - telegram Connect() error")
}
}
func PushEvent(t *testing.T) {
func TestPushEvent(t *testing.T) {
err := T.PushEvent(base.Event{})
if err != nil {
t.Error("test failed - telegram PushEvent() error", err)
}
T.AuthorisedClients = append(T.AuthorisedClients, 1337)
err = T.PushEvent(base.Event{})
if err.Error() != "Not Found" {
t.Errorf("test failed - telegram PushEvent() error, expected 'Not found' got '%s'",
err)
}
}
func TestHandleMessages(t *testing.T) {
t.Parallel()
chatID := int64(1337)
err := T.HandleMessages(cmdHelp, chatID)
if err.Error() != "Not Found" {
t.Errorf("test failed - telegram HandleMessages() error, expected 'Not found' got '%s'",
err)
}
err = T.HandleMessages(cmdStart, chatID)
if err.Error() != "Not Found" {
t.Errorf("test failed - telegram HandleMessages() error, expected 'Not found' got '%s'",
err)
}
err = T.HandleMessages(cmdOrders, chatID)
if err.Error() != "Not Found" {
t.Errorf("test failed - telegram HandleMessages() error, expected 'Not found' got '%s'",
err)
}
err = T.HandleMessages(cmdStatus, chatID)
if err.Error() != "Not Found" {
t.Errorf("test failed - telegram HandleMessages() error, expected 'Not found' got '%s'",
err)
}
err = T.HandleMessages(cmdTicker, chatID)
if err.Error() != "Not Found" {
t.Errorf("test failed - telegram HandleMessages() error, expected 'Not found' got '%s'",
err)
}
err = T.HandleMessages(cmdSettings, chatID)
if err.Error() != "Not Found" {
t.Errorf("test failed - telegram HandleMessages() error, expected 'Not found' got '%s'",
err)
}
err = T.HandleMessages(cmdPortfolio, chatID)
if err.Error() != "Not Found" {
t.Errorf("test failed - telegram HandleMessages() error, expected 'Not found' got '%s'",
err)
}
err = T.HandleMessages("Not a command", chatID)
if err.Error() != "Not Found" {
t.Errorf("test failed - telegram HandleMessages() error, expected 'Not found' got '%s'",
err)
}
}
func TestGetUpdates(t *testing.T) {
t.Parallel()
_, err := T.GetUpdates()
if err != nil {
t.Error("test failed - telegram GetUpdates() error", err)
}
}
func TestTestConnection(t *testing.T) {
t.Parallel()
err := T.TestConnection()
if err.Error() != "Not Found" {
t.Errorf("test failed - telegram TestConnection() error, expected 'Not found' got '%s'",
err)
}
}
func TestSendMessage(t *testing.T) {
t.Parallel()
err := T.SendMessage("Test message", int64(1337))
if err.Error() != "Not Found" {
t.Errorf("test failed - telegram SendMessage() error, expected 'Not found' got '%s'",
err)
}
}
func TestSendHTTPRequest(t *testing.T) {
t.Parallel()
err := T.SendHTTPRequest("0.0.0.0", nil, nil)
if err == nil {
t.Error("test failed - telegram SendHTTPRequest() error")
}
}