youtubebeat/vendor/github.com/elastic/beats/libbeat/template/template_test.go

178 lines
3.6 KiB
Go

// Licensed to Elasticsearch B.V. under one or more contributor
// license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright
// ownership. Elasticsearch B.V. licenses this file to you under
// the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
// +build !integration
package template
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/elastic/beats/libbeat/common"
)
func TestNumberOfRoutingShards(t *testing.T) {
beatVersion := "6.1.0"
beatName := "testbeat"
config := TemplateConfig{}
// Test it exists in 6.1
template, err := New(beatVersion, beatName, "6.1.0", config)
assert.NoError(t, err)
data := template.Generate(nil, nil)
shards, err := data.GetValue("settings.index.number_of_routing_shards")
assert.NoError(t, err)
assert.Equal(t, 30, shards.(int))
// Test it does not exist in 6.0
template, err = New(beatVersion, beatName, "6.0.0", config)
assert.NoError(t, err)
data = template.Generate(nil, nil)
shards, err = data.GetValue("settings.index.number_of_routing_shards")
assert.Error(t, err)
assert.Equal(t, nil, shards)
}
func TestNumberOfRoutingShardsOverwrite(t *testing.T) {
beatVersion := "6.1.0"
beatName := "testbeat"
config := TemplateConfig{
Settings: TemplateSettings{
Index: map[string]interface{}{"number_of_routing_shards": 5},
},
}
// Test it exists in 6.1
template, err := New(beatVersion, beatName, "6.1.0", config)
assert.NoError(t, err)
data := template.Generate(nil, nil)
shards, err := data.GetValue("settings.index.number_of_routing_shards")
assert.NoError(t, err)
assert.Equal(t, 5, shards.(int))
}
func TestAppendFields(t *testing.T) {
tests := []struct {
fields common.Fields
appendFields common.Fields
error bool
}{
{
fields: common.Fields{
common.Field{
Name: "a",
Fields: common.Fields{
common.Field{
Name: "b",
},
},
},
},
appendFields: common.Fields{
common.Field{
Name: "a",
Fields: common.Fields{
common.Field{
Name: "c",
},
},
},
},
error: false,
},
{
fields: common.Fields{
common.Field{
Name: "a",
Fields: common.Fields{
common.Field{
Name: "b",
},
common.Field{
Name: "c",
},
},
},
},
appendFields: common.Fields{
common.Field{
Name: "a",
Fields: common.Fields{
common.Field{
Name: "c",
},
},
},
},
error: true,
},
{
fields: common.Fields{
common.Field{
Name: "a",
},
},
appendFields: common.Fields{
common.Field{
Name: "a",
Fields: common.Fields{
common.Field{
Name: "c",
},
},
},
},
error: true,
},
{
fields: common.Fields{
common.Field{
Name: "a",
Fields: common.Fields{
common.Field{
Name: "c",
},
},
},
},
appendFields: common.Fields{
common.Field{
Name: "a",
},
},
error: true,
},
}
for _, test := range tests {
_, err := appendFields(test.fields, test.appendFields)
if test.error {
assert.Error(t, err)
} else {
assert.NoError(t, err)
}
}
}