// $HeadURL$
// $Id$
//
// Copyright © 2006, 2010, 2011, 2012 by the President and Fellows of Harvard College.
//
// Screensaver is an open-source project developed by the ICCB-L and NSRB labs
// at Harvard Medical School. This software is distributed under the terms of
// the GNU General Public License.
package edu.harvard.med.screensaver.model.users;
import java.util.Collections;
import junit.framework.TestCase;
import org.apache.log4j.Logger;
import com.google.common.collect.Sets;
public class ScreensaverUserRoleTest extends TestCase
{
// static members
private static Logger log = Logger.getLogger(ScreensaverUserRoleTest.class);
public void testImpliedRoles()
{
assertEquals(Sets.newHashSet(ScreensaverUserRole.SCREENS_ADMIN,
ScreensaverUserRole.READ_EVERYTHING_ADMIN),
ScreensaverUserRole.BILLING_ADMIN.getImpliedRoles());
assertEquals(Sets.newHashSet(ScreensaverUserRole.USERS_ADMIN,
ScreensaverUserRole.USER_CHECKLIST_ITEMS_ADMIN,
ScreensaverUserRole.READ_EVERYTHING_ADMIN),
ScreensaverUserRole.LAB_HEADS_ADMIN.getImpliedRoles());
assertEquals(Sets.newHashSet(ScreensaverUserRole.READ_EVERYTHING_ADMIN),
ScreensaverUserRole.DEVELOPER.getImpliedRoles());
assertEquals(Sets.newHashSet(ScreensaverUserRole.SM_DSL_LEVEL3_SHARED_SCREENS, ScreensaverUserRole.SM_DSL_LEVEL2_MUTUAL_POSITIVES),
ScreensaverUserRole.SM_DSL_LEVEL1_MUTUAL_SCREENS.getImpliedRoles());
assertEquals(Collections.emptySet(),
ScreensaverUserRole.SCREENSAVER_USER.getImpliedRoles());
}
public void testIsAdministrative()
{
assertFalse(ScreensaverUserRole.SCREENSAVER_USER.isAdministrative());
assertTrue(ScreensaverUserRole.DEVELOPER.isAdministrative());
assertTrue(ScreensaverUserRole.READ_EVERYTHING_ADMIN.isAdministrative());
assertTrue(ScreensaverUserRole.SCREENS_ADMIN.isAdministrative());
assertTrue(ScreensaverUserRole.BILLING_ADMIN.isAdministrative());
assertFalse(ScreensaverUserRole.SM_DSL_LEVEL3_SHARED_SCREENS.isAdministrative());
}
public void testDisplayableRoleName()
{
assertEquals("Screensaver User Login", ScreensaverUserRole.SCREENSAVER_USER.getDisplayableRoleName());
}
}