@@ -20,3 +20,44 @@ func TestTreeEntryById(t *testing.T) {
2020 t .Fatalf ("entry id %v was not found" , id )
2121 }
2222}
23+
24+ func TestTreeBuilderInsert (t * testing.T ) {
25+ repo := createTestRepo (t )
26+ defer cleanupTestRepo (t , repo )
27+
28+ subTree , err := repo .TreeBuilder ()
29+ if err != nil {
30+ t .Fatalf ("TreeBuilder: %v" , err )
31+ }
32+ defer subTree .Free ()
33+
34+ odb , err := repo .Odb ()
35+ if err != nil {
36+ t .Fatalf ("repo.Odb: %v" , err )
37+ }
38+ blobId , err := odb .Write ([]byte ("hello" ), ObjectBlob )
39+ if err != nil {
40+ t .Fatalf ("odb.Write: %v" , err )
41+ }
42+ if err = subTree .Insert ("subfile" , blobId , FilemodeBlobExecutable ); err != nil {
43+ t .Fatalf ("TreeBuilder.Insert: %v" , err )
44+ }
45+ treeID , err := subTree .Write ()
46+ if err != nil {
47+ t .Fatalf ("TreeBuilder.Write: %v" , err )
48+ }
49+
50+ tree , err := repo .LookupTree (treeID )
51+ if err != nil {
52+ t .Fatalf ("LookupTree: %v" , err )
53+ }
54+
55+ entry , err := tree .EntryByPath ("subfile" )
56+ if err != nil {
57+ t .Fatalf ("tree.EntryByPath(%q): %v" , "subfile" , err )
58+ }
59+
60+ if ! entry .Id .Equal (blobId ) {
61+ t .Fatalf ("got oid %v, want %v" , entry .Id , blobId )
62+ }
63+ }
0 commit comments