PKHeX/Tests/PKHeX.Tests/Util/DateUtilTests.cs
Kurt 595c7eb4c5 Split winforms to separate project
resources still are associated with winforms, eh
program still runs fine and I've replicated the mono build options. lmk
if this breaks stuff
2017-01-07 23:54:09 -08:00

115 lines
4 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
using PKHeX.Core;
namespace PKHeX.Tests.Util
{
[TestClass]
public class DateUtilTests
{
const string DateUtilCategory = "Date Util Tests";
[TestMethod]
[TestCategory(DateUtilCategory)]
public void RecognizesCorrectDates()
{
Assert.IsTrue(Core.Util.IsDateValid(2000, 1, 1), "Failed to recognize 1/1/2000");
Assert.IsTrue(Core.Util.IsDateValid(2001, 1, 31), "Failed to recognize 1/31/2001");
}
[TestMethod]
[TestCategory(DateUtilCategory)]
public void MonthBoundaries()
{
Assert.IsTrue(Core.Util.IsDateValid(2016, 1, 31), "Incorrect month boundary for January");
Assert.IsTrue(Core.Util.IsDateValid(2016, 2, 28), "Incorrect month boundary for February");
Assert.IsTrue(Core.Util.IsDateValid(2016, 3, 31), "Incorrect month boundary for March");
Assert.IsTrue(Core.Util.IsDateValid(2016, 4, 30), "Incorrect month boundary for April");
Assert.IsTrue(Core.Util.IsDateValid(2016, 5, 31), "Incorrect month boundary for May");
Assert.IsTrue(Core.Util.IsDateValid(2016, 6, 30), "Incorrect month boundary for June");
Assert.IsTrue(Core.Util.IsDateValid(2016, 7, 31), "Incorrect month boundary for July");
Assert.IsTrue(Core.Util.IsDateValid(2016, 8, 31), "Incorrect month boundary for August");
Assert.IsTrue(Core.Util.IsDateValid(2016, 9, 30), "Incorrect month boundary for September");
Assert.IsTrue(Core.Util.IsDateValid(2016, 10, 31), "Incorrect month boundary for October");
Assert.IsTrue(Core.Util.IsDateValid(2016, 11, 30), "Incorrect month boundary for November");
Assert.IsTrue(Core.Util.IsDateValid(2016, 12, 31), "Incorrect month boundary for December");
}
[TestMethod]
[TestCategory(DateUtilCategory)]
public void RecognizeCorrectLeapYear()
{
Assert.IsTrue(Core.Util.IsDateValid(2004, 2, 29));
}
[TestMethod]
[TestCategory(DateUtilCategory)]
public void FailsWithIncorrectLeapYear()
{
Assert.IsFalse(Core.Util.IsDateValid(2005, 2, 29));
}
[TestMethod]
[TestCategory(DateUtilCategory)]
public void FailsWithZeroDate()
{
Assert.IsFalse(Core.Util.IsDateValid(0, 0, 0));
}
[TestMethod]
[TestCategory(DateUtilCategory)]
public void FailsWithNegativeDate()
{
Assert.IsFalse(Core.Util.IsDateValid(-1, -1, -1));
}
[TestMethod]
[TestCategory(DateUtilCategory)]
public void FailsWithBigDay()
{
Assert.IsFalse(Core.Util.IsDateValid(2000, 1, 32));
}
[TestMethod]
[TestCategory(DateUtilCategory)]
public void FailsWithBigMonth()
{
Assert.IsFalse(Core.Util.IsDateValid(2000, 13, 1));
}
[TestMethod]
[TestCategory(DateUtilCategory)]
public void FailsWithBigYear()
{
Assert.IsFalse(Core.Util.IsDateValid(10000, 1, 1));
}
[TestMethod]
[TestCategory(DateUtilCategory)]
public void FailsWithZeroDay()
{
Assert.IsFalse(Core.Util.IsDateValid(2000, 1, 0));
}
[TestMethod]
[TestCategory(DateUtilCategory)]
public void FailsWithZeroMonth()
{
Assert.IsFalse(Core.Util.IsDateValid(2000, 0, 1));
}
[TestMethod]
[TestCategory(DateUtilCategory)]
public void FailsWithZeroYear()
{
Assert.IsFalse(Core.Util.IsDateValid(0, 1, 1));
}
[TestMethod]
[TestCategory(DateUtilCategory)]
public void TestUIntOverload()
{
Assert.IsTrue(Core.Util.IsDateValid((uint)2000, (uint)1, (uint)1), "Failed 1/1/2000");
Assert.IsFalse(Core.Util.IsDateValid(uint.MaxValue, uint.MaxValue, uint.MaxValue), "Failed with uint.MaxValue");
}
}
}