// $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 com.google.common.collect.Sets;
import junit.framework.TestSuite;
import edu.harvard.med.screensaver.model.AbstractEntityInstanceTest;
import edu.harvard.med.screensaver.model.DataModelViolationException;
public class AdministratorUserTest extends AbstractEntityInstanceTest<AdministratorUser>
{
public static TestSuite suite()
{
return buildTestSuite(AdministratorUserTest.class, AdministratorUser.class);
}
public AdministratorUserTest()
{
super(AdministratorUser.class);
}
public void testRoles() {
final AdministratorUser user = new AdministratorUser("first", "last");
user.addScreensaverUserRole(ScreensaverUserRole.SCREENS_ADMIN);
user.addScreensaverUserRole(ScreensaverUserRole.LIBRARIES_ADMIN);
genericEntityDao.saveOrUpdateEntity(user);
AdministratorUser user2 = genericEntityDao.findEntityById(AdministratorUser.class, user.getEntityId(), false, ScreensaverUser.roles.castToSubtype(AdministratorUser.class));
assertEquals(Sets.newHashSet(ScreensaverUserRole.READ_EVERYTHING_ADMIN,
ScreensaverUserRole.SCREENS_ADMIN,
ScreensaverUserRole.LIBRARIES_ADMIN),
user2.getScreensaverUserRoles());
try {
AdministratorUser user3 = genericEntityDao.findEntityById(AdministratorUser.class, user.getEntityId(), false, ScreensaverUser.roles.castToSubtype(AdministratorUser.class));
user3.addScreensaverUserRole(ScreensaverUserRole.SM_DSL_LEVEL3_SHARED_SCREENS);
fail("expected DataModelViolationException after adding screening room user role to administrator user ");
}
catch (Exception e) {
assertTrue(e instanceof DataModelViolationException);
}
}
}