/**
   * Return Scheduler's interface. Start Scheduler if needed, connect as administrator if needed (if
   * not yet connected as user).
   *
   * <p>WARNING : if there was a previous connection as User, this connection is shut down. And so
   * some event can be missed by event receiver, between disconnection and reconnection (only one
   * connection to Scheduler per body is possible).
   *
   * @param user Type of user
   * @return scheduler interface
   * @throws Exception if an error occurs.
   */
  public Scheduler getSchedulerInterface(TestUsers user) throws Exception {
    startScheduler(currentTestConfiguration);

    if (!connectedSchedulerUser.is(user)) { // changing user on the fly
      if (connectedSchedulerUser != null) {
        connectedSchedulerUser.disconnect();
      }
      connectedSchedulerUser = new SchedulerTestUser(user);
      connectedSchedulerUser.connect(scheduler.getAuth());
    }

    if (!connectedSchedulerUser.isConnected()) {
      connectedSchedulerUser.connect(scheduler.getAuth());
    }

    return connectedSchedulerUser.getScheduler();
  }
 /**
  * Return Scheduler authentication interface. Start Scheduler with test configuration file, if
  * scheduler is not yet started.
  *
  * @throws Exception
  */
 public SchedulerAuthenticationInterface getSchedulerAuth() throws Exception {
   startScheduler(currentTestConfiguration);
   return scheduler.getAuth();
 }