package com.rupertjones.globalcron.server.web.service;
import com.rupertjones.globalcron.common.domain.Host;
import com.rupertjones.globalcron.common.domain.JobDescriptor;
import com.rupertjones.globalcron.server.HostBuilder;
import com.rupertjones.globalcron.server.dao.HostDAO;
import com.rupertjones.globalcron.server.web.AbstractWebSpringTest;
import org.joda.time.DateTime;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
/**
* <p>© Rupert Jones 2011,2012</p>
*
* @author rup
*/
public class DefaultTimezoneServiceTest extends AbstractWebSpringTest {
@Autowired
private JobService jobService;
@Autowired
private DefaultTimezoneService timezoneService;
@Autowired
private HostDAO hostDAO;
@Test
public void test_date_in_used_timezones() {
HostBuilder hostBuilder = new HostBuilder();
hostBuilder.withHostname("foo");
Host host = hostBuilder.build();
hostDAO.upsert(host);
JobDescriptor job = new JobDescriptor();
job.setCron("* * * * ?");
job.setTimezone("America/New_York");
job.setHost(host);
job.setName("test job");
job.setScript("/home/foo.sh");
job.setEnabled(true);
jobService.save(job);
DateTime now = new DateTime(2011, 11, 3, 13, 25, 25, 9);
timezoneService.setNow(now);
List<String> timezones = timezoneService.currentTimeInCurrentlyUsedZones();
assertEquals(2, timezones.size());
assertTrue(timezones.contains("Wed 22:25:25 (America/New_York)"));
}
}