style&test: remove unnecessary code and add test(#2450) (#2451)

- found the unnecessary else block and remove it
- add test cover when AMQP.BasicProperties had null headers or headers Map had null value keys

issue #2450
This commit is contained in:
ksewen 2019-04-05 12:32:58 +08:00 committed by 吴晟 Wu Sheng
parent ea566b19a5
commit 8dbd19f329
2 changed files with 31 additions and 9 deletions

View File

@ -53,8 +53,6 @@ public class RabbitMQConsumerInterceptor implements InstanceMethodsAroundInterce
next = next.next();
if (properties.getHeaders() != null && properties.getHeaders().get(next.getHeadKey()) != null) {
next.setHeadValue(properties.getHeaders().get(next.getHeadKey()).toString());
} else {
next.setHeadValue("");
}
}
ContextManager.extract(contextCarrier);

View File

@ -63,20 +63,44 @@ public class RabbitMQConsumerInterceptorTest {
private RabbitMQConsumerInterceptor rabbitMQConsumerInterceptor;
private Object[] arguments;
@Before
public void setUp() throws Exception {
rabbitMQConsumerInterceptor = new RabbitMQConsumerInterceptor();
Envelope envelope = new Envelope(1111,false,"","rabbitmq-test");
Map<String, Object> headers = new HashMap<String, Object>();
headers.put("sw6","1-MS4xLjE1NDM5NzU1OTEwMTQwMDAx-MS4xLjE1NDM5NzU1OTA5OTcwMDAw-0-1-1-IzEyNy4wLjAuMTo1Mjcy-I1JhYmJpdE1RL1RvcGljL1F1ZXVlL3JhYmJpdG1xLXRlc3QvUHJvZHVjZXI=-I1JhYmJpdE1RL1RvcGljL1F1ZXVlL3JhYmJpdG1xLXRlc3QvUHJvZHVjZXI=");
AMQP.BasicProperties.Builder propsBuilder = new AMQP.BasicProperties.Builder();
arguments = new Object[] {0,0,envelope,propsBuilder.headers(headers).build()};
}
@Test
public void TestRabbitMQConsumerInterceptor() throws Throwable {
Envelope envelope = new Envelope(1111,false,"","rabbitmq-test");
Map<String, Object> headers = new HashMap<String, Object>();
headers.put("sw6","1-MS4xLjE1NDM5NzU1OTEwMTQwMDAx-MS4xLjE1NDM5NzU1OTA5OTcwMDAw-0-1-1-IzEyNy4wLjAuMTo1Mjcy-I1JhYmJpdE1RL1RvcGljL1F1ZXVlL3JhYmJpdG1xLXRlc3QvUHJvZHVjZXI=-I1JhYmJpdE1RL1RvcGljL1F1ZXVlL3JhYmJpdG1xLXRlc3QvUHJvZHVjZXI=");
AMQP.BasicProperties.Builder propsBuilder = new AMQP.BasicProperties.Builder();
Object[] arguments = new Object[] {0,0,envelope,propsBuilder.headers(headers).build()};
rabbitMQConsumerInterceptor.beforeMethod(enhancedInstance,null,arguments,null,null);
rabbitMQConsumerInterceptor.afterMethod(enhancedInstance,null,arguments,null,null);
List<TraceSegment> traceSegments = segmentStorage.getTraceSegments();
Assert.assertThat(traceSegments.size(), is(1));
}
@Test
public void testRabbitMQConsumerInterceptorWithNilHeaders() throws Throwable {
Envelope envelope = new Envelope(1111,false,"","rabbitmq-test");
AMQP.BasicProperties.Builder propsBuilder = new AMQP.BasicProperties.Builder();
Object[] arguments = new Object[] {0,0,envelope,propsBuilder.headers(null).build()};
rabbitMQConsumerInterceptor.beforeMethod(enhancedInstance,null,arguments,null,null);
rabbitMQConsumerInterceptor.afterMethod(enhancedInstance,null,arguments,null,null);
List<TraceSegment> traceSegments = segmentStorage.getTraceSegments();
Assert.assertThat(traceSegments.size(), is(1));
}
@Test
public void testRabbitMQConsumerInterceptorWithEmptyHeaders() throws Throwable {
Envelope envelope = new Envelope(1111,false,"","rabbitmq-test");
Map<String, Object> headers = new HashMap<String, Object>();
AMQP.BasicProperties.Builder propsBuilder = new AMQP.BasicProperties.Builder();
Object[] arguments = new Object[] {0,0,envelope,propsBuilder.headers(headers).build()};
rabbitMQConsumerInterceptor.beforeMethod(enhancedInstance,null,arguments,null,null);
rabbitMQConsumerInterceptor.afterMethod(enhancedInstance,null,arguments,null,null);
List<TraceSegment> traceSegments = segmentStorage.getTraceSegments();