You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

hook_test.go 975B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // Copyright 2021 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package cmd
  4. import (
  5. "bufio"
  6. "bytes"
  7. "context"
  8. "strings"
  9. "testing"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestPktLine(t *testing.T) {
  13. // test read
  14. ctx := context.Background()
  15. s := strings.NewReader("0000")
  16. r := bufio.NewReader(s)
  17. result, err := readPktLine(ctx, r, pktLineTypeFlush)
  18. assert.NoError(t, err)
  19. assert.Equal(t, pktLineTypeFlush, result.Type)
  20. s = strings.NewReader("0006a\n")
  21. r = bufio.NewReader(s)
  22. result, err = readPktLine(ctx, r, pktLineTypeData)
  23. assert.NoError(t, err)
  24. assert.Equal(t, pktLineTypeData, result.Type)
  25. assert.Equal(t, []byte("a\n"), result.Data)
  26. // test write
  27. w := bytes.NewBuffer([]byte{})
  28. err = writeFlushPktLine(ctx, w)
  29. assert.NoError(t, err)
  30. assert.Equal(t, []byte("0000"), w.Bytes())
  31. w.Reset()
  32. err = writeDataPktLine(ctx, w, []byte("a\nb"))
  33. assert.NoError(t, err)
  34. assert.Equal(t, []byte("0007a\nb"), w.Bytes())
  35. }