| package index |
| |
| import ( |
| "path/filepath" |
| |
| . "gopkg.in/check.v1" |
| ) |
| |
| func (s *IndexSuite) TestIndexAdd(c *C) { |
| idx := &Index{} |
| e := idx.Add("foo") |
| e.Size = 42 |
| |
| e, err := idx.Entry("foo") |
| c.Assert(err, IsNil) |
| c.Assert(e.Name, Equals, "foo") |
| c.Assert(e.Size, Equals, uint32(42)) |
| } |
| |
| func (s *IndexSuite) TestIndexEntry(c *C) { |
| idx := &Index{ |
| Entries: []*Entry{ |
| {Name: "foo", Size: 42}, |
| {Name: "bar", Size: 82}, |
| }, |
| } |
| |
| e, err := idx.Entry("foo") |
| c.Assert(err, IsNil) |
| c.Assert(e.Name, Equals, "foo") |
| |
| e, err = idx.Entry("missing") |
| c.Assert(e, IsNil) |
| c.Assert(err, Equals, ErrEntryNotFound) |
| } |
| |
| func (s *IndexSuite) TestIndexRemove(c *C) { |
| idx := &Index{ |
| Entries: []*Entry{ |
| {Name: "foo", Size: 42}, |
| {Name: "bar", Size: 82}, |
| }, |
| } |
| |
| e, err := idx.Remove("foo") |
| c.Assert(err, IsNil) |
| c.Assert(e.Name, Equals, "foo") |
| |
| e, err = idx.Remove("foo") |
| c.Assert(e, IsNil) |
| c.Assert(err, Equals, ErrEntryNotFound) |
| } |
| |
| func (s *IndexSuite) TestIndexGlob(c *C) { |
| idx := &Index{ |
| Entries: []*Entry{ |
| {Name: "foo/bar/bar", Size: 42}, |
| {Name: "foo/baz/qux", Size: 42}, |
| {Name: "fux", Size: 82}, |
| }, |
| } |
| |
| m, err := idx.Glob(filepath.Join("foo", "b*")) |
| c.Assert(err, IsNil) |
| c.Assert(m, HasLen, 2) |
| c.Assert(m[0].Name, Equals, "foo/bar/bar") |
| c.Assert(m[1].Name, Equals, "foo/baz/qux") |
| |
| m, err = idx.Glob("f*") |
| c.Assert(err, IsNil) |
| c.Assert(m, HasLen, 3) |
| |
| m, err = idx.Glob("f*/baz/q*") |
| c.Assert(err, IsNil) |
| c.Assert(m, HasLen, 1) |
| } |