81 lines
1.4 KiB
Go
81 lines
1.4 KiB
Go
package query
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
type TestItem struct {
|
|
Words
|
|
NoGeoLocation
|
|
}
|
|
|
|
func TestQuery(t *testing.T) {
|
|
testItems := []ISearchable{}
|
|
|
|
s1234 := "1234"
|
|
sApple := "Apple"
|
|
s0000 := "0000"
|
|
|
|
sDat0 := "Dat0"
|
|
data0 := []*string{}
|
|
data0 = append(data0, &s1234)
|
|
data0 = append(data0, &sApple)
|
|
t0 := TestItem{}
|
|
t0.Key = &sDat0
|
|
t0.SearchData = &data0
|
|
testItems = append(testItems, &t0)
|
|
|
|
sDat1 := "Dat1"
|
|
data1 := []*string{}
|
|
data1 = append(data1, &s0000)
|
|
data1 = append(data1, &sApple)
|
|
t1 := TestItem{}
|
|
t1.Key = &sDat1
|
|
t1.SearchData = &data1
|
|
testItems = append(testItems, &t1)
|
|
|
|
sDat2 := "Dat2"
|
|
data2 := []*string{}
|
|
data2 = append(data2, &sDat0)
|
|
t2 := TestItem{}
|
|
t2.Key = &sDat2
|
|
t2.SearchData = &data2
|
|
testItems = append(testItems, &t2)
|
|
|
|
qo, err := MatchKeys("Apple", &testItems)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
if len(*qo.Results) != 2 {
|
|
t.Error("Expected 2 results when searching for \"Apple\"")
|
|
}
|
|
|
|
qo, err = MatchKeys("0000", &testItems)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
if len(*qo.Results) != 1 {
|
|
t.Error("Expected 1 results when searching for \"0000\"")
|
|
}
|
|
|
|
qo, err = MatchKeys("Dat0", &testItems)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
if len(*qo.Results) != 1 {
|
|
t.Error("Expected 1 results when searching for \"Dat0\"")
|
|
}
|
|
|
|
qo, err = MatchKeys("Dat2 Dat0", &testItems)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
if len(*qo.Results) != 1 {
|
|
t.Error("Expected 1 results when searching for \"Dat2 Dat0\"")
|
|
}
|
|
}
|