package com.navercorp.pinpoint.common.server.bo.serializer.trace.v2.bitfield; import com.navercorp.pinpoint.common.server.bo.SpanBo; import com.navercorp.pinpoint.common.trace.LoggingInfo; import org.junit.Assert; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author Woonduk Kang(emeroad) */ public class SpanBitFiledTest { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Test public void testRoot_1() throws Exception { SpanBo spanBo = new SpanBo(); spanBo.setParentSpanId(-1); SpanBitFiled spanBitFiled = SpanBitFiled.build(spanBo); Assert.assertTrue(spanBitFiled.isRoot()); spanBitFiled.setRoot(false); Assert.assertFalse(spanBitFiled.isRoot()); } @Test public void testRoot_2() throws Exception { SpanBo spanBo = new SpanBo(); spanBo.setParentSpanId(0); SpanBitFiled spanBitFiled = SpanBitFiled.build(spanBo); Assert.assertFalse(spanBitFiled.isRoot()); spanBitFiled.maskAll(); spanBitFiled.setRoot(false); Assert.assertFalse(spanBitFiled.isRoot()); } @Test public void testErrorCode_1() { SpanBo spanBo = new SpanBo(); spanBo.setErrCode(1); SpanBitFiled spanBitFiled = SpanBitFiled.build(spanBo); Assert.assertTrue(spanBitFiled.isSetErrorCode()); spanBitFiled.setErrorCode(false); Assert.assertFalse(spanBitFiled.isSetErrorCode()); } @Test public void testErrorCode_2() { SpanBo spanBo = new SpanBo(); spanBo.setErrCode(0); SpanBitFiled spanBitFiled = SpanBitFiled.build(spanBo); Assert.assertFalse(spanBitFiled.isSetErrorCode()); spanBitFiled.maskAll(); spanBitFiled.setErrorCode(false); Assert.assertFalse(spanBitFiled.isSetErrorCode()); } @Test public void testApplicationServiceTypeEncodingStrategy_PREV_TYPE_EQUALS() { SpanBo spanBo = new SpanBo(); spanBo.setServiceType((short) 1000); spanBo.setApplicationServiceType((short) 1000); SpanBitFiled spanBitFiled = SpanBitFiled.build(spanBo); Assert.assertEquals(spanBitFiled.getApplicationServiceTypeEncodingStrategy(), ServiceTypeEncodingStrategy.PREV_EQUALS); } @Test public void testApplicationServiceTypeEncodingStrategy_RAW() { SpanBo spanBo = new SpanBo(); spanBo.setServiceType((short) 1000); spanBo.setApplicationServiceType((short) 2000); SpanBitFiled spanBitFiled = SpanBitFiled.build(spanBo); Assert.assertEquals(spanBitFiled.getApplicationServiceTypeEncodingStrategy(), ServiceTypeEncodingStrategy.RAW); spanBitFiled.maskAll(); Assert.assertEquals(spanBitFiled.getApplicationServiceTypeEncodingStrategy(), ServiceTypeEncodingStrategy.RAW); spanBitFiled.setApplicationServiceTypeEncodingStrategy(ServiceTypeEncodingStrategy.PREV_EQUALS); Assert.assertEquals(spanBitFiled.getApplicationServiceTypeEncodingStrategy(), ServiceTypeEncodingStrategy.PREV_EQUALS); } @Test public void testHasException_1() { SpanBo spanBo = new SpanBo(); spanBo.setExceptionInfo(1, "error"); SpanBitFiled spanBitFiled = SpanBitFiled.build(spanBo); Assert.assertTrue(spanBitFiled.isSetHasException()); spanBitFiled.setHasException(false); Assert.assertFalse(spanBitFiled.isSetHasException()); } @Test public void testHasException_2() { SpanBo spanBo = new SpanBo(); SpanBitFiled spanBitFiled = SpanBitFiled.build(spanBo); Assert.assertFalse(spanBitFiled.isSetHasException()); spanBitFiled.maskAll(); spanBitFiled.setHasException(false); Assert.assertFalse(spanBitFiled.isSetHasException()); } @Test public void testLoggingTransactionInfo_1() { SpanBo spanBo = new SpanBo(); spanBo.setLoggingTransactionInfo(LoggingInfo.INFO.getCode()); SpanBitFiled spanBitFiled = SpanBitFiled.build(spanBo); Assert.assertTrue(spanBitFiled.isSetLoggingTransactionInfo()); spanBitFiled.setLoggingTransactionInfo(false); Assert.assertFalse(spanBitFiled.isSetLoggingTransactionInfo()); } @Test public void testLoggingTransactionInfo_2() { SpanBo spanBo = new SpanBo(); SpanBitFiled spanBitFiled = SpanBitFiled.build(spanBo); Assert.assertFalse(spanBitFiled.isSetLoggingTransactionInfo()); spanBitFiled.maskAll(); spanBitFiled.setLoggingTransactionInfo(false); Assert.assertFalse(spanBitFiled.isSetLoggingTransactionInfo()); } }