code.gitea.io/gitea@v1.19.3/modules/git/parse_gogit_test.go (about) 1 // Copyright 2018 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 //go:build gogit 5 6 package git 7 8 import ( 9 "testing" 10 11 "github.com/go-git/go-git/v5/plumbing/filemode" 12 "github.com/go-git/go-git/v5/plumbing/object" 13 "github.com/stretchr/testify/assert" 14 ) 15 16 func TestParseTreeEntries(t *testing.T) { 17 testCases := []struct { 18 Input string 19 Expected []*TreeEntry 20 }{ 21 { 22 Input: "", 23 Expected: []*TreeEntry{}, 24 }, 25 { 26 Input: "100644 blob 61ab7345a1a3bbc590068ccae37b8515cfc5843c 1022\texample/file2.txt\n", 27 Expected: []*TreeEntry{ 28 { 29 ID: MustIDFromString("61ab7345a1a3bbc590068ccae37b8515cfc5843c"), 30 gogitTreeEntry: &object.TreeEntry{ 31 Hash: MustIDFromString("61ab7345a1a3bbc590068ccae37b8515cfc5843c"), 32 Name: "example/file2.txt", 33 Mode: filemode.Regular, 34 }, 35 size: 1022, 36 sized: true, 37 }, 38 }, 39 }, 40 { 41 Input: "120000 blob 61ab7345a1a3bbc590068ccae37b8515cfc5843c 234131\t\"example/\\n.txt\"\n" + 42 "040000 tree 1d01fb729fb0db5881daaa6030f9f2d3cd3d5ae8 -\texample\n", 43 Expected: []*TreeEntry{ 44 { 45 ID: MustIDFromString("61ab7345a1a3bbc590068ccae37b8515cfc5843c"), 46 gogitTreeEntry: &object.TreeEntry{ 47 Hash: MustIDFromString("61ab7345a1a3bbc590068ccae37b8515cfc5843c"), 48 Name: "example/\n.txt", 49 Mode: filemode.Symlink, 50 }, 51 size: 234131, 52 sized: true, 53 }, 54 { 55 ID: MustIDFromString("1d01fb729fb0db5881daaa6030f9f2d3cd3d5ae8"), 56 sized: true, 57 gogitTreeEntry: &object.TreeEntry{ 58 Hash: MustIDFromString("1d01fb729fb0db5881daaa6030f9f2d3cd3d5ae8"), 59 Name: "example", 60 Mode: filemode.Dir, 61 }, 62 }, 63 }, 64 }, 65 } 66 67 for _, testCase := range testCases { 68 entries, err := ParseTreeEntries([]byte(testCase.Input)) 69 assert.NoError(t, err) 70 assert.EqualValues(t, testCase.Expected, entries) 71 } 72 }