package org.apereo.cas.ticket.proxy.support;
import org.apereo.cas.authentication.CoreAuthenticationTestUtils;
import org.apereo.cas.authentication.HttpBasedServiceCredential;
import org.apereo.cas.ticket.TicketGrantingTicket;
import org.apereo.cas.util.DefaultUniqueTicketIdGenerator;
import org.apereo.cas.util.http.SimpleHttpClientFactoryBean;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.net.URL;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
/**
* @author Scott Battaglia
* @since 3.0.0
*/
public class Cas20ProxyHandlerTests {
private Cas20ProxyHandler handler;
@Mock
private TicketGrantingTicket proxyGrantingTicket;
public Cas20ProxyHandlerTests() {
MockitoAnnotations.initMocks(this);
}
@Before
public void setUp() throws Exception {
final SimpleHttpClientFactoryBean factory = new SimpleHttpClientFactoryBean();
factory.setConnectionTimeout(10000);
factory.setReadTimeout(10000);
this.handler = new Cas20ProxyHandler(factory.getObject(), new DefaultUniqueTicketIdGenerator());
when(this.proxyGrantingTicket.getId()).thenReturn("proxyGrantingTicket");
}
@Test
public void verifyValidProxyTicketWithoutQueryString() throws Exception {
assertNotNull(this.handler.handle(new HttpBasedServiceCredential(new URL("https://www.google.com/"),
CoreAuthenticationTestUtils.getRegisteredService("https://some.app.edu")), proxyGrantingTicket));
}
@Test
public void verifyValidProxyTicketWithQueryString() throws Exception {
assertNotNull(this.handler.handle(new HttpBasedServiceCredential(new URL("https://www.google.com/?test=test"),
CoreAuthenticationTestUtils.getRegisteredService("https://some.app.edu")), proxyGrantingTicket));
}
@Test
public void verifyNonValidProxyTicket() throws Exception {
final SimpleHttpClientFactoryBean clientFactory = new SimpleHttpClientFactoryBean();
clientFactory.setAcceptableCodes(new int[] {900});
this.handler = new Cas20ProxyHandler(clientFactory.getObject(), new DefaultUniqueTicketIdGenerator());
assertNull(this.handler.handle(new HttpBasedServiceCredential(new URL("http://www.rutgers.edu"),
CoreAuthenticationTestUtils.getRegisteredService("https://some.app.edu")), proxyGrantingTicket));
}
}