This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit a3f4770e9cfecd51a31ca0236b41bc24f628ba07
Author: Jose Montoya <[email protected]>
AuthorDate: Wed Jul 8 20:06:08 2020 -0500

    Adds test
---
 .../opentracing/CamelOpenTracingTestSupport.java   | 12 +++
 .../camel/opentracing/SpanProcessorsTest.java      | 93 ++++++++++++++++++++++
 .../org/apache/camel/opentracing/SpanTestData.java | 22 +++++
 3 files changed, 127 insertions(+)

diff --git 
a/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/CamelOpenTracingTestSupport.java
 
b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/CamelOpenTracingTestSupport.java
index 7fc1d92..0faec13 100644
--- 
a/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/CamelOpenTracingTestSupport.java
+++ 
b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/CamelOpenTracingTestSupport.java
@@ -134,6 +134,18 @@ public class CamelOpenTracingTestSupport extends 
CamelTestSupport {
                 assertEquals(td.getLogMessages().get(i), 
span.logEntries().get(i).fields().get("message"));
             }
         }
+
+        if (!td.getTags().isEmpty()) {
+            for (Map.Entry<String, String> entry : td.getTags().entrySet()) {
+                assertEquals(entry.getValue(), 
span.tags().get(entry.getKey()));
+            }
+        }
+
+        if (!td.getBaggage().isEmpty()) {
+            for (Map.Entry<String, String> entry : td.getBaggage().entrySet()) 
{
+                assertEquals(entry.getValue(), 
span.getBaggageItem(entry.getKey()));
+            }
+        }
     }
 
     protected void verifySameTrace() {
diff --git 
a/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/SpanProcessorsTest.java
 
b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/SpanProcessorsTest.java
new file mode 100644
index 0000000..c52a73d
--- /dev/null
+++ 
b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/SpanProcessorsTest.java
@@ -0,0 +1,93 @@
+/*
+ * 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 org.apache.camel.opentracing;
+
+import io.opentracing.tag.Tags;
+import org.apache.camel.Exchange;
+import org.apache.camel.RoutesBuilder;
+import org.apache.camel.builder.RouteBuilder;
+import org.junit.Test;
+
+import static org.apache.camel.language.simple.SimpleLanguage.simple;
+
+public class SpanProcessorsTest extends CamelOpenTracingTestSupport {
+
+    private static final SpanTestData[] testdata = {
+            new SpanTestData().setLabel("seda:b 
server").setUri("seda://b").setOperation("b")
+                    
.setKind(Tags.SPAN_KIND_SERVER).setParentId(1).addLogMessage("routing at b")
+                    .addTag("b-tag", "request-header-value"),
+            new SpanTestData().setLabel("seda:b 
client").setUri("seda://b").setOperation("b")
+                    .setKind(Tags.SPAN_KIND_CLIENT).setParentId(4),
+            new SpanTestData().setLabel("seda:c 
server").setUri("seda://c").setOperation("c")
+                    
.setKind(Tags.SPAN_KIND_SERVER).setParentId(3).addLogMessage("Exchange[ExchangePattern:
 InOut, BodyType: String, Body: Hello]"),
+            new SpanTestData().setLabel("seda:c 
client").setUri("seda://c").setOperation("c")
+                    .setKind(Tags.SPAN_KIND_CLIENT).setParentId(4),
+            new SpanTestData().setLabel("seda:a 
server").setUri("seda://a").setOperation("a")
+                    
.setKind(Tags.SPAN_KIND_SERVER).setParentId(5).addLogMessage("routing at 
a").addLogMessage("End of routing")
+                    .addBaggage("a-baggage", "request-header-value"),
+            new SpanTestData().setLabel("seda:a 
client").setUri("seda://a").setOperation("a")
+                    .setKind(Tags.SPAN_KIND_CLIENT).setParentId(6),
+            new SpanTestData().setLabel("direct:start 
server").setUri("direct://start").setOperation("start")
+                    .setKind(Tags.SPAN_KIND_SERVER).setParentId(7),
+            new SpanTestData().setLabel("direct:start 
client").setUri("direct://start").setOperation("start")
+                    .setKind(Tags.SPAN_KIND_CLIENT)
+    };
+
+    public SpanProcessorsTest() {
+        super(testdata);
+    }
+
+    @Test
+    public void testRoute() throws Exception {
+        Exchange result = template.request("direct:start",
+                exchange -> {
+                    exchange.getIn().setBody("Hello");
+                    exchange.getIn().setHeader("request-header", 
simple("request-header-value"));
+                });
+
+        verify();
+        assertEquals("request-header-value", 
result.getMessage().getHeader("baggage-header", String.class));
+    }
+
+    @Override
+    protected RoutesBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start").to("seda:a").routeId("start");
+
+                from("seda:a").routeId("a")
+                        .log("routing at ${routeId}")
+                        .process(new SetBaggageProcessor("a-baggage", 
simple("${header.request-header}")))
+                        .to("seda:b")
+                        .delay(2000)
+                        .to("seda:c")
+                        .log("End of routing");
+
+                from("seda:b").routeId("b")
+                        .log("routing at ${routeId}")
+                        .process(new TagProcessor("b-tag", 
simple("${header.request-header}")))
+                        .delay(simple("${random(1000,2000)}"));
+
+                from("seda:c").routeId("c")
+                        .to("log:test")
+                        .process(new GetBaggageProcessor("a-baggage", 
"baggage-header"))
+                        .delay(simple("${random(0,100)}"));
+            }
+        };
+    }
+}
diff --git 
a/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/SpanTestData.java
 
b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/SpanTestData.java
index 4bb4137..8c55724 100644
--- 
a/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/SpanTestData.java
+++ 
b/components/camel-opentracing/src/test/java/org/apache/camel/opentracing/SpanTestData.java
@@ -17,7 +17,9 @@
 package org.apache.camel.opentracing;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 public class SpanTestData {
 
@@ -27,6 +29,8 @@ public class SpanTestData {
     private String kind;
     private int parentId = -1;
     private List<String> logMessages = new ArrayList<>();
+    private Map<String, String> tags = new HashMap<>();
+    private Map<String, String> baggage = new HashMap<>();
 
     public String getLabel() {
         return label;
@@ -81,4 +85,22 @@ public class SpanTestData {
     public List<String> getLogMessages() {
         return logMessages;
     }
+
+    public SpanTestData addTag(String key, String val) {
+        tags.put(key, val);
+        return this;
+    }
+
+    public Map<String, String> getTags() {
+        return tags;
+    }
+
+    public SpanTestData addBaggage(String key, String val) {
+        baggage.put(key, val);
+        return this;
+    }
+
+    public Map<String, String> getBaggage() {
+        return baggage;
+    }
 }

Reply via email to