package plumbing
import . "gopkg.in/check.v1"
type ObjectSuite struct{}
var _ = Suite(&ObjectSuite{})
func (s *ObjectSuite) TestObjectTypeString(c *C) {
c.Assert(CommitObject.String(), Equals, "commit")
c.Assert(TreeObject.String(), Equals, "tree")
c.Assert(BlobObject.String(), Equals, "blob")
c.Assert(TagObject.String(), Equals, "tag")
c.Assert(REFDeltaObject.String(), Equals, "ref-delta")
c.Assert(OFSDeltaObject.String(), Equals, "ofs-delta")
c.Assert(AnyObject.String(), Equals, "any")
c.Assert(ObjectType(42).String(), Equals, "unknown")
}
func (s *ObjectSuite) TestObjectTypeBytes(c *C) {
c.Assert(CommitObject.Bytes(), DeepEquals, []byte("commit"))
}
func (s *ObjectSuite) TestObjectTypeValid(c *C) {
c.Assert(CommitObject.Valid(), Equals, true)
c.Assert(ObjectType(42).Valid(), Equals, false)
}
func (s *ObjectSuite) TestParseObjectType(c *C) {
for s, e := range map[string]ObjectType{
"commit": CommitObject,
"tree": TreeObject,
"blob": BlobObject,
"tag": TagObject,
"ref-delta": REFDeltaObject,
"ofs-delta": OFSDeltaObject,
} {
t, err := ParseObjectType(s)
c.Assert(err, IsNil)
c.Assert(e, Equals, t)
}
t, err := ParseObjectType("foo")
c.Assert(err, Equals, ErrInvalidType)
c.Assert(t, Equals, InvalidObject)
}