/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.itest.store.dao;
import com.enonic.cms.api.plugin.ext.userstore.UserStoreConfigField;
import com.enonic.cms.core.security.userstore.UserStoreEntity;
import com.enonic.cms.core.security.userstore.UserStoreKey;
import com.enonic.cms.api.plugin.ext.userstore.UserStoreConfig;
import com.enonic.cms.core.security.userstore.config.UserStoreConfigParser;
import com.enonic.cms.framework.xml.XMLDocument;
import com.enonic.cms.framework.xml.XMLDocumentFactory;
import com.enonic.cms.itest.AbstractSpringTest;
import com.enonic.cms.store.dao.UserStoreDao;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Collection;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
public class UserStoreEntityDaoTest
extends AbstractSpringTest
{
@Autowired
private UserStoreDao userStoreDao;
@Test
public void testStoreUserStore()
{
final UserStoreEntity userStore = new UserStoreEntity();
userStore.setDefaultStore( false );
userStore.setDeleted( false );
userStore.setName( "TestName" );
userStore.setConnectorName( "TestConnectorName" );
final String configAsString = "<config><user-fields><first-name required=\"true\"/></user-fields></config>";
final XMLDocument configXmlDoc = XMLDocumentFactory.create( configAsString );
final UserStoreConfig config = UserStoreConfigParser.parse( configXmlDoc.getAsJDOMDocument().getRootElement() );
userStore.setConfig( config );
userStoreDao.storeNew( userStore );
final UserStoreKey userStoreKey = userStore.getKey();
userStoreDao.getHibernateTemplate().flush();
userStoreDao.getHibernateTemplate().clear();
// Excercise
final UserStoreEntity storedEntity = userStoreDao.findByKey( userStoreKey );
// Verify
assertEquals( userStore, storedEntity );
assertEquals( storedEntity.getConnectorName(), userStore.getConnectorName() );
assertEquals( storedEntity.getName(), userStore.getName() );
final UserStoreConfig userStoreConfig = storedEntity.getConfig();
assertNotNull( userStoreConfig );
final Collection<UserStoreConfigField> userFieldConfigs = userStoreConfig.getUserFieldConfigs();
assertNotNull( userFieldConfigs );
assertEquals( 1, userFieldConfigs.size() );
}
}