@Test
public void testAccessControlList() throws Exception {

  AccessControlList acl;
  Collection<String> users;
  Collection<String> groups;
  
  acl = new AccessControlList("drwho tardis");
  users = acl.getUsers();
  assertThat(users.size()).isOne();
  assertThat(users.iterator().next()).isEqualTo("drwho");
  groups = acl.getGroups();
  assertThat(groups.size()).isOne();
  assertThat(groups.iterator().next()).isEqualTo("tardis");
  
  acl = new AccessControlList("drwho");
  users = acl.getUsers();
  assertThat(users.size()).isOne();
  assertThat(users.iterator().next()).isEqualTo("drwho");
  groups = acl.getGroups();
  assertThat(groups.size()).isZero();
  
  acl = new AccessControlList("drwho ");
  users = acl.getUsers();
  assertThat(users.size()).isOne();
  assertThat(users.iterator().next()).isEqualTo("drwho");
  groups = acl.getGroups();
  assertThat(groups.size()).isZero();
  
  acl = new AccessControlList(" tardis");
  users = acl.getUsers();
  assertThat(users.size()).isZero();
  groups = acl.getGroups();
  assertThat(groups.size()).isOne();
  assertThat(groups.iterator().next()).isEqualTo("tardis");
  Iterator<String> iter;    
  acl = new AccessControlList("drwho,joe tardis, users");
  users = acl.getUsers();
  assertThat(users.size()).isEqualTo(2);
  iter = users.iterator();
  assertThat(iter.next()).isEqualTo("drwho");
  assertThat(iter.next()).isEqualTo("joe");
  groups = acl.getGroups();
  assertThat(groups.size()).isEqualTo(2);
  iter = groups.iterator();
  assertThat(iter.next()).isEqualTo("tardis");
  assertThat(iter.next()).isEqualTo("users");
}