/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.plugin.spring;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import com.enonic.cms.api.plugin.PluginConfig;
import com.enonic.cms.core.plugin.context.PluginContext;
import static org.junit.Assert.*;
public class ConfigProcessorTest
{
private PluginContext context;
@Before
public void setUp()
{
final Map<String, String> map = new HashMap<String, String>();
map.put( "key1", "value1" );
map.put( "key2", "value2" );
map.put( "nested.key", "value3" );
final PluginConfig config = Mockito.mock( PluginConfig.class );
Mockito.when( config.entrySet() ).thenReturn( map.entrySet() );
this.context = Mockito.mock( PluginContext.class );
Mockito.when( this.context.getConfig() ).thenReturn( config );
Mockito.when( this.context.getId() ).thenReturn( "my.id" );
Mockito.when( this.context.getName() ).thenReturn( "My Plugin" );
Mockito.when( this.context.getVersion() ).thenReturn( "1.1.1" );
}
@Test
public void testMetaData()
{
final Properties props = configure();
assertEquals( "my.id", props.getProperty( "plugin.id" ) );
assertEquals( "My Plugin", props.getProperty( "plugin.name" ) );
assertEquals( "1.1.1", props.getProperty( "plugin.version" ) );
}
@Test
public void testConfig()
{
final Properties props = configure();
assertNull( props.getProperty( "plugin.config.key3" ) );
assertEquals( "value1", props.getProperty( "plugin.config.key1" ) );
assertEquals( "value2", props.getProperty( "plugin.config.key2" ) );
assertEquals( "value3", props.getProperty( "plugin.config.nested.key" ) );
}
private Properties configure()
{
return new ConfigProcessor( this.context ).getProperties();
}
}