github.com/vmpartner/bitmex@v1.1.0/websocket/websocket_test.go (about)

     1  package websocket
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  	"fmt"
     7  	"strings"
     8  )
     9  
    10  func TestConnectMaster(t *testing.T) {
    11  	conn := Connect("www.bitmex.com")
    12  	if conn == nil {
    13  		t.Error("No connect to ws")
    14  	}
    15  }
    16  
    17  func TestConnectDev(t *testing.T) {
    18  	conn := Connect("testnet.bitmex.com")
    19  	if conn == nil {
    20  		t.Error("No connect to testnet ws")
    21  	}
    22  }
    23  
    24  func TestConnectFail(t *testing.T) {
    25  	defer func() {
    26  		if r := recover(); r == nil {
    27  			t.Errorf("The code did not panic")
    28  		}
    29  	}()
    30  	Connect("")
    31  }
    32  
    33  func TestWorkerReadMessages(t *testing.T) {
    34  	chReaderMessage := make(chan []byte)
    35  	conn := Connect("testnet.bitmex.com")
    36  	go ReadFromWSToChannel(conn, chReaderMessage)
    37  	message := <-chReaderMessage
    38  	if message == nil {
    39  		t.Error("Empty message")
    40  	}
    41  	close(chReaderMessage)
    42  }
    43  
    44  func TestWorkerWriteMessages(t *testing.T) {
    45  
    46  	conn := Connect("testnet.bitmex.com")
    47  
    48  	// Read
    49  	chReadFromWS := make(chan []byte, 10)
    50  	go ReadFromWSToChannel(conn, chReadFromWS)
    51  
    52  	// Write
    53  	chWriteToWS := make(chan interface{}, 10)
    54  	go WriteFromChannelToWS(conn, chWriteToWS)
    55  
    56  	// Send ping
    57  	chWriteToWS <- []byte(`ping`)
    58  
    59  	// Read first response message
    60  	message := <-chReadFromWS
    61  	if !strings.Contains(string(message), "Welcome to the BitMEX") {
    62  		fmt.Println(string(message))
    63  		t.Error("No welcome message")
    64  	}
    65  
    66  	// Read second response message
    67  	message = <-chReadFromWS
    68  	if !strings.Contains(string(message), "pong") {
    69  		fmt.Println(string(message))
    70  		t.Error("No pong message")
    71  	}
    72  
    73  	time.Sleep(1 * time.Second)
    74  }