Package com.github.kristofa.brave.zipkin

Source Code of com.github.kristofa.brave.zipkin.ZipkinSpanCollectorTest

package com.github.kristofa.brave.zipkin;

import static org.junit.Assert.assertEquals;

import java.util.List;

import org.apache.thrift.transport.TTransportException;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import com.twitter.zipkin.gen.BinaryAnnotation;
import com.twitter.zipkin.gen.Span;

public class ZipkinSpanCollectorTest {

    private static final int PORT = 9500;
    private static final long SPAN_ID = 1;
    private static final long TRACE_ID = 2;
    private static final String SPAN_NAME = "SpanName";
    private static final String KEY1 = "key1";
    private static final String VALUE1 = "value1";

    private static ZipkinCollectorServer zipkinCollectorServer;

    @BeforeClass
    public static void beforeClass() throws TTransportException {
        zipkinCollectorServer = new ZipkinCollectorServer(PORT);
        zipkinCollectorServer.start();
    }

    @AfterClass
    public static void afterClass() {
        zipkinCollectorServer.stop();
    }

    @Before
    public void setup() {
        zipkinCollectorServer.clearReceivedSpans();
    }

    @Test(expected = IllegalArgumentException.class)
    public void testZipkinSpanCollector() {
        new ZipkinSpanCollector("", PORT);
    }

    @Test
    public void testCollect() throws TTransportException {

        final ZipkinSpanCollector zipkinSpanCollector = new ZipkinSpanCollector("localhost", PORT);
        try {
            final Span span = new Span();
            span.setId(SPAN_ID);
            span.setTrace_id(TRACE_ID);
            span.setName(SPAN_NAME);
            zipkinSpanCollector.collect(span);

        } finally {
            zipkinSpanCollector.close();
        }
        final List<Span> serverCollectedSpans = zipkinCollectorServer.getReceivedSpans();
        assertEquals(1, serverCollectedSpans.size());
        assertEquals(SPAN_ID, serverCollectedSpans.get(0).getId());
        assertEquals(TRACE_ID, serverCollectedSpans.get(0).getTrace_id());
        assertEquals(SPAN_NAME, serverCollectedSpans.get(0).getName());

    }

    @Test
    public void testCollectWithDefaultAnnotation() throws TTransportException {

        final ZipkinSpanCollector zipkinSpanCollector = new ZipkinSpanCollector("localhost", PORT);
        zipkinSpanCollector.addDefaultAnnotation(KEY1, VALUE1);
        try {
            final Span span = new Span();
            span.setId(SPAN_ID);
            span.setTrace_id(TRACE_ID);
            span.setName(SPAN_NAME);
            zipkinSpanCollector.collect(span);

        } finally {
            zipkinSpanCollector.close();
        }
        final List<Span> serverCollectedSpans = zipkinCollectorServer.getReceivedSpans();
        assertEquals(1, serverCollectedSpans.size());
        final Span span = serverCollectedSpans.get(0);
        assertEquals(SPAN_ID, span.getId());
        assertEquals(TRACE_ID, span.getTrace_id());
        assertEquals(SPAN_NAME, span.getName());
        final List<BinaryAnnotation> binary_annotations = span.getBinary_annotations();
        assertEquals("Expect default annotation to have been submitted.", 1, binary_annotations.size());
        final BinaryAnnotation binaryAnnotation = binary_annotations.get(0);
        assertEquals(KEY1, binaryAnnotation.getKey());
        assertEquals(VALUE1, new String(binaryAnnotation.getValue()));

    }

}
TOP

Related Classes of com.github.kristofa.brave.zipkin.ZipkinSpanCollectorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.