| 81 | } |
| 82 | |
| 83 | func (s *ObjectsSuite) TestParseTree(c *C) { |
| 84 | hash := plumbing.NewHash("a8d315b2b1c615d43042c3a62402b8a54288cf5c") |
| 85 | tree, err := GetTree(s.Storer, hash) |
| 86 | c.Assert(err, IsNil) |
| 87 | |
| 88 | c.Assert(tree.Entries, HasLen, 8) |
| 89 | |
| 90 | entry, err := tree.entry(".gitignore") |
| 91 | c.Assert(err, IsNil) |
| 92 | c.Assert(entry.Name, Equals, ".gitignore") |
| 93 | c.Assert(entry.Mode, Equals, filemode.Regular) |
| 94 | c.Assert(entry.Hash.String(), Equals, "32858aad3c383ed1ff0a0f9bdf231d54a00c9e88") |
| 95 | |
| 96 | count := 0 |
| 97 | iter := tree.Files() |
| 98 | defer iter.Close() |
| 99 | for f, err := iter.Next(); err == nil; f, err = iter.Next() { |
| 100 | count++ |
| 101 | if f.Name == "go/example.go" { |
| 102 | reader, err := f.Reader() |
| 103 | c.Assert(err, IsNil) |
| 104 | defer func() { c.Assert(reader.Close(), IsNil) }() |
| 105 | content, _ := io.ReadAll(reader) |
| 106 | c.Assert(content, HasLen, 2780) |
| 107 | } |
| 108 | } |
| 109 | |
| 110 | c.Assert(count, Equals, 9) |
| 111 | } |
| 112 | |
| 113 | func (s *ObjectsSuite) TestParseSignature(c *C) { |
| 114 | cases := map[string]Signature{ |