### Question:
ListenTCP extends AbstractListenEventBatchingProcessor<StandardEvent> { @Override protected Collection<ValidationResult> customValidate(final ValidationContext validationContext) { final List<ValidationResult> results = new ArrayList<>(); final String clientAuth = validationContext.getProperty(CLIENT_AUTH).getValue(); final SSLContextService sslContextService = validationContext.getProperty(SSL_CONTEXT_SERVICE).asControllerService(SSLContextService.class); if (sslContextService != null && StringUtils.isBlank(clientAuth)) { results.add(new ValidationResult.Builder().explanation("Client Auth must be provided when using TLS/SSL").valid(false).subject("Client Auth").build()); } return results; }  @Override @OnScheduled void onScheduled(ProcessContext context); @Override @OnUnscheduled void onUnscheduled(); @OnStopped void onStopped(); Map<String, String> unpackContent(String annotation, byte[] data, Charset charset); static final String TCP_SENDER; static final String TCP_PORT; static final String TCP_MESSAGES; static final String TCP_CONTEXT_ID; static final String TCP_CONTEXT_CHARSET; static final String TCP_RESPONSE_DELIMITER; static final PropertyDescriptor SSL_CONTEXT_SERVICE; static final PropertyDescriptor CLIENT_AUTH; static final PropertyDescriptor RESPONDER_CONTEXT_MAP; }### Answer:
@Test public void testCustomValidate() throws InitializationException { runner.setProperty(ListenTCP.PORT, "1"); runner.assertValid(); configureProcessorSslContextService(); runner.setProperty(ListenTCP.CLIENT_AUTH, ""); runner.assertNotValid(); runner.setProperty(ListenTCP.CLIENT_AUTH, SslContextFactory.ClientAuth.REQUIRED.name()); runner.assertValid(); }