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 }