Files
satbd-explorer/bleve_indexer_test.go
2016-01-21 10:00:17 +01:00

63 lines
1.5 KiB
Go

package main
import (
"log"
"time"
. "gopkg.in/check.v1"
)
type BleveIndexerSuite struct {
i Indexer
}
var _ = Suite(&BleveIndexerSuite{})
func (s *BleveIndexerSuite) SetUpSuite(c *C) {
var err error
start := time.Now()
s.i, err = NewBleveIndexer("satbd-test.bar.satellite")
c.Assert(err, IsNil)
for _, a := range albumsDataTest {
c.Assert(s.i.Index(&a), IsNil)
}
log.Printf("Indexing took %s", time.Since(start))
}
func (s *BleveIndexerSuite) TestCanRetrieveAlbum(c *C) {
start := time.Now()
for _, a := range albumsDataTest {
fromIndex, err := s.i.Get(a.ID)
if c.Check(err, IsNil) == true {
c.Check(*fromIndex, DeepEquals, a)
}
}
log.Printf("%s: %s", c.TestName(), time.Since(start))
}
func (s *BleveIndexerSuite) TestCanDeleteAlbum(c *C) {
c.Check(s.i.Delete(albumsDataTest[0].ID), IsNil)
c.Check(s.i.Index(&(albumsDataTest[0])), IsNil)
c.Check(s.i.Delete(0), ErrorMatches, "No album 0 in the index")
}
func (s *BleveIndexerSuite) TestCanSearch(c *C) {
data := map[string][]AlbumID{
"Black Crow Hermione": []AlbumID{albumsDataTest[10].ID},
"Plantu": []AlbumID{albumsDataTest[2].ID},
"FOOOOOOOBAAAAAR": []AlbumID{},
}
start := time.Now()
for q, expected := range data {
res, err := s.i.Search(q)
if c.Check(err, IsNil) == true {
if c.Check(len(res), Equals, len(expected)) == true {
for idx, resAlbum := range res {
c.Check(resAlbum.ID, Equals, expected[idx])
}
}
}
}
log.Printf("%s: %s", c.TestName(), time.Since(start))
}