/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.security.userstore.connector.config;
import org.junit.Test;
import static org.junit.Assert.*;
public class UserPolicyConfigTest
{
/**
* Possible to setup a blank user policy, which means a "read only" userstore connector.
*/
@Test
public void empty_user_policy_gives_readonly()
{
final UserPolicyConfig config = new UserPolicyConfig( null, "" );
assertFalse( config.canUpdate() );
assertFalse( config.canUpdatePassword() );
assertFalse( config.canCreate() );
assertFalse( config.canDelete() );
}
/**
* Possible to setup a null user policy, which means a "read only" userstore connector.
*/
@Test
public void null_user_policy_gives_readonly()
{
final UserPolicyConfig config = new UserPolicyConfig( null, null );
assertFalse( config.canUpdate() );
assertFalse( config.canUpdatePassword() );
assertFalse( config.canCreate() );
assertFalse( config.canDelete() );
}
@Test
public void testCreateOnly()
{
final UserPolicyConfig config = new UserPolicyConfig( null, "create" );
assertFalse( config.canUpdate() );
assertFalse( config.canUpdatePassword() );
assertTrue( config.canCreate() );
assertFalse( config.canDelete() );
}
@Test
public void testUpdateOnly()
{
final UserPolicyConfig config = new UserPolicyConfig( null, "update" );
assertTrue( config.canUpdate() );
assertFalse( config.canUpdatePassword() );
assertFalse( config.canCreate() );
assertFalse( config.canDelete() );
}
@Test
public void testUpdatePasswordOnly()
{
final UserPolicyConfig config = new UserPolicyConfig( null, "updatepassword" );
assertFalse( config.canUpdate() );
assertTrue( config.canUpdatePassword() );
assertFalse( config.canCreate() );
assertFalse( config.canDelete() );
}
@Test
public void testDeleteOnly()
{
final UserPolicyConfig config = new UserPolicyConfig( null, "delete" );
assertFalse( config.canUpdate() );
assertFalse( config.canUpdatePassword() );
assertFalse( config.canCreate() );
assertTrue( config.canDelete() );
}
@Test
public void testAll()
{
final UserPolicyConfig config = new UserPolicyConfig( null, "all" );
assertTrue( config.canUpdate() );
assertTrue( config.canUpdatePassword() );
assertTrue( config.canCreate() );
assertTrue( config.canDelete() );
}
@Test
public void testIllegalConfig()
{
try
{
final UserPolicyConfig config = new UserPolicyConfig( null, "all,update" );
fail( "An exception should have been thrown." );
}
catch ( Exception ex )
{
assertEquals( InvalidUserStoreConnectorConfigException.class.getName(), ex.getClass().getName() );
}
}
}