mirror of
https://github.com/docker/docker-agent.git
synced 2026-11-06 15:07:58 +00:00
37 lines
1.0 KiB
Go
37 lines
1.0 KiB
Go
package runtime
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestInMemoryMessageQueueCancel(t *testing.T) {
|
|
t.Parallel()
|
|
q := NewInMemoryMessageQueue(3).(*inMemoryMessageQueue)
|
|
require.True(t, q.Enqueue(t.Context(), QueuedMessage{ID: "first", Content: "one"}))
|
|
require.True(t, q.Enqueue(t.Context(), QueuedMessage{ID: "second", Content: "two"}))
|
|
require.True(t, q.Enqueue(t.Context(), QueuedMessage{ID: "third", Content: "three"}))
|
|
|
|
assert.True(t, q.Cancel("second"))
|
|
assert.False(t, q.Cancel("second"))
|
|
assert.False(t, q.Cancel(""))
|
|
assert.Equal(t, []QueuedMessage{
|
|
{ID: "first", Content: "one"},
|
|
{ID: "third", Content: "three"},
|
|
}, q.Drain(t.Context()))
|
|
}
|
|
|
|
func TestInMemoryMessageQueueRejectsCanceledContext(t *testing.T) {
|
|
t.Parallel()
|
|
q := NewInMemoryMessageQueue(1)
|
|
ctx, cancel := context.WithCancel(t.Context())
|
|
cancel()
|
|
|
|
assert.False(t, q.Enqueue(ctx, QueuedMessage{Content: "nope"}))
|
|
_, ok := q.Dequeue(t.Context())
|
|
assert.False(t, ok)
|
|
}
|