@Test
  public void testTrace() throws Exception {

    final LogFactory.MyTestLogger testLogger =
        (LogFactory.MyTestLogger) LogFactory.getLog(ExtendedLogComponent.class);
    testLogger.reset();

    final ExtendedLogComponent logTraceComponent = new ExtendedLogComponent("MyContent", TRACE);
    logTraceComponent.onCall(getEventContext());

    assertThat(testLogger.getFatalExec()).isEmpty();
    assertThat(testLogger.getErrorExec()).isEmpty();
    assertThat(testLogger.getWarnExec()).isEmpty();
    assertThat(testLogger.getInfoExec()).isEmpty();
    assertThat(testLogger.getDebugExec()).isEmpty();
    assertThat(testLogger.getTraceExec()).isNotEmpty().hasSize(1);

    logTraceComponent.onCall(getEventContext());
    logTraceComponent.onCall(getEventContext());

    assertThat(testLogger.getFatalExec()).isEmpty();
    assertThat(testLogger.getErrorExec()).isEmpty();
    assertThat(testLogger.getWarnExec()).isEmpty();
    assertThat(testLogger.getInfoExec()).isEmpty();
    assertThat(testLogger.getDebugExec()).isEmpty();
    assertThat(testLogger.getTraceExec()).isNotEmpty().hasSize(3);

    assertThat(testLogger.getTraceExec().get(0)).isEqualTo(getMessage("MyContent"));

    assertThat(testLogger.getTraceExec().get(1)).isEqualTo(getMessage("MyContent"));

    assertThat(testLogger.getTraceExec().get(2)).isEqualTo(getMessage("MyContent"));
  }
  @Test
  public void testDebug() throws Exception {

    final LogFactory.MyTestLogger testLogger =
        (LogFactory.MyTestLogger) LogFactory.getLog(ExpressionLogComponent.class);
    testLogger.reset();

    final ExpressionLogComponent logDebugComponent =
        new ExpressionLogComponent(
            expressionEvaluatorBuilder.getExpression(),
            expressionEvaluatorBuilder.getEvaluator(),
            DEBUG);
    logDebugComponent.onCall(getEventContext("MyContent1"));

    assertThat(testLogger.getFatalExec()).isEmpty();
    assertThat(testLogger.getErrorExec()).isEmpty();
    assertThat(testLogger.getWarnExec()).isEmpty();
    assertThat(testLogger.getInfoExec()).isEmpty();
    assertThat(testLogger.getDebugExec()).isNotEmpty().hasSize(1);

    logDebugComponent.onCall(getEventContext("MyContent2"));
    logDebugComponent.onCall(getEventContext("MyContent3"));

    assertThat(testLogger.getFatalExec()).isEmpty();
    assertThat(testLogger.getErrorExec()).isEmpty();
    assertThat(testLogger.getWarnExec()).isEmpty();
    assertThat(testLogger.getInfoExec()).isEmpty();
    assertThat(testLogger.getDebugExec()).isNotEmpty().hasSize(3);

    assertThat(testLogger.getDebugExec().get(0))
        .isEqualTo(getMessage("payload content: MyContent1"));

    assertThat(testLogger.getDebugExec().get(1))
        .isEqualTo(getMessage("payload content: MyContent2"));

    assertThat(testLogger.getDebugExec().get(2))
        .isEqualTo(getMessage("payload content: MyContent3"));
  }