71 lines
1.8 KiB
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")
|
|
}
|
|
}
|