1
0
mirror of https://github.com/oliverbooth/X10D synced 2024-10-19 06:16:10 +00:00
X10D/X10D.Tests/src/Time/DateTimeTests.cs

86 lines
2.7 KiB
C#
Raw Normal View History

2022-04-24 09:28:50 +00:00
using Microsoft.VisualStudio.TestTools.UnitTesting;
using X10D.Time;
namespace X10D.Tests.Time;
[TestClass]
public class DateTimeTests
{
[TestMethod]
public void AgeShouldBeCorrect()
{
var birthday = new DateTime(2000, 1, 1);
DateTime today = DateTime.Now.Date;
Assert.AreEqual(today.Year - birthday.Year, birthday.Age());
}
[TestMethod]
public void FirstShouldBeCorrect()
{
var date = new DateTime(2000, 1, 1);
Assert.AreEqual(new DateTime(2000, 1, 1), date.First(DayOfWeek.Saturday));
Assert.AreEqual(new DateTime(2000, 1, 2), date.First(DayOfWeek.Sunday));
Assert.AreEqual(new DateTime(2000, 1, 3), date.First(DayOfWeek.Monday));
Assert.AreEqual(new DateTime(2000, 1, 4), date.First(DayOfWeek.Tuesday));
Assert.AreEqual(new DateTime(2000, 1, 5), date.First(DayOfWeek.Wednesday));
Assert.AreEqual(new DateTime(2000, 1, 6), date.First(DayOfWeek.Thursday));
Assert.AreEqual(new DateTime(2000, 1, 7), date.First(DayOfWeek.Friday));
}
[TestMethod]
public void FirstDayOfMonthShouldBeCorrect()
{
DateTime today = DateTime.Now.Date;
Assert.AreEqual(new DateTime(today.Year, today.Month, 1), today.FirstDayOfMonth());
}
[TestMethod]
public void LastShouldBeCorrect()
{
var date = new DateTime(2000, 1, 1);
Assert.AreEqual(new DateTime(2000, 1, 29), date.Last(DayOfWeek.Saturday));
Assert.AreEqual(new DateTime(2000, 1, 30), date.Last(DayOfWeek.Sunday));
Assert.AreEqual(new DateTime(2000, 1, 31), date.Last(DayOfWeek.Monday));
Assert.AreEqual(new DateTime(2000, 1, 25), date.Last(DayOfWeek.Tuesday));
Assert.AreEqual(new DateTime(2000, 1, 26), date.Last(DayOfWeek.Wednesday));
Assert.AreEqual(new DateTime(2000, 1, 27), date.Last(DayOfWeek.Thursday));
Assert.AreEqual(new DateTime(2000, 1, 28), date.Last(DayOfWeek.Friday));
}
[TestMethod]
public void LastDayOfMonthShouldBeCorrect()
{
var date = new DateTime(2000, 1, 1);
Assert.AreEqual(new DateTime(date.Year, date.Month, 31), date.LastDayOfMonth());
}
[TestMethod]
public void NextShouldBeCorrect()
{
var date = new DateTime(2000, 1, 1);
Assert.AreEqual(new DateTime(2000, 1, 8), date.Next(DayOfWeek.Saturday));
}
[TestMethod]
public void ToUnixTimeMillisecondsShouldBeCorrect()
{
var date = new DateTime(2000, 1, 1);
Assert.AreEqual(946684800000, date.ToUnixTimeMilliseconds());
}
[TestMethod]
public void ToUnixTimeSecondsShouldBeCorrect()
{
var date = new DateTime(2000, 1, 1);
Assert.AreEqual(946684800, date.ToUnixTimeSeconds());
}
}