package com.pugh.sockso.music.scheduling; import com.pugh.sockso.Properties; import com.pugh.sockso.StringProperties; import com.pugh.sockso.tests.SocksoTestCase; public class SchedulerRunnerTest extends SocksoTestCase { private Properties p; @Override public void setUp() { p = new StringProperties(); } private SchedulerRunner getInstance( final String scheduler ) { p.set( "scheduler", scheduler ); return new SchedulerRunner( null, p ); } public void testGetSchedulerReturnsSimpleSchedulerWhenNothingSpecified() { assertEquals( SimpleScheduler.class, getInstance("").getScheduler().getClass() ); } public void testGetSchedulerReturnsCronSchedulerWhenSpecified() { assertEquals( CronScheduler.class, getInstance("cron").getScheduler().getClass() ); } public void testGetSchedulerReturnsManualSchedulerWhenSpecified() { assertEquals( ManualScheduler.class, getInstance("manual").getScheduler().getClass() ); } public void testGetSchedulerReturnsSimpleSchedulerWhenInvalidOneSpecified() { assertEquals( SimpleScheduler.class, getInstance("doesnotexist").getScheduler().getClass() ); } public void testGetSchedulerReturnsNewValueWhenSchedulerIsChanged() { SchedulerRunner runner = getInstance( "" ); assertEquals( SimpleScheduler.class, runner.getScheduler().getClass() ); p.set( "scheduler", "cron" ); assertEquals( CronScheduler.class, runner.getScheduler().getClass() ); } }