jbosscacheticketregistrytests.java
来自「CAS在Tomcat中实现单点登录项目,单点登录(Single Sign On 」· Java 代码 · 共 228 行
JAVA
228 行
/* * Copyright 2004 The JA-SIG Collaborative. All rights reserved. See license * distributed with this file and available online at * http://www.ja-sig.org/products/cas/overview/license/ */package org.jasig.cas.ticket.registry;import java.util.ArrayList;import java.util.Collection;import junit.framework.TestCase;import org.jasig.cas.authentication.Authentication;import org.jasig.cas.authentication.ImmutableAuthentication;import org.jasig.cas.authentication.principal.SimplePrincipal;import org.jasig.cas.authentication.principal.SimpleWebApplicationServiceImpl;import org.jasig.cas.ticket.ServiceTicket;import org.jasig.cas.ticket.Ticket;import org.jasig.cas.ticket.TicketGrantingTicket;import org.jasig.cas.ticket.TicketGrantingTicketImpl;import org.jasig.cas.ticket.support.NeverExpiresExpirationPolicy;import org.jboss.cache.TreeCache;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.mock.web.MockHttpServletRequest;/** * Test case to test the DefaultTicketRegistry based on test cases to test all * Ticket Registries. * * @author Scott Battaglia * @author Marc-Antoine Garrigue * @version $Revision: 42057 $ $Date: 2007-06-11 09:33:54 -0400 (Mon, 11 Jun 2007) $ */public final class JBossCacheTicketRegistryTests extends TestCase { private static final String APPLICATION_CONTEXT_FILE_NAME = "jbossTestContext.xml"; private static final String APPLICATION_CONTEXT_CACHE_BEAN_NAME = "ticketRegistry"; private JBossCacheTicketRegistry registry; private TreeCache treeCache; private static final int TICKETS_IN_REGISTRY = 10; private TicketRegistry ticketRegistry; protected void setUp() throws Exception { super.setUp(); this.ticketRegistry = this.getNewTicketRegistry(); } protected void tearDown() throws Exception { super.tearDown(); } protected Authentication getAuthentication() { return new ImmutableAuthentication(new SimplePrincipal("test")); } public TicketRegistry getNewTicketRegistry() throws Exception { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( APPLICATION_CONTEXT_FILE_NAME); this.registry = (JBossCacheTicketRegistry) context .getBean(APPLICATION_CONTEXT_CACHE_BEAN_NAME); this.treeCache = (TreeCache) context.getBean("cache"); this.treeCache.removeData("/ticket"); return this.registry; } /** * Method to add a TicketGrantingTicket to the ticket cache. This should add * the ticket and return. Failure upon any exception. */ public void testAddTicketToCache() { try { this.ticketRegistry.addTicket(new TicketGrantingTicketImpl("TEST", getAuthentication(), new NeverExpiresExpirationPolicy())); } catch (Exception e) { fail("Caught an exception. But no exception should have been thrown."); } } public void testGetNullTicket() { try { this.ticketRegistry.getTicket(null, TicketGrantingTicket.class); } catch (Exception e) { fail("Exception caught. None expected."); } } public void testGetNonExistingTicket() { try { this.ticketRegistry.getTicket("FALALALALALAL", TicketGrantingTicket.class); } catch (Exception e) { fail("Exception caught. None expected."); } } public void testGetExistingTicketWithProperClass() { try { this.ticketRegistry.addTicket(new TicketGrantingTicketImpl("TEST", getAuthentication(), new NeverExpiresExpirationPolicy())); this.ticketRegistry.getTicket("TEST", TicketGrantingTicket.class); } catch (Exception e) { fail("Caught an exception. But no exception should have been thrown."); } } public void testGetExistingTicketWithInproperClass() { try { this.ticketRegistry.addTicket(new TicketGrantingTicketImpl("TEST", getAuthentication(), new NeverExpiresExpirationPolicy())); this.ticketRegistry.getTicket("TEST", ServiceTicket.class); } catch (ClassCastException e) { return; } fail("ClassCastException expected."); } public void testGetNullTicketWithoutClass() { try { this.ticketRegistry.getTicket(null); } catch (Exception e) { fail("Exception caught. None expected."); } } public void testGetNonExistingTicketWithoutClass() { try { this.ticketRegistry.getTicket("FALALALALALAL"); } catch (Exception e) { fail("Exception caught. None expected."); } } public void testGetExistingTicket() { try { this.ticketRegistry.addTicket(new TicketGrantingTicketImpl("TEST", getAuthentication(), new NeverExpiresExpirationPolicy())); this.ticketRegistry.getTicket("TEST"); } catch (Exception e) { e.printStackTrace(); fail("Caught an exception. But no exception should have been thrown."); } } public void testDeleteExistingTicket() { try { this.ticketRegistry.addTicket(new TicketGrantingTicketImpl("TEST", getAuthentication(), new NeverExpiresExpirationPolicy())); assertTrue("Ticket was not deleted.", this.ticketRegistry .deleteTicket("TEST")); } catch (Exception e) { fail("Caught an exception. But no exception should have been thrown."); } } public void testDeleteNonExistingTicket() { try { this.ticketRegistry.addTicket(new TicketGrantingTicketImpl("TEST", getAuthentication(), new NeverExpiresExpirationPolicy())); assertFalse("Ticket was deleted.", this.ticketRegistry .deleteTicket("TEST1")); } catch (Exception e) { fail("Caught an exception. But no exception should have been thrown."); } } public void testDeleteNullTicket() { try { this.ticketRegistry.addTicket(new TicketGrantingTicketImpl("TEST", getAuthentication(), new NeverExpiresExpirationPolicy())); assertFalse("Ticket was deleted.", this.ticketRegistry .deleteTicket(null)); } catch (Exception e) { fail("Caught an exception. But no exception should have been thrown."); } } public void testGetTicketsIsZero() { try { assertEquals("The size of the empty registry is not zero.", this.ticketRegistry.getTickets().size(), 0); } catch (Exception e) { e.printStackTrace(); fail("Caught an exception. But no exception should have been thrown."); } } public void testGetTicketsFromRegistryEqualToTicketsAdded() { final Collection<Ticket> tickets = new ArrayList<Ticket>(); final MockHttpServletRequest request = new MockHttpServletRequest(); request.addParameter("service", "test"); for (int i = 0; i < TICKETS_IN_REGISTRY; i++) { final TicketGrantingTicket ticketGrantingTicket = new TicketGrantingTicketImpl( "TEST" + i, getAuthentication(), new NeverExpiresExpirationPolicy()); final ServiceTicket st = ticketGrantingTicket.grantServiceTicket( "tests" + i, SimpleWebApplicationServiceImpl.createServiceFrom(request), new NeverExpiresExpirationPolicy(), false); tickets.add(ticketGrantingTicket); tickets.add(st); this.ticketRegistry.addTicket(ticketGrantingTicket); this.ticketRegistry.addTicket(st); } try { Collection<Ticket> ticketRegistryTickets = this.ticketRegistry.getTickets(); assertEquals( "The size of the registry is not the same as the collection.", ticketRegistryTickets.size(), tickets.size()); for (final Ticket ticket : tickets) { if (!ticketRegistryTickets.contains(ticket)) { fail("Ticket was added to registry but was not found in retrieval of collection of all tickets."); } } } catch (Exception e) { fail("Caught an exception. But no exception should have been thrown."); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?