mirror of
https://gitee.com/milvus-io/milvus.git
synced 2026-01-02 00:45:30 +08:00
issue: #33285 - implement producing and consuming server of message - implement management operation for streaming node server --------- Signed-off-by: chyezh <chyezh@outlook.com>
65 lines
2.1 KiB
Go
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))
|
|
}
|