/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.vertical.engine.handlers; import java.util.HashMap; import java.util.Map; import junit.framework.TestCase; import com.enonic.cms.core.content.category.CategoryKey; import com.enonic.cms.core.content.category.CategoryStatistics; import static org.easymock.classextension.EasyMock.createMock; import static org.easymock.classextension.EasyMock.expect; import static org.easymock.classextension.EasyMock.replay; import static org.easymock.classextension.EasyMock.reset; public class CategoryStatisticsHelperTest extends TestCase { private CategoryHandler categoryHandler; private CategoryStatisticsHelper categoryStatisticsHelper; private final int unitKey = 0; protected void setUp() throws Exception { super.setUp(); categoryHandler = createMock( CategoryHandler.class ); categoryStatisticsHelper = new CategoryStatisticsHelper( categoryHandler ); Map<Integer, CategoryStatistics> catStats = getFixtureCategoryStats(); expect( categoryHandler.getCategoryStatistics( unitKey ) ).andReturn( catStats ); categoryHandler.collectStatisticsFromContent( unitKey, catStats ); categoryHandler.collectStatisticsFromBinaryData( unitKey, catStats ); } private Map<Integer, CategoryStatistics> getFixtureCategoryStats() { Map<Integer, CategoryStatistics> map = new HashMap<Integer, CategoryStatistics>(); map.put( 4, createCategoryStatistics( 4, 0, 1145 ) ); map.put( 5, createCategoryStatistics( 5, 0, 2094 ) ); map.put( 68, createCategoryStatistics( 68, 0, 3925 ) ); map.put( 69, createCategoryStatistics( 69, 0, 279 ) ); map.put( 78, createCategoryStatistics( 78, 0, 3360 ) ); map.put( 80, createCategoryStatistics( 80, 68, 538 ) ); map.put( 81, createCategoryStatistics( 81, 80, 638 ) ); map.put( 84, createCategoryStatistics( 84, 80, 167 ) ); map.put( 0, createCategoryStatistics( 0, null, 7664 ) ); return map; } private CategoryStatistics createCategoryStatistics( Integer categoryKey, Integer parentCategoryKey, int size ) { CategoryStatistics cs = new CategoryStatistics( categoryKey ); cs.setParentCategoryKey( parentCategoryKey ); cs.setSize( size ); return cs; } public void testGetArchiveSizeByCategory() { CategoryKey categoryKey = new CategoryKey( 68 ); expect( categoryHandler.getUnitKey( categoryKey ) ).andReturn( unitKey ); replay( categoryHandler ); long size = categoryStatisticsHelper.getArchiveSizeByCategory( categoryKey ); assertEquals( 5268, size ); } public void testGetArchiveSizeByUnit() { replay( categoryHandler ); long size = categoryStatisticsHelper.getArchiveSizeByUnit( unitKey ); int expectedSize = 19810; assertEquals( expectedSize, size ); } public void testGetArchiveSizeByCategoryWithNoMatchingCategory() { CategoryKey categoryKey = new CategoryKey( 9898 ); expect( categoryHandler.getUnitKey( categoryKey ) ).andReturn( unitKey ); replay( categoryHandler ); long size = categoryStatisticsHelper.getArchiveSizeByCategory( categoryKey ); assertEquals( 0, size ); } public void testGetArchiveSizeByUnitWithNoMatchingUnit() { reset( categoryHandler ); Map<Integer, CategoryStatistics> catStats = new HashMap<Integer, CategoryStatistics>(); expect( categoryHandler.getCategoryStatistics( 999 ) ).andReturn( catStats ); categoryHandler.collectStatisticsFromBinaryData( 999, catStats ); categoryHandler.collectStatisticsFromContent( 999, catStats ); replay( categoryHandler ); long size = categoryStatisticsHelper.getArchiveSizeByUnit( 999 ); assertEquals( 0, size ); } }