This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit f2e176312de6bf7d902064797072274b4a0de7d0 Author: Nicola Ferraro <[email protected]> AuthorDate: Thu Jun 4 18:28:29 2020 +0200 Fix #1489: add Tracing trait test --- addons/tracing/tracing_test.go | 114 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/addons/tracing/tracing_test.go b/addons/tracing/tracing_test.go new file mode 100644 index 0000000..96ca852 --- /dev/null +++ b/addons/tracing/tracing_test.go @@ -0,0 +1,114 @@ +/* +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF 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. +*/ + +package tracing + +import ( + "testing" + + v1 "github.com/apache/camel-k/pkg/apis/camel/v1" + "github.com/apache/camel-k/pkg/trait" + "github.com/apache/camel-k/pkg/util/camel" + "github.com/stretchr/testify/assert" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +func TestTracingTrait(t *testing.T) { + e := createEnvironment(t, camel.DefaultCatalog) + tracing := NewTracingTrait() + enabled := true + tracing.(*tracingTrait).Enabled = &enabled + tracing.(*tracingTrait).Endpoint = "http://endpoint1" + ok, err := tracing.Configure(e) + assert.Nil(t, err) + assert.True(t, ok) + + err = tracing.Apply(e) + assert.Nil(t, err) + + assert.Equal(t, "true", e.ApplicationProperties["camel.k.customizer.tracing.enabled"]) + assert.Equal(t, "http://endpoint1", e.ApplicationProperties["camel.k.customizer.tracing.reporter.sender.endpoint"]) + assert.Equal(t, "test", e.ApplicationProperties["camel.k.customizer.tracing.service-name"]) + assert.Equal(t, "const", e.ApplicationProperties["camel.k.customizer.tracing.sampler.type"]) + assert.Equal(t, "1", e.ApplicationProperties["camel.k.customizer.tracing.sampler.param"]) +} + +func TestTracingTraitFullConfig(t *testing.T) { + e := createEnvironment(t, camel.DefaultCatalog) + tracing := NewTracingTrait() + enabled := true + tracing.(*tracingTrait).Enabled = &enabled + tracing.(*tracingTrait).Endpoint = "http://endpoint2" + samplerParam := "2" + tracing.(*tracingTrait).SamplerParam = &samplerParam + samplerType := "buh" + tracing.(*tracingTrait).SamplerType = &samplerType + tracing.(*tracingTrait).ServiceName = "myservice" + ok, err := tracing.Configure(e) + assert.Nil(t, err) + assert.True(t, ok) + + err = tracing.Apply(e) + assert.Nil(t, err) + + assert.Equal(t, "true", e.ApplicationProperties["camel.k.customizer.tracing.enabled"]) + assert.Equal(t, "http://endpoint2", e.ApplicationProperties["camel.k.customizer.tracing.reporter.sender.endpoint"]) + assert.Equal(t, "myservice", e.ApplicationProperties["camel.k.customizer.tracing.service-name"]) + assert.Equal(t, "buh", e.ApplicationProperties["camel.k.customizer.tracing.sampler.type"]) + assert.Equal(t, "2", e.ApplicationProperties["camel.k.customizer.tracing.sampler.param"]) +} + +func TestTracingTraitOnQuarkus(t *testing.T) { + e := createEnvironment(t, camel.QuarkusCatalog) + tracing := NewTracingTrait() + enabled := true + tracing.(*tracingTrait).Enabled = &enabled + tracing.(*tracingTrait).Endpoint = "http://endpoint3" + ok, err := tracing.Configure(e) + assert.Nil(t, err) + assert.True(t, ok) + + err = tracing.Apply(e) + assert.Nil(t, err) + + assert.Empty(t, e.ApplicationProperties["quarkus.jaeger.enabled"]) + assert.Equal(t, "http://endpoint3", e.ApplicationProperties["quarkus.jaeger.endpoint"]) + assert.Equal(t, "test", e.ApplicationProperties["quarkus.jaeger.service-name"]) + assert.Equal(t, "const", e.ApplicationProperties["quarkus.jaeger.sampler-type"]) + assert.Equal(t, "1", e.ApplicationProperties["quarkus.jaeger.sampler-param"]) +} + +func createEnvironment(t *testing.T, catalogGen func() (*camel.RuntimeCatalog, error)) *trait.Environment { + catalog, err := catalogGen() + assert.Nil(t, err) + + e := trait.Environment{ + CamelCatalog: catalog, + ApplicationProperties: make(map[string]string), + } + + it := v1.Integration{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test", + }, + Status: v1.IntegrationStatus{ + Phase: v1.IntegrationPhaseDeploying, + }, + } + e.Integration = &it + return &e +}
