QueueURLValidator { public void validate(String queueUrl) { if (StringUtils.isBlank(queueUrl)) { throw new MotechConfigurationException("Queue URL cannot be null or empty."); } try { String value = queueUrl.replace("localhost", "127.0.0.1"); URI brokerURL = new URI(value); if (isCompositeURI(brokerURL)) { validateComposite(brokerURL, value); } else { isValidUri(queueUrl, value); } } catch (URISyntaxException e) { throw new MotechConfigurationException(URL_INVALID, e); } } QueueURLValidator();  QueueURLValidator(UrlValidator urlValidator); void validate(String queueUrl);  }
@Test(expected = MotechConfigurationException.class) public void shouldRejectQueueUrl() { queueURLValidator.validate(""); }
@Test(expected = MotechConfigurationException.class) public void shouldRejectInvalidQueueUrl() { queueURLValidator.validate("some.bad.url"); }
@Test public void shouldAcceptValidQueueURL() { queueURLValidator.validate("tcp: }
@Test public void shouldAcceptValidQueueLocalURL() { queueURLValidator.validate("http: }
@Test public void shouldAcceptValidQueueURLWithFQDN() { queueURLValidator.validate("tcp: }
@Test public void shouldAcceptValidCompositeQueueURLs() { for (String validCompositeUrl : VALID_COMPOSITE_URLS) { queueURLValidator.validate(validCompositeUrl); } }
@Test public void shouldRejectInvalidCompositeQueueURLs() { int errors = 0; for (String invalidCompositeUrl : INVALID_COMPOSITE_URLS) { try { queueURLValidator.validate(invalidCompositeUrl); } catch (MotechConfigurationException e) { errors++; } } assertTrue(errors == INVALID_COMPOSITE_URLS.size()); }