Skip to content

Commit

Permalink
Add a test
Browse files Browse the repository at this point in the history
  • Loading branch information
xichen2020 committed Jan 12, 2019
1 parent 2f90c15 commit 777e6da
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions index/field/string_field_iterator_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package field

import (
"testing"

"github.com/xichen2020/eventdb/index"
"github.com/xichen2020/eventdb/values/iterator"

"github.com/golang/mock/gomock"
"github.com/stretchr/testify/require"
)

func TestStringFieldIterator(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()

docIt := index.NewMockDocIDSetIterator(ctrl)
gomock.InOrder(
docIt.EXPECT().Next().Return(true),
docIt.EXPECT().DocID().Return(int32(3)),
docIt.EXPECT().Next().Return(true),
docIt.EXPECT().DocID().Return(int32(4)),
docIt.EXPECT().Next().Return(true),
docIt.EXPECT().DocID().Return(int32(7)),
docIt.EXPECT().Next().Return(true),
docIt.EXPECT().DocID().Return(int32(10)),
docIt.EXPECT().Next().Return(true),
docIt.EXPECT().DocID().Return(int32(15)),
docIt.EXPECT().Next().Return(false).AnyTimes(),
docIt.EXPECT().Close(),
)

valsIt := iterator.NewMockForwardStringIterator(ctrl)
gomock.InOrder(
valsIt.EXPECT().Next().Return(true),
valsIt.EXPECT().Current().Return("a"),
valsIt.EXPECT().Next().Return(true),
valsIt.EXPECT().Current().Return("b"),
valsIt.EXPECT().Next().Return(true),
valsIt.EXPECT().Current().Return("c"),
valsIt.EXPECT().Next().Return(true),
valsIt.EXPECT().Current().Return("d"),
valsIt.EXPECT().Next().Return(true),
valsIt.EXPECT().Current().Return("e"),
valsIt.EXPECT().Err().Return(nil),
valsIt.EXPECT().Close(),
)

it := newStringFieldIterator(docIt, valsIt)
defer it.Close()

var (
expectedDocIDs = []int32{3, 4, 7, 10, 15}
expectedVals = []string{"a", "b", "c", "d", "e"}
actualDocIDs []int32
actualVals []string
)
for it.Next() {
actualDocIDs = append(actualDocIDs, it.DocID())
actualVals = append(actualVals, it.Value())
}
require.NoError(t, it.Err())
require.Equal(t, expectedDocIDs, actualDocIDs)
require.Equal(t, expectedVals, actualVals)
}

0 comments on commit 777e6da

Please sign in to comment.