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