diff --git a/redisearch/client_test.go b/redisearch/client_test.go index 79493b1..0bee919 100644 --- a/redisearch/client_test.go +++ b/redisearch/client_test.go @@ -33,7 +33,7 @@ func init() { if err := c.CreateIndex(sc); err != nil { log.Fatal(err) } - ndocs := 100000 + ndocs := 10000 docs := make([]redisearch.Document, ndocs) for i := 0; i < ndocs; i++ { docs[i] = redisearch.NewDocument(fmt.Sprintf("doc%d", i), 1).Set("foo", "hello world") diff --git a/redisearch/query.go b/redisearch/query.go index ef41e7c..dedb3f6 100644 --- a/redisearch/query.go +++ b/redisearch/query.go @@ -106,7 +106,7 @@ func (p Paging) serialize() redis.Args { args := redis.Args{} // only serialize something if it's different than the default // The default is 0 10 - if p.Offset != DefaultOffset && p.Num != DefaultNum { + if p.Offset != DefaultOffset || p.Num != DefaultNum { args = args.Add("LIMIT", p.Offset, p.Num) } return args diff --git a/redisearch/query_test.go b/redisearch/query_test.go new file mode 100644 index 0000000..23dc911 --- /dev/null +++ b/redisearch/query_test.go @@ -0,0 +1,34 @@ +package redisearch + +import ( + "github.com/garyburd/redigo/redis" + "reflect" + "testing" +) + +func TestPaging_serialize(t *testing.T) { + type fields struct { + Offset int + Num int + } + tests := []struct { + name string + fields fields + want redis.Args + }{ + {"default", fields{0,10}, redis.Args{} }, + {"0-1000", fields{0,1000}, redis.Args{"LIMIT",0,1000} }, + {"100-200", fields{100,200}, redis.Args{"LIMIT",100,200} }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + p := Paging{ + Offset: tt.fields.Offset, + Num: tt.fields.Num, + } + if got := p.serialize(); !reflect.DeepEqual(got, tt.want) { + t.Errorf("serialize() = %v, want %v", got, tt.want) + } + }) + } +} \ No newline at end of file