/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.structure; import org.mockito.Mockito; import junit.framework.TestCase; import com.enonic.cms.core.MockSitePropertiesService; import com.enonic.cms.core.portal.SiteNotFoundException; import com.enonic.cms.core.portal.cache.PageCacheService; import com.enonic.cms.store.dao.SiteDao; import static org.easymock.EasyMock.createNiceMock; import static org.easymock.EasyMock.replay; public class SiteServiceImplTest extends TestCase { private SiteServiceImpl siteService; private SiteContextManager siteContextManager = new SiteContextManager(); private PageCacheService pageCacheService; private MockSitePropertiesService sitePropertiesService; private SiteDao siteDao; private final SiteKey siteKey = new SiteKey( 5 ); protected void setUp() throws Exception { super.setUp(); pageCacheService = createNiceMock( PageCacheService.class ); sitePropertiesService = new MockSitePropertiesService(); siteDao = Mockito.mock( SiteDao.class ); siteService = new SiteServiceImpl(); siteService.setSiteDao( siteDao ); siteService.setSiteContextManager( siteContextManager ); siteService.setPageCacheService( pageCacheService ); siteService.setSitePropertiesService( sitePropertiesService ); } public void testGetSiteContext() { replay( pageCacheService ); Mockito.when( siteDao.findByKey( siteKey ) ).thenReturn( createSite( siteKey, "MySite" ) ); SiteContext siteContext = siteService.getSiteContext( siteKey ); assertEquals( siteKey, siteContext.getSiteKey() ); // sjekk at SiteContexten har blitt registert hos siteContextManageren assertSame( siteContext, siteContextManager.getSiteContext( siteKey ) ); assertSame( siteContext, siteService.getSiteContext( siteKey ) ); } public void testGetSiteContextWhenSiteNotExist() { replay( pageCacheService ); try { siteService.getSiteContext( new SiteKey( 99999 ) ); fail( "Expected SiteNotFoundException" ); } catch ( SiteNotFoundException e ) { assertTrue( e.getMessage().startsWith( "Site not found: '99999'" ) ); } } public void testGetSiteContextWhenSiteNotExistingAnymore() { replay( pageCacheService ); siteContextManager.registerSiteContext( new SiteContext( new SiteKey( 123 ) ) ); try { siteService.getSiteContext( new SiteKey( 123 ) ); fail( "Expected SiteNotFoundException" ); } catch ( SiteNotFoundException e ) { assertTrue( e.getMessage().startsWith( "Site not found: '123'" ) ); } assertNull( siteContextManager.getSiteContext( new SiteKey( 123 ) ) ); } private SiteEntity createSite( SiteKey siteKey, String name ) { SiteEntity site = new SiteEntity(); site.setKey( siteKey.toInt() ); site.setName( name ); return site; } }