mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-23 12:33:06 +00:00
2bfdb72e1b
DateTime.UtcNow is considerably faster than DateTime.Now, and since this value isn't used for actual game purposes, we can take advantage of it.
129 lines
4.8 KiB
C#
129 lines
4.8 KiB
C#
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using System;
|
|
|
|
namespace PKHeX.Tests.PKM
|
|
{
|
|
[TestClass]
|
|
public class PKMTests
|
|
{
|
|
const string DateTestCategory = "PKM Date Tests";
|
|
|
|
[TestMethod]
|
|
[TestCategory(DateTestCategory)]
|
|
public void MetDateGetterTest()
|
|
{
|
|
var pk = new DateTestPKM();
|
|
|
|
// Ensure MetDate is null when components are all 0
|
|
pk.MetDay = 0;
|
|
pk.MetMonth = 0;
|
|
pk.MetYear = 0;
|
|
Assert.IsFalse(pk.MetDate.HasValue, "MetDate should be null when date components are all 0.");
|
|
|
|
// Ensure MetDate gives correct date
|
|
pk.MetDay = 10;
|
|
pk.MetMonth = 8;
|
|
pk.MetYear = 16;
|
|
Assert.AreEqual(new DateTime(2016, 8, 10).Date, pk.MetDate.Value.Date, "Met date does not return correct date.");
|
|
|
|
// Ensure 0 year is calculated correctly
|
|
pk.MetDay = 1;
|
|
pk.MetMonth = 1;
|
|
pk.MetYear = 0;
|
|
Assert.AreEqual(2000, pk.MetDate.Value.Date.Year, "Year is not calculated correctly.");
|
|
}
|
|
|
|
[TestMethod]
|
|
[TestCategory(DateTestCategory)]
|
|
public void MetDateSetterTest()
|
|
{
|
|
var pk = new DateTestPKM();
|
|
|
|
// Ensure setting to null zeros the components
|
|
// -- Set to something else first
|
|
pk.MetDay = 12;
|
|
pk.MetMonth = 12;
|
|
pk.MetYear = 12;
|
|
// -- Act
|
|
pk.MetDate = null;
|
|
// -- Assert
|
|
Assert.AreEqual(0, pk.MetDay, "Met_Day was not zeroed when MetDate is set to null");
|
|
Assert.AreEqual(0, pk.MetMonth, "Met_Month was not zeroed when MetDate is set to null");
|
|
Assert.AreEqual(0, pk.MetYear, "Met_Year was not zeroed when MetDate is set to null");
|
|
|
|
// Ensure setting to a date sets the components
|
|
var now = DateTime.UtcNow;
|
|
// -- Set to something else first
|
|
pk.MetDay = 12;
|
|
pk.MetMonth = 12;
|
|
pk.MetYear = 12;
|
|
if (now.Month == 12)
|
|
{
|
|
// We don't want the test to work just because it's 12/12 right now.
|
|
pk.MetMonth = 11;
|
|
}
|
|
// -- Act
|
|
pk.MetDate = now;
|
|
// -- Assert
|
|
Assert.AreEqual(now.Day, pk.MetDay, "Met_Day was not correctly set");
|
|
Assert.AreEqual(now.Month, pk.MetMonth, "Met_Month was not correctly set");
|
|
Assert.AreEqual(now.Year - 2000, pk.MetYear, "Met_Year was not correctly set");
|
|
}
|
|
|
|
[TestMethod]
|
|
[TestCategory(DateTestCategory)]
|
|
public void EggMetDateGetterTest()
|
|
{
|
|
var pk = new DateTestPKM();
|
|
|
|
// Ensure MetDate is null when components are all 0
|
|
pk.EggMetDay = 0;
|
|
pk.EggMetMonth = 0;
|
|
pk.EggMetYear = 0;
|
|
Assert.IsFalse(pk.MetDate.HasValue, "EggMetDate should be null when date components are all 0.");
|
|
|
|
// Ensure MetDate gives correct date
|
|
pk.EggMetDay = 10;
|
|
pk.EggMetMonth = 8;
|
|
pk.EggMetYear = 16;
|
|
Assert.AreEqual(new DateTime(2016, 8, 10).Date, pk.EggMetDate.Value.Date, "Egg met date does not return correct date.");
|
|
}
|
|
|
|
[TestMethod]
|
|
[TestCategory(DateTestCategory)]
|
|
public void EggMetDateSetterTest()
|
|
{
|
|
var pk = new DateTestPKM();
|
|
|
|
// Ensure setting to null zeros the components
|
|
// -- Set to something else first
|
|
pk.EggMetDay = 12;
|
|
pk.EggMetMonth = 12;
|
|
pk.EggMetYear = 12;
|
|
// -- Act
|
|
pk.EggMetDate = null;
|
|
// -- Assert
|
|
Assert.AreEqual(0, pk.EggMetDay, "Egg_Day was not zeroed when EggMetDate is set to null");
|
|
Assert.AreEqual(0, pk.EggMetMonth, "Egg_Month was not zeroed when EggMetDate is set to null");
|
|
Assert.AreEqual(0, pk.EggMetYear, "Egg_Year was not zeroed when EggMetDate is set to null");
|
|
|
|
// Ensure setting to a date sets the components
|
|
var now = DateTime.UtcNow;
|
|
// -- Set to something else first
|
|
pk.EggMetDay = 12;
|
|
pk.EggMetMonth = 12;
|
|
pk.EggMetYear = 12;
|
|
if (now.Month == 12)
|
|
{
|
|
// We don't want the test to work just because it's 12/12 right now.
|
|
pk.EggMetMonth = 11;
|
|
}
|
|
// -- Act
|
|
pk.EggMetDate = now;
|
|
// -- Assert
|
|
Assert.AreEqual(now.Day, pk.EggMetDay, "Egg_Day was not correctly set");
|
|
Assert.AreEqual(now.Month, pk.EggMetMonth, "Egg_Month was not correctly set");
|
|
Assert.AreEqual(now.Year - 2000, pk.EggMetYear, "Egg_Year was not correctly set");
|
|
}
|
|
}
|
|
}
|