1package plumbing 2 3import . "gopkg.in/check.v1" 4 5type ReferenceSuite struct{} 6 7var _ = Suite(&ReferenceSuite{}) 8 9const ( 10 ExampleReferenceName ReferenceName = "refs/heads/v4" 11) 12 13func (s *ReferenceSuite) TestReferenceTypeString(c *C) { 14 c.Assert(SymbolicReference.String(), Equals, "symbolic-reference") 15} 16 17func (s *ReferenceSuite) TestReferenceNameShort(c *C) { 18 c.Assert(ExampleReferenceName.Short(), Equals, "v4") 19} 20 21func (s *ReferenceSuite) TestReferenceNameWithSlash(c *C) { 22 r := ReferenceName("refs/remotes/origin/feature/AllowSlashes") 23 c.Assert(r.Short(), Equals, "origin/feature/AllowSlashes") 24} 25 26func (s *ReferenceSuite) TestReferenceNameNote(c *C) { 27 r := ReferenceName("refs/notes/foo") 28 c.Assert(r.Short(), Equals, "notes/foo") 29} 30 31func (s *ReferenceSuite) TestNewReferenceFromStrings(c *C) { 32 r := NewReferenceFromStrings("refs/heads/v4", "6ecf0ef2c2dffb796033e5a02219af86ec6584e5") 33 c.Assert(r.Type(), Equals, HashReference) 34 c.Assert(r.Name(), Equals, ExampleReferenceName) 35 c.Assert(r.Hash(), Equals, NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5")) 36 37 r = NewReferenceFromStrings("HEAD", "ref: refs/heads/v4") 38 c.Assert(r.Type(), Equals, SymbolicReference) 39 c.Assert(r.Name(), Equals, HEAD) 40 c.Assert(r.Target(), Equals, ExampleReferenceName) 41} 42 43func (s *ReferenceSuite) TestNewSymbolicReference(c *C) { 44 r := NewSymbolicReference(HEAD, ExampleReferenceName) 45 c.Assert(r.Type(), Equals, SymbolicReference) 46 c.Assert(r.Name(), Equals, HEAD) 47 c.Assert(r.Target(), Equals, ExampleReferenceName) 48} 49 50func (s *ReferenceSuite) TestNewHashReference(c *C) { 51 r := NewHashReference(ExampleReferenceName, NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5")) 52 c.Assert(r.Type(), Equals, HashReference) 53 c.Assert(r.Name(), Equals, ExampleReferenceName) 54 c.Assert(r.Hash(), Equals, NewHash("6ecf0ef2c2dffb796033e5a02219af86ec6584e5")) 55} 56 57func (s *ReferenceSuite) TestNewBranchReferenceName(c *C) { 58 r := NewBranchReferenceName("foo") 59 c.Assert(r.String(), Equals, "refs/heads/foo") 60} 61 62func (s *ReferenceSuite) TestNewNoteReferenceName(c *C) { 63 r := NewNoteReferenceName("foo") 64 c.Assert(r.String(), Equals, "refs/notes/foo") 65} 66 67func (s *ReferenceSuite) TestNewRemoteReferenceName(c *C) { 68 r := NewRemoteReferenceName("bar", "foo") 69 c.Assert(r.String(), Equals, "refs/remotes/bar/foo") 70} 71 72func (s *ReferenceSuite) TestNewRemoteHEADReferenceName(c *C) { 73 r := NewRemoteHEADReferenceName("foo") 74 c.Assert(r.String(), Equals, "refs/remotes/foo/HEAD") 75} 76 77func (s *ReferenceSuite) TestNewTagReferenceName(c *C) { 78 r := NewTagReferenceName("foo") 79 c.Assert(r.String(), Equals, "refs/tags/foo") 80} 81 82func (s *ReferenceSuite) TestIsBranch(c *C) { 83 r := ExampleReferenceName 84 c.Assert(r.IsBranch(), Equals, true) 85} 86 87func (s *ReferenceSuite) TestIsNote(c *C) { 88 r := ReferenceName("refs/notes/foo") 89 c.Assert(r.IsNote(), Equals, true) 90} 91 92func (s *ReferenceSuite) TestIsRemote(c *C) { 93 r := ReferenceName("refs/remotes/origin/master") 94 c.Assert(r.IsRemote(), Equals, true) 95} 96 97func (s *ReferenceSuite) TestIsTag(c *C) { 98 r := ReferenceName("refs/tags/v3.1.") 99 c.Assert(r.IsTag(), Equals, true) 100} 101