65 lines
1.6 KiB
Go
65 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"path/filepath"
|
|
"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(filepath.Join(c.MkDir(), "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]map[AlbumID]bool{
|
|
"frégate": map[AlbumID]bool{albumsDataTest[10].ID: true},
|
|
"Éditeur:Dupuis": map[AlbumID]bool{8179: true, 9935: true, 160366: true},
|
|
"FOOOOOOOBAAAAAR": map[AlbumID]bool{},
|
|
}
|
|
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 _, resAlbum := range res {
|
|
_, ok := expected[resAlbum.ID]
|
|
c.Check(ok, Equals, true, Commentf("Looking for %d in %s", resAlbum.ID, expected))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
log.Printf("%s: %s", c.TestName(), time.Since(start))
|
|
}
|