0
0
Fork 0

added index alias tests for multiple aliases

This commit is contained in:
Marty Schoch 2014-11-25 14:25:56 -05:00
parent b3841fa335
commit 5fa93c8540
1 changed files with 134 additions and 0 deletions

View File

@ -10,6 +10,136 @@ import (
"github.com/blevesearch/bleve/search"
)
func TestIndexAliasMulti(t *testing.T) {
ei1Count := uint64(7)
ei1 := &stubIndex{
err: nil,
docCountResult: &ei1Count,
searchResult: &SearchResult{
Total: 1,
Hits: search.DocumentMatchCollection{
&search.DocumentMatch{
ID: "a",
Score: 1.0,
},
},
Took: 1 * time.Second,
MaxScore: 1.0,
}}
ei2Count := uint64(8)
ei2 := &stubIndex{
err: nil,
docCountResult: &ei2Count,
searchResult: &SearchResult{
Total: 1,
Hits: search.DocumentMatchCollection{
&search.DocumentMatch{
ID: "b",
Score: 2.0,
},
},
Took: 2 * time.Second,
MaxScore: 2.0,
}}
alias := NewIndexAlias(ei1, ei2)
err := alias.Index("a", "a")
if err != ErrorAliasMulti {
t.Errorf("expected %v, got %v", ErrorAliasMulti, err)
}
err = alias.Delete("a")
if err != ErrorAliasMulti {
t.Errorf("expected %v, got %v", ErrorAliasMulti, err)
}
err = alias.Batch(NewBatch())
if err != ErrorAliasMulti {
t.Errorf("expected %v, got %v", ErrorAliasMulti, err)
}
_, err = alias.Document("a")
if err != ErrorAliasMulti {
t.Errorf("expected %v, got %v", ErrorAliasMulti, err)
}
_, err = alias.Fields()
if err != ErrorAliasMulti {
t.Errorf("expected %v, got %v", ErrorAliasMulti, err)
}
_, err = alias.GetInternal([]byte("a"))
if err != ErrorAliasMulti {
t.Errorf("expected %v, got %v", ErrorAliasMulti, err)
}
err = alias.SetInternal([]byte("a"), []byte("a"))
if err != ErrorAliasMulti {
t.Errorf("expected %v, got %v", ErrorAliasMulti, err)
}
err = alias.DeleteInternal([]byte("a"))
if err != ErrorAliasMulti {
t.Errorf("expected %v, got %v", ErrorAliasMulti, err)
}
res := alias.DumpAll()
if res != nil {
t.Errorf("expected nil, got %v", res)
}
res = alias.DumpDoc("a")
if res != nil {
t.Errorf("expected nil, got %v", res)
}
res = alias.DumpFields()
if res != nil {
t.Errorf("expected nil, got %v", res)
}
mapping := alias.Mapping()
if mapping != nil {
t.Errorf("expected nil, got %v", res)
}
indexStat := alias.Stats()
if indexStat != nil {
t.Errorf("expected nil, got %v", res)
}
// now a few things that should work
sr := NewSearchRequest(NewTermQuery("test"))
expected := &SearchResult{
Total: 2,
Hits: search.DocumentMatchCollection{
&search.DocumentMatch{
ID: "b",
Score: 2.0,
},
&search.DocumentMatch{
ID: "a",
Score: 1.0,
},
},
Took: 3 * time.Second,
MaxScore: 2.0,
}
results, err := alias.Search(sr)
if err != nil {
t.Error(err)
}
if !reflect.DeepEqual(results, expected) {
t.Errorf("expected %#v, got %#v", expected, results)
}
count, err := alias.DocCount()
if count != (*ei1.docCountResult + *ei2.docCountResult) {
t.Errorf("expected %d, got %d", (*ei1.docCountResult + *ei2.docCountResult), count)
}
}
// TestMultiSearchNoError
func TestMultiSearchNoError(t *testing.T) {
ei1 := &stubIndex{err: nil, searchResult: &SearchResult{
@ -102,6 +232,7 @@ type stubIndex struct {
err error
searchResult *SearchResult
documentResult *document.Document
docCountResult *uint64
}
func (i *stubIndex) Index(id string, data interface{}) error {
@ -124,6 +255,9 @@ func (i *stubIndex) Document(id string) (*document.Document, error) {
}
func (i *stubIndex) DocCount() (uint64, error) {
if i.docCountResult != nil {
return *i.docCountResult, nil
}
return 0, i.err
}