/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core; import org.junit.Test; import static org.junit.Assert.*; /** * Sep 23, 2009 */ public class CacheSettingsTest { @Test public void anyEnabledForverGetsSecondsToLiveSetToIntegerMax() { assertEquals( new Integer( Integer.MAX_VALUE ), new CacheSettings( true, CacheSettings.TYPE_FOREVER, 0 ).getSpecifiedSecondsToLive() ); assertEquals( new Integer( Integer.MAX_VALUE ), new CacheSettings( true, CacheSettings.TYPE_FOREVER, 500 ).getSpecifiedSecondsToLive() ); assertEquals( new Integer( Integer.MAX_VALUE ), new CacheSettings( true, CacheSettings.TYPE_FOREVER, Integer.MAX_VALUE ).getSpecifiedSecondsToLive() ); } @Test public void anyDisabledGetsSecondsToLiveSetToZero() { assertEquals( new Integer( 0 ), new CacheSettings( false, CacheSettings.TYPE_FOREVER, Integer.MAX_VALUE ).getSpecifiedSecondsToLive() ); assertEquals( new Integer( 0 ), new CacheSettings( false, CacheSettings.TYPE_DEFAULT, 500 ).getSpecifiedSecondsToLive() ); assertEquals( new Integer( 0 ), new CacheSettings( false, CacheSettings.TYPE_SPECIFIED, 500 ).getSpecifiedSecondsToLive() ); } @Test public void a_disabled_CacheSettings_isTighterThan_any_but_disabled() { CacheSettings a_disabled = new CacheSettings( false, CacheSettings.TYPE_DEFAULT, 0 ); CacheSettings not_disabled_default = new CacheSettings( true, CacheSettings.TYPE_DEFAULT, 0 ); CacheSettings not_disabled_specified = new CacheSettings( true, CacheSettings.TYPE_SPECIFIED, 500 ); CacheSettings not_disabled_forever = new CacheSettings( true, CacheSettings.TYPE_FOREVER, 0 ); assertTrue( a_disabled.isTighterThan( not_disabled_default ) ); assertTrue( a_disabled.isTighterThan( not_disabled_specified ) ); assertTrue( a_disabled.isTighterThan( not_disabled_forever ) ); } @Test public void an_enabled_default_with_less_seconds_isTighterThan_any_default_or_specified_with_more_seconds() { CacheSettings an_enabled_default_with_500_seconds = createEnabledDefault( 500 ); assertTrue( an_enabled_default_with_500_seconds.isTighterThan( createEnabledDefault( 501 ) ) ); assertFalse( an_enabled_default_with_500_seconds.isTighterThan( createEnabledDefault( 499 ) ) ); assertTrue( an_enabled_default_with_500_seconds.isTighterThan( createEnabledSpecified( 501 ) ) ); assertFalse( an_enabled_default_with_500_seconds.isTighterThan( createEnabledSpecified( 499 ) ) ); } @Test public void an_enabled_specified_with_less_seconds_isTighterThan_any_default_or_specified_with_more_seconds() { CacheSettings an_enabled_specified_with_500_seconds = createEnabledSpecified( 500 ); assertTrue( an_enabled_specified_with_500_seconds.isTighterThan( createEnabledDefault( 501 ) ) ); assertFalse( an_enabled_specified_with_500_seconds.isTighterThan( createEnabledDefault( 499 ) ) ); assertTrue( an_enabled_specified_with_500_seconds.isTighterThan( createEnabledSpecified( 501 ) ) ); assertFalse( an_enabled_specified_with_500_seconds.isTighterThan( createEnabledSpecified( 499 ) ) ); } @Test public void an_enabled_forever_isNotLessThan_any() { CacheSettings an_enabled_forever = createEnabledForever(); assertFalse( an_enabled_forever.isTighterThan( createEnabledDefault( 500 ) ) ); assertFalse( an_enabled_forever.isTighterThan( createEnabledSpecified( 500 ) ) ); assertFalse( an_enabled_forever.isTighterThan( createDisabled() ) ); } private CacheSettings createDisabled() { return new CacheSettings( false, CacheSettings.TYPE_FOREVER, Integer.MAX_VALUE ); } private CacheSettings createEnabledForever() { return new CacheSettings( true, CacheSettings.TYPE_FOREVER, Integer.MAX_VALUE ); } private CacheSettings createEnabledDefault( int secondsToLive ) { return new CacheSettings( true, CacheSettings.TYPE_DEFAULT, secondsToLive ); } private CacheSettings createEnabledSpecified( int secondsToLive ) { return new CacheSettings( true, CacheSettings.TYPE_SPECIFIED, secondsToLive ); } }