package service.filestore.roles; import javax.jcr.RepositoryException; import javax.jcr.Session; import org.junit.*; import service.GuiceInjectionPlugin; import service.JcrSessionFactory; import static test.AorraTestUtils.fakeAorraApp; import play.Play; import play.libs.F.Function; import static org.fest.assertions.Assertions.*; import static play.test.Helpers.running; /** * Tests for the Admin role. * * @author Tim Dettrick <t.dettrick@uq.edu.au> * */ public class AdminTest { @Test public void canGetInstance() { running(fakeAorraApp(), new Runnable() { @Override public void run() { JcrSessionFactory sessionFactory = GuiceInjectionPlugin .getInjector(Play.application()) .getInstance(JcrSessionFactory.class); sessionFactory.inSession(new Function<Session,Admin>() { @Override public Admin apply(Session session) throws RepositoryException { Admin admin = Admin.getInstance(session); assertThat(admin).isNotNull(); assertThat(admin.getGroup()).isNotNull(); try { assertThat(admin.getGroup().getID()).isEqualTo(Admin.GROUP_ID); } catch (RepositoryException e) { throw new RuntimeException(e); } return admin; } }); } }); } @Test public void onlyOneTrueAdminGroupExists() { running(fakeAorraApp(), new Runnable() { @Override public void run() { JcrSessionFactory sessionFactory = GuiceInjectionPlugin .getInjector(Play.application()) .getInstance(JcrSessionFactory.class); sessionFactory.inSession(new Function<Session,Session>() { @Override public Session apply(Session session) throws RepositoryException { Admin admin1 = Admin.getInstance(session); Admin admin2 = Admin.getInstance(session); assertThat(admin1.getGroup().getID()) .isEqualTo(admin2.getGroup().getID()); return session; } }); } }); } }