1package git23import (4 "context"5 "testing"67 "github.com/stretchr/testify/assert"8)910func TestTree_TreeEntry(t *testing.T) {11 ctx := context.Background()12 tree, err := testrepo.LsTree(ctx, "master")13 if err != nil {14 t.Fatal(err)15 }1617 e, err := tree.TreeEntry(ctx, "")18 if err != nil {19 t.Fatal(err)20 }2122 assert.Equal(t, tree.id, e.ID())23 assert.Equal(t, ObjectTree, e.Type())24 assert.True(t, e.IsTree())25}2627func TestTree_Blob(t *testing.T) {28 ctx := context.Background()29 tree, err := testrepo.LsTree(ctx, testrepoMarks[31].String())30 if err != nil {31 t.Fatal(err)32 }3334 t.Run("not a blob", func(t *testing.T) {35 _, err := tree.Blob(ctx, "src")36 assert.Equal(t, ErrNotBlob, err)37 })3839 t.Run("get a blob", func(t *testing.T) {40 b, err := tree.Blob(ctx, "README.txt")41 if err != nil {42 t.Fatal(err)43 }4445 assert.True(t, b.IsBlob())46 })4748 t.Run("get an executable as blob", func(t *testing.T) {49 b, err := tree.Blob(ctx, "run.sh")50 if err != nil {51 t.Fatal(err)52 }5354 assert.True(t, b.IsExec())55 })56}