@Test @Transactional @Rollback public void verify() throws Exception { final LinkedBlockingQueue<HttpRequest> requests = new LinkedBlockingQueue<HttpRequest>(); server.register( "/*", new HttpRequestHandler() { @Override public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException { requests.add(request); response.setEntity( new StringEntity( getQueryParamValue(request.getRequestLine().getUri(), "hub.challenge"))); } }); subscriber.verify(SubscriptionMode.SUBSCRIBE); Assert.assertEquals(1, requests.size()); HttpRequest actualRequest = requests.poll(); String requestUri = actualRequest.getRequestLine().getUri(); Assert.assertEquals("subscribe", getQueryParamValue(requestUri, "hub.mode")); Assert.assertEquals( subscriber.getTopic().toString(), URLDecoder.decode(getQueryParamValue(requestUri, "hub.topic"), "UTF-8")); Assert.assertNotNull(getQueryParamValue(requestUri, "hub.challenge")); Assert.assertEquals("123", getQueryParamValue(requestUri, "hub.lease_seconds")); Assert.assertEquals( subscriber.getVerifyToken(), getQueryParamValue(requestUri, "hub.verify_token")); }
@Test(expected = FailedSubscriberVerificationException.class) @Transactional @Rollback public void verifyWithInvalidChallenge() throws Exception { server.register( "/*", new HttpRequestHandler() { @Override public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException { response.setEntity(HttpUtil.createEntity("dummy")); } }); subscriber.verify(SubscriptionMode.SUBSCRIBE); }
@Test(expected = FailedSubscriberVerificationException.class) @Transactional @Rollback public void verifyWithError() throws Exception { server.register( "/*", new HttpRequestHandler() { @Override public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException { response.setStatusCode(500); } }); subscriber.verify(SubscriptionMode.SUBSCRIBE); }
@Test(expected = FailedSubscriberVerificationException.class) @Transactional @Rollback public void verifyWithMissingChallenge() throws Exception { server.register( "/*", new HttpRequestHandler() { @Override public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException { // do not return challenge } }); subscriber.verify(SubscriptionMode.SUBSCRIBE); }