// Copyright 2021 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package cmd import ( "bufio" "bytes" "strings" "testing" "github.com/stretchr/testify/assert" ) func TestPktLine(t *testing.T) { // test read ctx := t.Context() s := strings.NewReader("0000") r := bufio.NewReader(s) result, err := readPktLine(ctx, r, pktLineTypeFlush) assert.NoError(t, err) assert.Equal(t, pktLineTypeFlush, result.Type) s = strings.NewReader("0006a\n") r = bufio.NewReader(s) result, err = readPktLine(ctx, r, pktLineTypeData) assert.NoError(t, err) assert.Equal(t, pktLineTypeData, result.Type) assert.Equal(t, []byte("a\n"), result.Data) // test write w := bytes.NewBuffer([]byte{}) err = writeFlushPktLine(ctx, w) assert.NoError(t, err) assert.Equal(t, []byte("0000"), w.Bytes()) w.Reset() err = writeDataPktLine(ctx, w, []byte("a\nb")) assert.NoError(t, err) assert.Equal(t, []byte("0007a\nb"), w.Bytes()) } func TestParseGitHookCommitRefLine(t *testing.T) { oldCommitID, newCommitID, refName, ok := parseGitHookCommitRefLine("a b c") assert.True(t, ok) assert.Equal(t, "a", oldCommitID) assert.Equal(t, "b", newCommitID) assert.Equal(t, "c", string(refName)) _, _, _, ok = parseGitHookCommitRefLine("a\tb\tc") assert.False(t, ok) _, _, _, ok = parseGitHookCommitRefLine("a b") assert.False(t, ok) }