1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-06-27 21:05:53 +00:00
FrankerFaceZ/socketserver/server/handlecore_test.go
2016-04-28 14:36:59 -07:00

58 lines
1.3 KiB
Go

package server
import (
"fmt"
"testing"
"github.com/gorilla/websocket"
)
func ExampleUnmarshalClientMessage() {
sourceData := []byte("100 hello [\"ffz_3.5.30\",\"898b5bfa-b577-47bb-afb4-252c703b67d6\"]")
var cm ClientMessage
err := UnmarshalClientMessage(sourceData, websocket.TextMessage, &cm)
fmt.Println(err)
fmt.Println(cm.MessageID)
fmt.Println(cm.Command)
fmt.Println(cm.Arguments)
// Output:
// <nil>
// 100
// hello
// [ffz_3.5.30 898b5bfa-b577-47bb-afb4-252c703b67d6]
}
func ExampleMarshalClientMessage() {
var cm ClientMessage = ClientMessage{
MessageID: -1,
Command: "do_authorize",
Arguments: "1234567890",
}
payloadType, data, err := MarshalClientMessage(&cm)
fmt.Println(err)
fmt.Println(payloadType == websocket.TextMessage)
fmt.Println(string(data))
// Output:
// <nil>
// true
// -1 do_authorize "1234567890"
}
func TestArgumentsAsStringAndBool(t *testing.T) {
sourceData := []byte("1 foo [\"string\", false]")
var cm ClientMessage
err := UnmarshalClientMessage(sourceData, websocket.TextMessage, &cm)
if err != nil {
t.Fatal(err)
}
str, boolean, err := cm.ArgumentsAsStringAndBool()
if err != nil {
t.Fatal(err)
}
if str != "string" {
t.Error("Expected first array item to be 'string', got", str)
}
if boolean != false {
t.Error("Expected second array item to be false, got", boolean)
}
}