MCPcopy Create free account
hub / github.com/libgit2/git2go / TestObjectPoymorphism

Function TestObjectPoymorphism

object_test.go:8–79  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

6)
7
8func TestObjectPoymorphism(t *testing.T) {
9 t.Parallel()
10 repo := createTestRepo(t)
11 defer cleanupTestRepo(t, repo)
12
13 commitId, treeId := seedTestRepo(t, repo)
14
15 var obj *Object
16
17 commit, err := repo.LookupCommit(commitId)
18 checkFatal(t, err)
19
20 obj = &commit.Object
21 if obj.Type() != ObjectCommit {
22 t.Fatalf("Wrong object type, expected commit, have %v", obj.Type())
23 }
24
25 commitTree, err := commit.Tree()
26 checkFatal(t, err)
27 commitTree.EntryCount()
28
29 tree, err := repo.LookupTree(treeId)
30 checkFatal(t, err)
31
32 obj = &tree.Object
33 if obj.Type() != ObjectTree {
34 t.Fatalf("Wrong object type, expected tree, have %v", obj.Type())
35 }
36
37 tree2, err := obj.AsTree()
38 if err != nil {
39 t.Fatalf("Converting back to *Tree is not ok")
40 }
41
42 entry := tree2.EntryByName("README")
43 if entry == nil {
44 t.Fatalf("Tree did not have expected \"README\" entry")
45 }
46
47 if entry.Filemode != FilemodeBlob {
48 t.Fatal("Wrong filemode for \"README\"")
49 }
50
51 _, err = obj.AsCommit()
52 if err == nil {
53 t.Fatalf("*Tree is somehow the same as *Commit")
54 }
55
56 obj, err = repo.Lookup(tree.Id())
57 checkFatal(t, err)
58
59 _, err = obj.AsTree()
60 if err != nil {
61 t.Fatalf("Lookup creates the wrong type")
62 }
63
64 if obj.Type() != ObjectTree {
65 t.Fatalf("Type() doesn't agree with dynamic type")

Callers

nothing calls this directly

Calls 15

TypeMethod · 0.95
AsTreeMethod · 0.95
AsCommitMethod · 0.95
IdMethod · 0.95
createTestRepoFunction · 0.85
cleanupTestRepoFunction · 0.85
seedTestRepoFunction · 0.85
checkFatalFunction · 0.85
LookupCommitMethod · 0.80
TreeMethod · 0.80
LookupTreeMethod · 0.80
EntryByNameMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…