@Test
    public void StringHandler() {
      final LogArgumentGroupExtractor extractor =
          LogArgumentGroupExtractor.instance("", "", "", "", LogFormatArgument.STRING.toString());

      httpLogFormatter.setLogic(extractor, formatter);

      assertTrue(formatter.getLogic() instanceof StringHandler);
    }
    @Test
    public void RequestGuidHandler() {
      final LogArgumentGroupExtractor extractor =
          LogArgumentGroupExtractor.instance(
              "", "", "", "", LogFormatArgument.TRACE_GUID.toString());

      httpLogFormatter.setLogic(extractor, formatter);

      assertTrue(formatter.getLogic() instanceof TraceGuidHandler);
    }
    @Test
    public void ResponseMessageHandler() {
      final LogArgumentGroupExtractor extractor =
          LogArgumentGroupExtractor.instance(
              "", "", "", "", LogFormatArgument.ERROR_MESSAGE.toString());

      httpLogFormatter.setLogic(extractor, formatter);

      assertTrue(formatter.getLogic() instanceof ResponseMessageHandler);
    }
    @Test
    public void TimeReceivedHandler() {
      final LogArgumentGroupExtractor extractor =
          LogArgumentGroupExtractor.instance(
              "", "", "", "", LogFormatArgument.TIME_RECEIVED.toString());

      httpLogFormatter.setLogic(extractor, formatter);

      assertTrue(formatter.getLogic() instanceof TimeReceivedHandler);
    }
    @Test
    public void UrlRequestedHandler() {
      final LogArgumentGroupExtractor extractor =
          LogArgumentGroupExtractor.instance(
              "", "", "", "", LogFormatArgument.URL_REQUESTED.toString());

      httpLogFormatter.setLogic(extractor, formatter);

      assertTrue(formatter.getLogic() instanceof UrlRequestedHandler);
    }
    @Test
    public void RequestMethodHandler() {
      final LogArgumentGroupExtractor extractor =
          LogArgumentGroupExtractor.instance(
              "", "", "", "", LogFormatArgument.REQUEST_METHOD.toString());

      httpLogFormatter.setLogic(extractor, formatter);

      assertTrue(formatter.getLogic() instanceof RequestMethodHandler);
    }
    @Test
    public void ResponseBytesHandler() {
      final LogArgumentGroupExtractor extractor =
          LogArgumentGroupExtractor.instance(
              "", "", "", "", LogFormatArgument.RESPONSE_BYTES.toString());

      httpLogFormatter.setLogic(extractor, formatter);

      assertTrue(formatter.getLogic() instanceof ResponseBytesHandler);
    }
    @Test
    public void RemoteUserHandler() {
      final LogArgumentGroupExtractor extractor =
          LogArgumentGroupExtractor.instance(
              "", "", "", "", LogFormatArgument.REMOTE_USER.toString());

      httpLogFormatter.setLogic(extractor, formatter);

      assertTrue(formatter.getLogic() instanceof RemoteUserHandler);
    }
    @Test
    public void LocalAddressHandler() {
      final LogArgumentGroupExtractor extractor =
          LogArgumentGroupExtractor.instance(
              "", "", "", "", LogFormatArgument.LOCAL_ADDRESS.toString());

      httpLogFormatter.setLogic(extractor, formatter);

      assertTrue(formatter.getLogic() instanceof LocalAddressHandler);
    }
    @Test
    public void CanonicalPortHandler() {
      final LogArgumentGroupExtractor extractor =
          LogArgumentGroupExtractor.instance(
              "", "", "", "", LogFormatArgument.CANONICAL_PORT.toString());

      httpLogFormatter.setLogic(extractor, formatter);

      assertTrue(formatter.getLogic() instanceof CanonicalPortHandler);
    }
    @Test
    public void ResponseTimeHandlerSeconds() {
      final LogArgumentGroupExtractor extractor =
          LogArgumentGroupExtractor.instance(
              "", "", "", "", LogFormatArgument.RESPONSE_TIME_SECONDS.toString());

      httpLogFormatter.setLogic(extractor, formatter);

      assertTrue(formatter.getLogic() instanceof ResponseTimeHandler);
    }
 @Test
 public void shouldNotHaveSetLogicByDefault() {
   assertNull(formatter.getLogic());
 }