/* vim: set ts=2 et sw=2 cindent fo=qroca: */ package com.globant.katari.cas; import java.util.Properties; import junit.framework.TestCase; import com.globant.katari.cas.ProxyTicketValidator; import com.globant.katari.tools.NanoHTTPD; /* Tests the cas ticket validator. */ public class ProxyTicketValidatorTest extends TestCase { private NanoHTTPD server = null; public void tearDown() { // We stop the server. if (server != null) { server.stop(); } } /* Tests that the HttpServiceTicketValidatorTest correctly validates a * ticket. */ public final void testValidate_success() throws Exception { server = new NanoHTTPD(0) { public Response serve(final String uri, final String method, final Properties header, final Properties parms) { return new NanoHTTPD.Response(NanoHTTPD.MIME_PLAINTEXT, "<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>\n" + " <cas:authenticationSuccess>\n" + " <cas:user>admin</cas:user>\n" + " <cas:proxyGrantingTicket>SOME-TICKET</cas:proxyGrantingTicket>\n" + " <cas:proxies>\n" + " <cas:proxy>SOME-PROXY</cas:proxy>\n" + " </cas:proxies>\n" + " </cas:authenticationSuccess>\n" + "</cas:serviceResponse>"); } }; ProxyTicketValidator validator = new ProxyTicketValidator(); validator.setCasValidateUrl("http://localhost:" + server.getPort()); validator.setServiceTicket("TGT:SOME-TICKET"); validator.validate(); assertTrue(validator.isAuthenticationSuccesful()); assertEquals("admin", validator.getUser()); assertEquals("SOME-TICKET", validator.getPgtIou()); assertEquals(1, validator.getProxyList().size()); // toString is just for debugging. We do not really care, we only increment // coverage here. validator.toString(); } }