/********************************************************************************** * $URL: https://source.sakaiproject.org/svn/kernel/trunk/kernel-impl/src/test/java/org/sakaiproject/site/impl/test/SiteAliasCleanupNotificationActionIntegrationTest.java $ * $Id: SiteAliasCleanupNotificationActionIntegrationTest.java 105077 2012-02-24 22:54:29Z ottenhoff@longsight.com $ *********************************************************************************** * * Copyright (c) 2003, 2004, 2005, 2006 Sakai Foundation * * Licensed under the Educational Community License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.opensource.org/licenses/ECL-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * **********************************************************************************/ package org.sakaiproject.site.impl.test; import java.util.List; import junit.extensions.TestSetup; import junit.framework.Test; import junit.framework.TestSuite; import org.sakaiproject.alias.api.AliasService; import org.sakaiproject.event.api.UsageSessionService; import org.sakaiproject.exception.IdInvalidException; import org.sakaiproject.exception.IdUnusedException; import org.sakaiproject.exception.IdUsedException; import org.sakaiproject.exception.PermissionException; import org.sakaiproject.id.api.IdManager; import org.sakaiproject.site.api.Site; import org.sakaiproject.site.api.SiteService; import org.sakaiproject.test.SakaiKernelTestBase; import org.sakaiproject.tool.api.Session; import org.sakaiproject.tool.api.SessionManager; public class SiteAliasCleanupNotificationActionIntegrationTest extends SakaiKernelTestBase { private Session session; public static Test suite() { TestSetup setup = new TestSetup(new TestSuite(SiteAliasCleanupNotificationActionIntegrationTest.class)) { protected void setUp() throws Exception { oneTimeSetup(); } protected void tearDown() throws Exception { oneTimeTearDown(); } }; return setup; } protected void setUp() throws Exception { startSession(); super.setUp(); } @SuppressWarnings("unchecked") public void testSiteDeletionTriggersSiteAliasDeletion() throws IdInvalidException, IdUsedException, PermissionException { IdManager idManager = getService(IdManager.class); SiteService siteService = getService(SiteService.class); AliasService aliasService = getService(AliasService.class); // fixture setup Site site = siteService.addSite(idManager.createUuid(), (String)null); final String siteAliasId1 = "site-alias-1"; final String siteAliasId2 = "site-alias-2"; aliasService.setAlias(siteAliasId1, site.getReference()); aliasService.setAlias(siteAliasId2, site.getReference()); // sanity check List createdSiteAliases = aliasService.getAliases(site.getReference()); assertFalse("Expected at least one alias to be created during fixture setup", createdSiteAliases.isEmpty()); // the "real" code exercise try { siteService.removeSite(site); } catch (IdUnusedException e) { // TODO Auto-generated catch block e.printStackTrace(); } List remainingSiteAliases = aliasService.getAliases(site.getReference()); assertEquals("Expected all site aliases to be deleted on site deletion", 0, remainingSiteAliases.size()); } private void startSession() { UsageSessionService usageSessionService = getService(UsageSessionService.class); usageSessionService.startSession("admin", "localhost", "integration-tests"); SessionManager sessionManager = getService(SessionManager.class); session = sessionManager.getCurrentSession(); session.setUserEid("admin"); session.setUserId("admin"); } private void endSession() { if ( session != null ) session.invalidate(); } protected void tearDown() throws Exception { endSession(); super.tearDown(); } }