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")
 | |
| 	}
 | |
| }
 |