hnakra/protocol/message_base_test.go

71 lines
1.8 KiB
Go

package protocol
import "bytes"
import "testing"
func TestMessageLogin (test *testing.T) {
conduit := new(bytes.Buffer)
message := MessageLogin {
ID: 0,
Version: Version { 1, 3 },
User: "SomeUser",
Key: []byte { 100, 2, 49 },
Name: "SomeName",
Description: "SomeDescription",
Scheme: "SomeScheme",
Host: "SomeHost",
Path: "SomePath",
}
message.Send(conduit)
ty, err := ReadType(conduit)
if err != nil { test.Fatal("when reading type code:", err) }
if ty != TypeLogin { test.Fatal("expected", TypeLogin, "got", ty) }
got, err := ReadMessageLogin(conduit)
if err != nil { test.Fatal("when reading message:", err) }
equal :=
message.ID == got.ID &&
message.Version == got.Version &&
message.User == got.User &&
sliceEqual(message.Key, got.Key) &&
message.Name == got.Name &&
message.Description == got.Description &&
message.Scheme == got.Scheme &&
message.Host == got.Host &&
message.Path == got.Path
if !equal { test.Fatal("structures not equal") }
if conduit.Len() != 0 {
test.Fatal("buffer len", conduit.Len(), "instead of 0")
}
}
func TestMessageStatus (test *testing.T) {
conduit := new(bytes.Buffer)
message := MessageStatus {
ID: 0,
Status: StatusBadMount,
}
message.Send(conduit)
ty, err := ReadType(conduit)
if err != nil { test.Fatal("when reading type code:", err) }
if ty != TypeStatus { test.Fatal("expected", TypeStatus, "got", ty) }
got, err := ReadMessageStatus(conduit)
if err != nil { test.Fatal("when reading message:", err) }
equal :=
message.ID == got.ID &&
message.Status == got.Status
if !equal { test.Fatal("structures not equal") }
if conduit.Len() != 0 {
test.Fatal("buffer len", conduit.Len(), "instead of 0")
}
}