streamwriter_test.go 951 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package proxy
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. "google.golang.org/grpc/metadata"
  7. v1 "github.com/docker/api/protos/containers/v1"
  8. )
  9. type logServer struct {
  10. logs []byte
  11. }
  12. func (ls *logServer) Send(response *v1.LogsResponse) error {
  13. return nil
  14. }
  15. func (ls *logServer) SetHeader(metadata.MD) error {
  16. return nil
  17. }
  18. func (ls *logServer) SendHeader(metadata.MD) error {
  19. return nil
  20. }
  21. func (ls *logServer) SetTrailer(metadata.MD) {
  22. }
  23. func (ls *logServer) Context() context.Context {
  24. return nil
  25. }
  26. func (ls *logServer) SendMsg(m interface{}) error {
  27. s, _ := m.(*v1.LogsResponse)
  28. ls.logs = s.Logs
  29. return nil
  30. }
  31. func (ls *logServer) RecvMsg(m interface{}) error {
  32. return nil
  33. }
  34. func TestStreamWriter(t *testing.T) {
  35. ls := &logServer{}
  36. sw := newStreamWriter(ls)
  37. in := []byte{104, 101, 108, 108, 111}
  38. l, err := sw.Write(in)
  39. assert.Nil(t, err)
  40. assert.Equal(t, len(in), l)
  41. assert.Equal(t, in, ls.logs)
  42. }