/* * See LICENSE for licensing and NOTICE for copyright. */ package net.shibboleth.idp.cas.flow; import net.shibboleth.idp.cas.protocol.ServiceTicketRequest; import net.shibboleth.idp.cas.protocol.ServiceTicketResponse; import net.shibboleth.idp.cas.ticket.ServiceTicket; import net.shibboleth.idp.cas.ticket.TicketService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.webflow.execution.Event; import org.springframework.webflow.execution.RequestContext; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; /** * Unit test for {@link GrantServiceTicketAction}. * * @author Marvin S. Addison */ public class GrantServiceTicketActionTest extends AbstractProfileActionTest { @Autowired private GrantServiceTicketAction action; @Autowired private TicketService ticketService; @DataProvider(name = "messages") public Object[][] provideMessages() { final ServiceTicketRequest renewedRequest = new ServiceTicketRequest("https://www.example.com/beta"); renewedRequest.setRenew(true); return new Object[][] { { new ServiceTicketRequest("https://www.example.com/alpha") }, { renewedRequest }, }; } @Test(dataProvider = "messages") public void testExecute(final ServiceTicketRequest message) throws Exception { final RequestContext context = createSessionContext("1234567890"); FlowStateSupport.setServiceTicketRequest(context, message); final Event result = action.execute(context); assertEquals(result.getId(), Events.Success.id()); final ServiceTicketResponse response = FlowStateSupport.getServiceTicketResponse(context); final ServiceTicket ticket = ticketService.removeServiceTicket(response.getTicket()); assertNotNull(ticket); assertEquals(ticket.isRenew(), message.isRenew()); assertEquals(ticket.getId(), response.getTicket()); assertEquals(ticket.getService(), response.getService()); } }