/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.structure;
import java.util.LinkedHashMap;
import java.util.Map;
import junit.framework.TestCase;
import com.enonic.cms.core.CaseInsensitiveString;
import com.enonic.cms.core.Path;
import com.enonic.cms.core.language.LanguageEntity;
import com.enonic.cms.core.structure.menuitem.MenuItemEntity;
import com.enonic.cms.core.structure.menuitem.MenuItemKey;
public class SiteEntityTest
extends TestCase
{
private MenuItemEntity mi_forside;
private MenuItemEntity mi_nyheter;
private MenuItemEntity mi_innenriks;
public void testGetMenuItemByPath()
{
SiteEntity site = createSiteFixture1();
MenuItemEntity actual;
actual = site.resolveMenuItemByPath( new Path( "" ) );
assertEquals( mi_forside, actual );
actual = site.resolveMenuItemByPath( new Path( "/" ) );
assertEquals( mi_forside, actual );
actual = site.resolveMenuItemByPath( new Path( "/forside/" ) );
assertEquals( mi_forside, actual );
actual = site.resolveMenuItemByPath( new Path( "/forside/nyheter" ) );
assertEquals( mi_nyheter, actual );
actual = site.resolveMenuItemByPath( new Path( "/forside/nyheter/innenriks/" ) );
assertEquals( mi_innenriks, actual );
}
private SiteEntity createSiteFixture1()
{
SiteEntity siteEntity = new SiteEntity();
siteEntity.setKey( 1 );
siteEntity.setLanguage( createLanguage( "no", "Norwegian" ) );
mi_forside = createMenuItem( "1", "forside", null );
mi_nyheter = createMenuItem( "2", "nyheter", mi_forside );
mi_innenriks = createMenuItem( "3", "innenriks", mi_nyheter );
siteEntity.setFirstPage( mi_forside );
Map<CaseInsensitiveString, MenuItemEntity> topMenuItems = new LinkedHashMap<CaseInsensitiveString, MenuItemEntity>();
topMenuItems.put( new CaseInsensitiveString( mi_forside.getName() ), mi_forside );
siteEntity.setTopMenuItems( topMenuItems );
return siteEntity;
}
private MenuItemEntity createMenuItem( String key, String name, MenuItemEntity parent )
{
MenuItemEntity mi = new MenuItemEntity();
mi.setKey( new MenuItemKey( key ) );
mi.setName( name );
if ( parent != null )
{
mi.setParent( parent );
parent.addChild( mi );
}
return mi;
}
private LanguageEntity createLanguage( String code, String description )
{
LanguageEntity language = new LanguageEntity();
language.setCode( code );
language.setDescription( description );
return language;
}
}