milvus/pkg/streaming/util/options/deliver_test.go
chyezh dfe0416a70
enhance: implement streaming node server service (#34166)
issue: #33285

- implement producing and consuming server of message
- implement management operation for streaming node server

---------

Signed-off-by: chyezh <chyezh@outlook.com>
2024-07-09 07:58:14 +08:00

65 lines
2.1 KiB
Go

package options
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/milvus-io/milvus/pkg/mocks/streaming/util/mock_message"
)
func TestDeliverPolicy(t *testing.T) {
policy := DeliverPolicyAll()
assert.Equal(t, DeliverPolicyTypeAll, policy.Policy())
assert.Panics(t, func() {
policy.MessageID()
})
policy = DeliverPolicyLatest()
assert.Equal(t, DeliverPolicyTypeLatest, policy.Policy())
assert.Panics(t, func() {
policy.MessageID()
})
messageID := mock_message.NewMockMessageID(t)
policy = DeliverPolicyStartFrom(messageID)
assert.Equal(t, DeliverPolicyTypeStartFrom, policy.Policy())
assert.Equal(t, messageID, policy.MessageID())
policy = DeliverPolicyStartAfter(messageID)
assert.Equal(t, DeliverPolicyTypeStartAfter, policy.Policy())
assert.Equal(t, messageID, policy.MessageID())
}
func TestDeliverFilter(t *testing.T) {
filter := DeliverFilterTimeTickGT(1)
assert.Equal(t, uint64(1), filter.(interface{ TimeTick() uint64 }).TimeTick())
assert.Equal(t, DeliverFilterTypeTimeTickGT, filter.Type())
msg := mock_message.NewMockImmutableMessage(t)
msg.EXPECT().TimeTick().Return(uint64(1))
assert.False(t, filter.Filter(msg))
msg.EXPECT().TimeTick().Unset()
msg.EXPECT().TimeTick().Return(uint64(2))
assert.True(t, filter.Filter(msg))
filter = DeliverFilterTimeTickGTE(2)
assert.Equal(t, uint64(2), filter.(interface{ TimeTick() uint64 }).TimeTick())
assert.Equal(t, DeliverFilterTypeTimeTickGTE, filter.Type())
msg.EXPECT().TimeTick().Unset()
msg.EXPECT().TimeTick().Return(uint64(1))
assert.False(t, filter.Filter(msg))
msg.EXPECT().TimeTick().Unset()
msg.EXPECT().TimeTick().Return(uint64(2))
assert.True(t, filter.Filter(msg))
filter = DeliverFilterVChannel("vchannel")
assert.Equal(t, "vchannel", filter.(interface{ VChannel() string }).VChannel())
assert.Equal(t, DeliverFilterTypeVChannel, filter.Type())
msg.EXPECT().VChannel().Unset()
msg.EXPECT().VChannel().Return("vchannel2")
assert.False(t, filter.Filter(msg))
msg.EXPECT().VChannel().Unset()
msg.EXPECT().VChannel().Return("vchannel")
assert.True(t, filter.Filter(msg))
}