package message 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 (s *MockScreen) Close() error { return 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) } }