ssh-chat/chat/screen_test.go

52 lines
996 B
Go
Raw Normal View History

2014-12-21 23:24:03 +01:00
package chat
import (
"reflect"
"testing"
)
// Used for testing
type MockScreen struct {
buffer []byte
}
func (s *MockScreen) Write(data []byte) (n int, err error) {
s.buffer = append(s.buffer, data...)
return len(data), nil
}
func (s *MockScreen) Read(p *[]byte) (n int, err error) {
*p = s.buffer
s.buffer = []byte{}
return len(*p), nil
}
func TestScreen(t *testing.T) {
var actual, expected []byte
if !reflect.DeepEqual(actual, expected) {
t.Errorf("Got: %v; Expected: %v", actual, expected)
}
actual = []byte("foo")
expected = []byte("foo")
if !reflect.DeepEqual(actual, expected) {
t.Errorf("Got: %v; Expected: %v", actual, expected)
}
s := &MockScreen{}
expected = nil
s.Read(&actual)
if !reflect.DeepEqual(actual, expected) {
t.Errorf("Got: %v; Expected: %v", actual, expected)
}
expected = []byte("hello, world")
s.Write(expected)
s.Read(&actual)
if !reflect.DeepEqual(actual, expected) {
t.Errorf("Got: %v; Expected: %v", actual, expected)
}
}