/*
 * Created on 14-Feb-2005
 */
package org.bodington.server.realm;

import java.util.Enumeration;

import org.bodington.server.BuildingServerException;
import org.bodington.server.BuildingServerTest;

/**
 * @author buckett
 */
public class GroupTest extends BuildingServerTest
{
    private Group group;
    
   public void setUp() throws Exception{
       super.setUp();
       group = new Group();
       group.setDescription("Test");
       group.setName("test");
       group.setResourceId(resource.getPrimaryKey());
       group.save();
   }
   
    public void testMembersEmpty() throws BuildingServerException
    {
        Enumeration members = group.members();
        assertFalse(members.hasMoreElements());
        
    }
    
      public void testMembersOne() throws BuildingServerException 
      {
        group.addMember(user);
        group.save();
        
        Enumeration members = group.members();
        User member = (User)members.nextElement();
        assertTrue(member != null);
        assertFalse(members.hasMoreElements());
    }
      
      public void testMembersTwo() throws BuildingServerException
      {
          User other = new User();
          other.setInitials("O");
          other.setSurname("Test");
          other.setName("O");
          other.setZone(zone);
          other.save();
          
          group.addMember(user);
          group.addMember(other);
          group.save();
          
          Enumeration members = group.members();
          members.nextElement();
          members.nextElement();
          assertFalse(members.hasMoreElements());
      }
      
      public void testMembersSpecial() throws BuildingServerException
      {
          group.setSpecialGroup(new Integer(1));
          group.save();
          
          user.addToGroup(group);
          user.save();
          
          Enumeration members = group.members();
          assertTrue(members.hasMoreElements());
          members.nextElement();
          assertFalse(members.hasMoreElements());
          
      }

}
