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.

parse_nogogit_test.go 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // Copyright 2021 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. //go:build !gogit
  5. // +build !gogit
  6. package git
  7. import (
  8. "testing"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestParseTreeEntries(t *testing.T) {
  12. testCases := []struct {
  13. Input string
  14. Expected []*TreeEntry
  15. }{
  16. {
  17. Input: `100644 blob ea0d83c9081af9500ac9f804101b3fd0a5c293af 8218 README.md
  18. 100644 blob 037f27dc9d353ae4fd50f0474b2194c593914e35 4681 README_ZH.md
  19. 100644 blob 9846a94f7e8350a916632929d0fda38c90dd2ca8 429 SECURITY.md
  20. 040000 tree 84b90550547016f73c5dd3f50dea662389e67b6d - assets
  21. `,
  22. Expected: []*TreeEntry{
  23. {
  24. ID: MustIDFromString("ea0d83c9081af9500ac9f804101b3fd0a5c293af"),
  25. name: "README.md",
  26. entryMode: EntryModeBlob,
  27. size: 8218,
  28. sized: true,
  29. },
  30. {
  31. ID: MustIDFromString("037f27dc9d353ae4fd50f0474b2194c593914e35"),
  32. name: "README_ZH.md",
  33. entryMode: EntryModeBlob,
  34. size: 4681,
  35. sized: true,
  36. },
  37. {
  38. ID: MustIDFromString("9846a94f7e8350a916632929d0fda38c90dd2ca8"),
  39. name: "SECURITY.md",
  40. entryMode: EntryModeBlob,
  41. size: 429,
  42. sized: true,
  43. },
  44. {
  45. ID: MustIDFromString("84b90550547016f73c5dd3f50dea662389e67b6d"),
  46. name: "assets",
  47. entryMode: EntryModeTree,
  48. sized: true,
  49. },
  50. },
  51. },
  52. }
  53. for _, testCase := range testCases {
  54. entries, err := ParseTreeEntries([]byte(testCase.Input))
  55. assert.NoError(t, err)
  56. assert.Len(t, entries, len(testCase.Expected))
  57. for i, entry := range entries {
  58. assert.EqualValues(t, testCase.Expected[i].ID, entry.ID)
  59. assert.EqualValues(t, testCase.Expected[i].name, entry.name)
  60. assert.EqualValues(t, testCase.Expected[i].entryMode, entry.entryMode)
  61. assert.EqualValues(t, testCase.Expected[i].sized, entry.sized)
  62. assert.EqualValues(t, testCase.Expected[i].size, entry.size)
  63. }
  64. }
  65. }