writer_test.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // Copyright (c) 2016 Uber Technologies, Inc.
  2. //
  3. // Permission is hereby granted, free of charge, to any person obtaining a copy
  4. // of this software and associated documentation files (the "Software"), to deal
  5. // in the Software without restriction, including without limitation the rights
  6. // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  7. // copies of the Software, and to permit persons to whom the Software is
  8. // furnished to do so, subject to the following conditions:
  9. //
  10. // The above copyright notice and this permission notice shall be included in
  11. // all copies or substantial portions of the Software.
  12. //
  13. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  14. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  15. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  16. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  17. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  18. // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  19. // THE SOFTWARE.
  20. package zaptest
  21. import (
  22. "errors"
  23. "testing"
  24. "github.com/stretchr/testify/assert"
  25. )
  26. func TestSyncer(t *testing.T) {
  27. err := errors.New("sentinel")
  28. s := &Syncer{}
  29. s.SetError(err)
  30. assert.Equal(t, err, s.Sync(), "Expected Sync to fail with provided error.")
  31. assert.True(t, s.Called(), "Expected to record that Sync was called.")
  32. }
  33. func TestDiscarder(t *testing.T) {
  34. d := &Discarder{}
  35. payload := []byte("foo")
  36. n, err := d.Write(payload)
  37. assert.NoError(t, err, "Unexpected error writing to Discarder.")
  38. assert.Equal(t, len(payload), n, "Wrong number of bytes written.")
  39. }
  40. func TestFailWriter(t *testing.T) {
  41. w := &FailWriter{}
  42. payload := []byte("foo")
  43. n, err := w.Write(payload)
  44. assert.Error(t, err, "Expected an error writing to FailWriter.")
  45. assert.Equal(t, len(payload), n, "Wrong number of bytes written.")
  46. }
  47. func TestShortWriter(t *testing.T) {
  48. w := &ShortWriter{}
  49. payload := []byte("foo")
  50. n, err := w.Write(payload)
  51. assert.NoError(t, err, "Unexpected error writing to ShortWriter.")
  52. assert.Equal(t, len(payload)-1, n, "Wrong number of bytes written.")
  53. }
  54. func TestBuffer(t *testing.T) {
  55. buf := &Buffer{}
  56. buf.WriteString("foo\n")
  57. buf.WriteString("bar\n")
  58. assert.Equal(t, []string{"foo", "bar"}, buf.Lines(), "Unexpected output from Lines.")
  59. assert.Equal(t, "foo\nbar", buf.Stripped(), "Unexpected output from Stripped.")
  60. }