/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.security.userstore.config; import java.util.List; import org.junit.Test; import com.google.common.collect.Lists; import com.enonic.cms.api.plugin.ext.userstore.UserStoreConfig; import com.enonic.cms.api.plugin.ext.userstore.UserStoreConfigField; import com.enonic.cms.api.plugin.ext.userstore.UserFieldType; import static org.junit.Assert.*; public class UserStoreConfigTest { @Test public void getUserFieldTypes() { // setup UserStoreConfig userStoreConfig = new UserStoreConfig(); userStoreConfig.addUserFieldConfig( new UserStoreConfigField( UserFieldType.NICK_NAME ) ); userStoreConfig.addUserFieldConfig( new UserStoreConfigField( UserFieldType.TITLE ) ); // exercise List<UserFieldType> configuredTypesOnly = Lists.newArrayList( userStoreConfig.getUserFieldTypes() ); // verify assertEquals( 2, configuredTypesOnly.size() ); assertEquals( "nick-name", configuredTypesOnly.get( 0 ).getName() ); assertEquals( "title", configuredTypesOnly.get( 1 ).getName() ); } @Test public void getRemoteOnlyUserFieldTypes() { // setup UserStoreConfig userStoreConfig = new UserStoreConfig(); userStoreConfig.addUserFieldConfig( createUserFieldConfig( UserFieldType.NICK_NAME, "remote" ) ); userStoreConfig.addUserFieldConfig( new UserStoreConfigField( UserFieldType.TITLE ) ); // exercise List<UserFieldType> configuredTypesOnly = Lists.newArrayList( userStoreConfig.getRemoteOnlyUserFieldTypes() ); // verify assertEquals( 1, configuredTypesOnly.size() ); assertEquals( "nick-name", configuredTypesOnly.get( 0 ).getName() ); } @Test public void getLocalOnlyUserFieldTypes() { // setup UserStoreConfig userStoreConfig = new UserStoreConfig(); userStoreConfig.addUserFieldConfig( createUserFieldConfig( UserFieldType.NICK_NAME, "remote" ) ); userStoreConfig.addUserFieldConfig( new UserStoreConfigField( UserFieldType.TITLE ) ); // exercise List<UserFieldType> configuredTypesOnly = Lists.newArrayList( userStoreConfig.getLocalOnlyUserFieldTypes() ); // verify assertEquals( 1, configuredTypesOnly.size() ); assertEquals( "title", configuredTypesOnly.get( 0 ).getName() ); } private UserStoreConfigField createUserFieldConfig( UserFieldType type, String attributes ) { UserStoreConfigField config = new UserStoreConfigField( type ); if ( attributes.contains( "read-only" ) ) { config.setReadOnly( true ); } if ( attributes.contains( "remote" ) ) { config.setRemote( true ); } return config; } }