github.com/observiq/carbon@v0.9.11-0.20200820160507-1b872e368a5e/operator/builtin/output/elastic_test.go (about)

     1  package output
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/observiq/carbon/entry"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestFindIndex(t *testing.T) {
    11  	indexField := entry.NewRecordField("bar")
    12  	output := &ElasticOutput{
    13  		indexField: &indexField,
    14  	}
    15  
    16  	t.Run("StringValue", func(t *testing.T) {
    17  		entry := entry.New()
    18  		entry.Set(indexField, "testval")
    19  		idx, err := output.FindIndex(entry)
    20  		require.NoError(t, err)
    21  		require.Equal(t, "testval", idx)
    22  	})
    23  
    24  	t.Run("ByteValue", func(t *testing.T) {
    25  		entry := entry.New()
    26  		entry.Set(indexField, []byte("testval"))
    27  		idx, err := output.FindIndex(entry)
    28  		require.NoError(t, err)
    29  		require.Equal(t, "testval", idx)
    30  	})
    31  
    32  	t.Run("NoValue", func(t *testing.T) {
    33  		entry := entry.New()
    34  		_, err := output.FindIndex(entry)
    35  		require.Error(t, err)
    36  	})
    37  
    38  	t.Run("IndexFieldUnset", func(t *testing.T) {
    39  		entry := entry.New()
    40  		output := &ElasticOutput{}
    41  		idx, err := output.FindIndex(entry)
    42  		require.NoError(t, err)
    43  		require.Equal(t, "default", idx)
    44  	})
    45  }
    46  
    47  func TestFindID(t *testing.T) {
    48  	idField := entry.NewRecordField("foo")
    49  	output := &ElasticOutput{
    50  		idField: &idField,
    51  	}
    52  
    53  	t.Run("StringValue", func(t *testing.T) {
    54  		entry := entry.New()
    55  		entry.Set(idField, "testval")
    56  		idx, err := output.FindID(entry)
    57  		require.NoError(t, err)
    58  		require.Equal(t, "testval", idx)
    59  	})
    60  
    61  	t.Run("ByteValue", func(t *testing.T) {
    62  		entry := entry.New()
    63  		entry.Set(idField, []byte("testval"))
    64  		idx, err := output.FindID(entry)
    65  		require.NoError(t, err)
    66  		require.Equal(t, "testval", idx)
    67  	})
    68  
    69  	t.Run("NoValue", func(t *testing.T) {
    70  		entry := entry.New()
    71  		_, err := output.FindID(entry)
    72  		require.Error(t, err)
    73  	})
    74  
    75  	t.Run("IDFieldUnset", func(t *testing.T) {
    76  		entry := entry.New()
    77  		output := &ElasticOutput{}
    78  		idx, err := output.FindID(entry)
    79  		require.NoError(t, err)
    80  		require.NotEmpty(t, idx)
    81  	})
    82  }