package brave.spring.beans;
import brave.Tracing;
import brave.http.HttpClientParser;
import brave.http.HttpSampler;
import brave.http.HttpServerParser;
import brave.http.HttpTracing;
import org.junit.After;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
public class HttpTracingFactoryBeanTest {
public static Tracing TRACING = mock(Tracing.class);
public static HttpClientParser CLIENT_PARSER = mock(HttpClientParser.class);
public static HttpServerParser SERVER_PARSER = mock(HttpServerParser.class);
XmlBeans context;
@After public void close() {
if (context != null) context.close();
}
@Test public void tracing() {
context = new XmlBeans(""
+ "<bean id=\"httpTracing\" class=\"brave.spring.beans.HttpTracingFactoryBean\">\n"
+ " <property name=\"tracing\">\n"
+ " <util:constant static-field=\"" + getClass().getName() + ".TRACING\"/>\n"
+ " </property>\n"
+ "</bean>"
);
context.refresh();
assertThat(context.getBean(HttpTracing.class))
.extracting("tracing")
.containsExactly(TRACING);
}
@Test public void clientParser() {
context = new XmlBeans(""
+ "<bean id=\"httpTracing\" class=\"brave.spring.beans.HttpTracingFactoryBean\">\n"
+ " <property name=\"tracing\">\n"
+ " <util:constant static-field=\"" + getClass().getName() + ".TRACING\"/>\n"
+ " </property>\n"
+ " <property name=\"clientParser\">\n"
+ " <util:constant static-field=\"" + getClass().getName() + ".CLIENT_PARSER\"/>\n"
+ " </property>\n"
+ "</bean>"
);
context.refresh();
assertThat(context.getBean(HttpTracing.class))
.extracting("clientParser")
.containsExactly(CLIENT_PARSER);
}
@Test public void serverParser() {
context = new XmlBeans(""
+ "<bean id=\"httpTracing\" class=\"brave.spring.beans.HttpTracingFactoryBean\">\n"
+ " <property name=\"tracing\">\n"
+ " <util:constant static-field=\"" + getClass().getName() + ".TRACING\"/>\n"
+ " </property>\n"
+ " <property name=\"serverParser\">\n"
+ " <util:constant static-field=\"" + getClass().getName() + ".SERVER_PARSER\"/>\n"
+ " </property>\n"
+ "</bean>"
);
context.refresh();
assertThat(context.getBean(HttpTracing.class))
.extracting("serverParser")
.containsExactly(SERVER_PARSER);
}
@Test public void clientSampler() {
context = new XmlBeans(""
+ "<bean id=\"httpTracing\" class=\"brave.spring.beans.HttpTracingFactoryBean\">\n"
+ " <property name=\"tracing\">\n"
+ " <util:constant static-field=\"" + getClass().getName() + ".TRACING\"/>\n"
+ " </property>\n"
+ " <property name=\"clientSampler\">\n"
+ " <util:constant static-field=\"brave.http.HttpSampler.NEVER_SAMPLE\"/>\n"
+ " </property>\n"
+ "</bean>"
);
context.refresh();
assertThat(context.getBean(HttpTracing.class))
.extracting("clientSampler")
.containsExactly(HttpSampler.NEVER_SAMPLE);
}
@Test public void serverSampler() {
context = new XmlBeans(""
+ "<bean id=\"httpTracing\" class=\"brave.spring.beans.HttpTracingFactoryBean\">\n"
+ " <property name=\"tracing\">\n"
+ " <util:constant static-field=\"" + getClass().getName() + ".TRACING\"/>\n"
+ " </property>\n"
+ " <property name=\"serverSampler\">\n"
+ " <util:constant static-field=\"brave.http.HttpSampler.NEVER_SAMPLE\"/>\n"
+ " </property>\n"
+ "</bean>"
);
context.refresh();
assertThat(context.getBean(HttpTracing.class))
.extracting("serverSampler")
.containsExactly(HttpSampler.NEVER_SAMPLE);
}
}