1package statsd
2
3import (
4	"testing"
5	"time"
6
7	"github.com/stretchr/testify/assert"
8)
9
10func TestDefaultOptions(t *testing.T) {
11	options, err := resolveOptions([]Option{})
12
13	assert.NoError(t, err)
14	assert.Equal(t, options.Namespace, DefaultNamespace)
15	assert.Equal(t, options.Tags, DefaultTags)
16	assert.Equal(t, options.MaxBytesPerPayload, DefaultMaxBytesPerPayload)
17	assert.Equal(t, options.MaxMessagesPerPayload, DefaultMaxMessagesPerPayload)
18	assert.Equal(t, options.BufferPoolSize, DefaultBufferPoolSize)
19	assert.Equal(t, options.BufferFlushInterval, DefaultBufferFlushInterval)
20	assert.Equal(t, options.SenderQueueSize, DefaultSenderQueueSize)
21	assert.Equal(t, options.WriteTimeoutUDS, DefaultWriteTimeoutUDS)
22}
23
24func TestOptions(t *testing.T) {
25	testNamespace := "datadog."
26	testTags := []string{"rocks"}
27	testMaxBytesPerPayload := 2048
28	testMaxMessagePerPayload := 1024
29	testBufferPoolSize := 32
30	testBufferFlushInterval := 48 * time.Second
31	testSenderQueueSize := 64
32	testWriteTimeoutUDS := 1 * time.Minute
33
34	options, err := resolveOptions([]Option{
35		WithNamespace(testNamespace),
36		WithTags(testTags),
37		WithMaxBytesPerPayload(testMaxBytesPerPayload),
38		WithMaxMessagesPerPayload(testMaxMessagePerPayload),
39		WithBufferPoolSize(testBufferPoolSize),
40		WithBufferFlushInterval(testBufferFlushInterval),
41		WithSenderQueueSize(testSenderQueueSize),
42		WithWriteTimeoutUDS(testWriteTimeoutUDS),
43	})
44
45	assert.NoError(t, err)
46	assert.Equal(t, options.Namespace, testNamespace)
47	assert.Equal(t, options.Tags, testTags)
48	assert.Equal(t, options.MaxBytesPerPayload, testMaxBytesPerPayload)
49	assert.Equal(t, options.MaxMessagesPerPayload, testMaxMessagePerPayload)
50	assert.Equal(t, options.BufferPoolSize, testBufferPoolSize)
51	assert.Equal(t, options.BufferFlushInterval, testBufferFlushInterval)
52	assert.Equal(t, options.SenderQueueSize, testSenderQueueSize)
53	assert.Equal(t, options.WriteTimeoutUDS, testWriteTimeoutUDS)
54}
55