using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kaleida.ServiceMonitor.Framework;
using NUnit.Framework;
namespace Kaleida.UnitTests.Framework
{
[TestFixture]
public class ScheduledTimeTests
{
[Test]
[ExpectedException(typeof(ArgumentOutOfRangeException), ExpectedMessage = "Must be between 0 and 23\r\nParameter name: hour\r\nActual value was -1.")]
public void TestExceptionIsThrownIfHourIsNegative()
{
new ScheduledTime(-1, 32); // throws
}
[Test]
[ExpectedException(typeof(ArgumentOutOfRangeException), ExpectedMessage = "Must be between 0 and 23\r\nParameter name: hour\r\nActual value was 24.")]
public void TestExceptionIsThrownIfHourGreaterThan23()
{
new ScheduledTime(24, 32); // throws
}
[Test]
[ExpectedException(typeof(ArgumentOutOfRangeException), ExpectedMessage = "Must be between 0 and 59\r\nParameter name: minute\r\nActual value was -1.")]
public void TestExceptionIsThrownIfMinuteIsNegative()
{
new ScheduledTime(09, -1); // throws
}
[Test]
[ExpectedException(typeof(ArgumentOutOfRangeException), ExpectedMessage = "Must be between 0 and 59\r\nParameter name: minute\r\nActual value was 60.")]
public void TestExceptionIsThrownIfMinuteIsGreaterThan59()
{
new ScheduledTime(09, 60); // throws
}
[Test]
public void TestToString()
{
Assert.AreEqual("09:32", new ScheduledTime(9, 32).ToString());
Assert.AreEqual("14:05", new ScheduledTime(14, 5).ToString());
}
[Test]
public void TestToTimeSpan()
{
var timeSpan = new ScheduledTime(9, 32).ToTimeSpan();
Assert.AreEqual(9, timeSpan.Hours);
Assert.AreEqual(32, timeSpan.Minutes);
Assert.AreEqual(0, timeSpan.Seconds);
}
}
}