using System; using System.Threading; using Pfr.Services.Scheduler; using Xunit; namespace Pfr.Services.SchedulerTests { public class SchedulerTests { private TimeExec _te; private int _CntExec = 0; public TimeExec GetTimeExec(int pSec) { TimeExec _TimeExec = new TimeExec(); DateTime _dateTime = DateTime.Now.AddSeconds(pSec); _TimeExec.Hour = _dateTime.Hour; _TimeExec.Minute = _dateTime.Minute; return _TimeExec; } [Fact()] public void SchedulerTest() { _te = GetTimeExec(2); Scheduler.Scheduler _Scheduler = new Scheduler.Scheduler(_te); _Scheduler.OnExecute += OnExecMetod; Thread.Sleep(4000); } private void OnExecMetod(DateTime pDateTimeExec) { Assert.Equal(pDateTimeExec.Hour, DateTime.Now.Hour); Assert.Equal(pDateTimeExec.Minute, DateTime.Now.Minute); } [Fact()] public void Scheduler_Empty_OnExecute_Test() { _te = GetTimeExec(2); Scheduler.Scheduler _Scheduler = new Scheduler.Scheduler(_te); Thread.Sleep(4000); } [Fact()] public void Scheduler_One_Exec_Test() { _te = GetTimeExec(60); Scheduler.Scheduler _Scheduler = new Scheduler.Scheduler(_te); _Scheduler.OnExecute += OnExec; Thread.Sleep(120000); Assert.Equal(_CntExec, 1); } private void OnExec(DateTime pDateTimeExec) { _CntExec += 1; } } }