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 + -
显示快捷键?