public void testReleaseSessions() {
    addSession("handle", "id", 1);
    addSession("handle2", "id2", 1);
    addSession("handle3", "id3", 1);

    assertEquals(3, info.getNumberOfSessions());

    info.removeSessions();

    assertEquals(0, info.getNumberOfSessions());

    addSession("handle", "id", 1);
    addSession("handle2", "id2", 2);

    info.removeSession("id2");

    assertEquals(1, info.getNumberOfSessions());
    assertNull(info.getSessionIdForPortlet("handle2"));
    assertEquals("id", info.getSessionIdForPortlet("handle"));

    info.removeSessionForPortlet("handle");

    assertEquals(0, info.getNumberOfSessions());
    assertNull(info.getSessionIdForPortlet("handle"));

    try {
      info.removeSessionForPortlet("handle");
      fail("Session for portlet 'handle' should have already been released!");
    } catch (IllegalArgumentException expected) {
      // expected
    }
  }