| package memorydedupe_test |
|
|
| import ( |
| "context" |
| "testing" |
|
|
| "github.com/cloudevents/sdk-go/v2/event" |
| "github.com/stretchr/testify/assert" |
| "github.com/stretchr/testify/require" |
|
|
| "github.com/openmeterio/openmeter/openmeter/dedupe" |
| "github.com/openmeterio/openmeter/openmeter/dedupe/memorydedupe" |
| ) |
|
|
| func TestIsUniqueDeduplicator(t *testing.T) { |
| deduplicator, err := memorydedupe.NewDeduplicator(1024) |
| require.NoError(t, err) |
|
|
| const namespace = "default" |
|
|
| ev := event.New() |
| ev.SetID("id") |
| ev.SetSource("source") |
|
|
| isUnique, err := deduplicator.IsUnique(context.Background(), namespace, ev) |
| isUnique2, err2 := deduplicator.IsUnique(context.Background(), namespace, ev) |
| require.NoError(t, err) |
| require.NoError(t, err2) |
|
|
| assert.True(t, isUnique) |
| assert.False(t, isUnique2) |
| } |
|
|
| func TestDeduplicator(t *testing.T) { |
| deduplicator, err := memorydedupe.NewDeduplicator(1024) |
| require.NoError(t, err) |
|
|
| item := dedupe.Item{ |
| Namespace: "default", |
| ID: "id", |
| Source: "source", |
| } |
|
|
| isUnique, err := deduplicator.CheckUnique(context.Background(), item) |
| _, errSet := deduplicator.Set(context.Background(), item) |
| isUnique2, err2 := deduplicator.CheckUnique(context.Background(), item) |
| require.NoError(t, errSet) |
| require.NoError(t, err) |
| require.NoError(t, err2) |
|
|
| assert.True(t, isUnique) |
| assert.False(t, isUnique2) |
| } |
|
|