2020-07-08 04:31:22 +00:00
|
|
|
package stream
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestEvent_IsEndOfSnapshot(t *testing.T) {
|
|
|
|
e := Event{Payload: endOfSnapshot{}}
|
|
|
|
require.True(t, e.IsEndOfSnapshot())
|
|
|
|
|
|
|
|
t.Run("not EndOfSnapshot", func(t *testing.T) {
|
2020-10-01 17:51:55 +00:00
|
|
|
e := Event{Payload: newSnapshotToFollow{}}
|
2020-07-08 04:31:22 +00:00
|
|
|
require.False(t, e.IsEndOfSnapshot())
|
|
|
|
})
|
|
|
|
}
|
2020-11-05 22:50:17 +00:00
|
|
|
|
|
|
|
func newSimpleEvent(key string, index uint64) Event {
|
|
|
|
return Event{Index: index, Payload: simplePayload{key: key}}
|
|
|
|
}
|
|
|
|
|
2021-08-17 21:49:26 +00:00
|
|
|
// TODO(partitions)
|
2020-11-05 22:50:17 +00:00
|
|
|
func newNSEvent(key, namespace string) Event {
|
|
|
|
return Event{Index: 22, Payload: nsPayload{key: key, namespace: namespace}}
|
|
|
|
}
|
|
|
|
|
|
|
|
type nsPayload struct {
|
2020-11-05 22:57:25 +00:00
|
|
|
framingEvent
|
2020-11-05 22:50:17 +00:00
|
|
|
key string
|
|
|
|
namespace string
|
2021-08-17 21:49:26 +00:00
|
|
|
partition string
|
2020-11-05 22:50:17 +00:00
|
|
|
value string
|
|
|
|
}
|
|
|
|
|
2020-11-05 22:57:25 +00:00
|
|
|
func TestPayloadEvents_HasReadPermission(t *testing.T) {
|
|
|
|
t.Run("some events filtered", func(t *testing.T) {
|
2020-11-06 18:00:33 +00:00
|
|
|
ep := newPayloadEvents(
|
2020-11-05 22:57:25 +00:00
|
|
|
Event{Payload: simplePayload{key: "one", noReadPerm: true}},
|
|
|
|
Event{Payload: simplePayload{key: "two", noReadPerm: false}},
|
|
|
|
Event{Payload: simplePayload{key: "three", noReadPerm: true}},
|
|
|
|
Event{Payload: simplePayload{key: "four", noReadPerm: false}})
|
|
|
|
|
|
|
|
require.True(t, ep.HasReadPermission(nil))
|
|
|
|
expected := []Event{
|
|
|
|
{Payload: simplePayload{key: "two"}},
|
|
|
|
{Payload: simplePayload{key: "four"}},
|
|
|
|
}
|
|
|
|
require.Equal(t, expected, ep.Items)
|
|
|
|
})
|
|
|
|
|
|
|
|
t.Run("all events filtered", func(t *testing.T) {
|
2020-11-06 18:00:33 +00:00
|
|
|
ep := newPayloadEvents(
|
2020-11-05 22:57:25 +00:00
|
|
|
Event{Payload: simplePayload{key: "one", noReadPerm: true}},
|
|
|
|
Event{Payload: simplePayload{key: "two", noReadPerm: true}},
|
|
|
|
Event{Payload: simplePayload{key: "three", noReadPerm: true}},
|
|
|
|
Event{Payload: simplePayload{key: "four", noReadPerm: true}})
|
|
|
|
|
|
|
|
require.False(t, ep.HasReadPermission(nil))
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|