X10D/X10D.Tests/src/Time/UInt32Tests.cs

76 lines
2.3 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
using X10D.Time;
namespace X10D.Tests.Time;
[TestClass]
[CLSCompliant(false)]
public class UInt32Tests
{
[TestMethod]
public void FromUnixTimeMilliseconds_ShouldBeEpoch_GivenZero()
{
Assert.AreEqual(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc), 0U.FromUnixTimeMilliseconds());
}
[TestMethod]
public void FromUnixTimeSeconds_ShouldBeEpoch_GivenZero()
{
Assert.AreEqual(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc), 0U.FromUnixTimeSeconds());
}
[TestMethod]
public void IsLeapYear_ShouldBeFalse_GivenMultipleOf100()
{
Assert.IsFalse(100U.IsLeapYear());
Assert.IsFalse(1900U.IsLeapYear());
Assert.IsFalse(2100U.IsLeapYear());
}
[TestMethod]
public void IsLeapYear_ShouldBeFalse_GivenOddNumber()
{
Assert.IsFalse(1U.IsLeapYear());
Assert.IsFalse(101U.IsLeapYear());
}
[TestMethod]
public void IsLeapYear_ShouldBeTrue_GivenMultipleOf4Or400()
{
Assert.IsTrue(4U.IsLeapYear());
Assert.IsTrue(104U.IsLeapYear());
Assert.IsTrue(400U.IsLeapYear());
Assert.IsTrue(2000U.IsLeapYear());
}
[TestMethod]
public void IsLeapYear_ShouldThrow_GivenZero()
{
Assert.ThrowsException<ArgumentOutOfRangeException>(() => 0U.IsLeapYear());
}
[TestMethod]
public void TicksMillisecondsSecondsMinutesDaysHoursWeeks_ShouldBePositive_GivenOne()
{
Assert.IsTrue(1U.Ticks() > TimeSpan.Zero);
Assert.IsTrue(1U.Milliseconds() > TimeSpan.Zero);
Assert.IsTrue(1U.Seconds() > TimeSpan.Zero);
Assert.IsTrue(1U.Minutes() > TimeSpan.Zero);
Assert.IsTrue(1U.Days() > TimeSpan.Zero);
Assert.IsTrue(1U.Hours() > TimeSpan.Zero);
Assert.IsTrue(1U.Weeks() > TimeSpan.Zero);
}
[TestMethod]
public void TicksMillisecondsSecondsMinutesDaysHoursWeeks_ShouldBeZero_GivenZero()
{
Assert.AreEqual(TimeSpan.Zero, 0U.Ticks());
Assert.AreEqual(TimeSpan.Zero, 0U.Milliseconds());
Assert.AreEqual(TimeSpan.Zero, 0U.Seconds());
Assert.AreEqual(TimeSpan.Zero, 0U.Minutes());
Assert.AreEqual(TimeSpan.Zero, 0U.Days());
Assert.AreEqual(TimeSpan.Zero, 0U.Hours());
Assert.AreEqual(TimeSpan.Zero, 0U.Weeks());
}
}