public void testAuthorizableBeansUsers() {
BeanDocument autorizableBean = new BeanDocument(CampaignClient
.getInstance().getRootDirectory(), "test-document-name",
"document-type", new ImageBean());
Player currentPlayer = CampaignClient.getInstance().getCurrentPlayer();
autorizableBean = addBean(autorizableBean);
assertTrue(autorizableBean.isAllowedToApplyChange(currentPlayer));
assertTrue(autorizableBean.isAllowedToSee(currentPlayer));
// Change the owner to no one
autorizableBean.setOwner(new UniqueID());
sleep();
assertTrue(!autorizableBean.isAllowedToApplyChange(currentPlayer));
assertTrue(!autorizableBean.isAllowedToSee(currentPlayer));
// Add us as user
UniqueID playerId = currentPlayer.getId();
autorizableBean.addUser(playerId);
sleep();
assertTrue("Should contain the user", autorizableBean.getUsers()
.contains(playerId));
assertTrue(!autorizableBean.isAllowedToApplyChange(currentPlayer));
assertTrue(autorizableBean.isAllowedToSee(currentPlayer));
// remove us as user
autorizableBean.removeUser(playerId);
sleep();
assertTrue("Should'nt contain the user", !autorizableBean.getUsers()
.contains(playerId));
assertTrue(!autorizableBean.isAllowedToApplyChange(currentPlayer));
assertTrue(!autorizableBean.isAllowedToSee(currentPlayer));
// set list of users
HashSet<UniqueID> guids = new HashSet<UniqueID>();
for (int i = 0; i < 100; ++i) {
guids.add(new UniqueID());
}
autorizableBean.setUsers(guids);
waitForChange(autorizableBean, "getUsers", guids);
autorizableBean.setOwner(currentPlayer.getId());
}