using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Helpers;
namespace HelpersTest
{
///
/// Summary description for UnitTest1
///
[TestClass]
public class DateHelperTests
{
public DateHelperTests()
{
//
// TODO: Add constructor logic here
//
}
private TestContext testContextInstance;
///
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
[TestMethod]
public void TestSecondsIncludingSeconds()
{
DateTime testTime = DateTime.Now;
for(int i = 0; i <= 19; i++)
{
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddSeconds(i), true);
Assert.IsTrue(output.Contains("seconds"), string.Format("output = {0}", output));
}
for (int i = 20; i <= 119; i++)
{
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddSeconds(i), true);
Assert.IsTrue(output.Contains("minute"), string.Format("output = {0}", output));
}
}
[TestMethod]
public void TestSecondsWithoutSeconds()
{
DateTime testTime = DateTime.Now;
for (int i = 0; i <= 59; i++)
{
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddSeconds(i), false);
Assert.IsTrue(output.Equals("less than a minute"), string.Format("output = {0}", output));
}
for (int i = 60; i <= 119; i++)
{
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddSeconds(i), false);
Assert.IsTrue(output.Equals("1 minute"), string.Format("output = {0}", output));
}
}
[TestMethod]
public void TestMultipleMinutes()
{
DateTime testTime = DateTime.Now;
for (int i = 2; i <= 44; i++)
{
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddMinutes(i), false);
Assert.IsTrue(output.Contains("minutes"), string.Format("output = {0}", output));
}
}
[TestMethod]
public void TestAboutOneHour()
{
DateTime testTime = DateTime.Now;
for (int i = 45; i <= 89; i++)
{
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddMinutes(i), false);
Assert.IsTrue(output.Contains("about 1 hour"), string.Format("output = {0}", output));
}
}
[TestMethod]
public void TestMultipleHours()
{
DateTime testTime = DateTime.Now;
for (int i = 90; i <= 1439; i++)
{
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddMinutes(i), false);
Assert.IsTrue(output.Contains(" hours"), string.Format("output = {0}", output));
}
}
[TestMethod]
public void TestOneDay()
{
DateTime testTime = DateTime.Now;
for (int i = 1440; i <= 2879; i++)
{
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddMinutes(i), false);
Assert.IsTrue(output.Contains("1 day"), string.Format("output = {0}", output));
}
}
[TestMethod]
public void TestMultipleDays()
{
DateTime testTime = DateTime.Now;
for (int i = 2880; i <= 43199; i++)
{
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddMinutes(i), false);
Assert.IsTrue(output.Contains(" days"), string.Format("output = {0}", output));
}
}
public void TestAboutOneMonth()
{
DateTime testTime = DateTime.Now;
for (int i = 43200; i <= 86399; i++)
{
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddMinutes(i), false);
Assert.IsTrue(output.Contains("about 1 month"), string.Format("output = {0}", output));
}
}
[TestMethod]
public void TestMultipleMonths()
{
DateTime testTime = DateTime.Now;
for (int i = 86400; i <= 525599; i++)
{
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddMinutes(i), false);
Assert.IsTrue(output.Contains(" months"), string.Format("output = {0}", output));
}
}
public void TestAboutOneYear()
{
DateTime testTime = DateTime.Now;
for (int i = 525600; i <= 1051199; i++)
{
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddMinutes(i), false);
Assert.IsTrue(output.Contains("about 1 year"), string.Format("output = {0}", output));
}
}
[TestMethod]
public void TestMultipleYears()
{
DateTime testTime = DateTime.Now;
for (int i = 1051200; i <= 1551200; i++)
{
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddMinutes(i), false);
Assert.IsTrue(output.Contains(" years"), string.Format("output = {0}", output));
}
}
[TestMethod]
public void TestRailsExamples()
{
DateTime testTime = DateTime.Now;
string output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddMinutes(50));
Assert.IsTrue(output.Equals("about 1 hour"), string.Format("output = {0}", output));
output = DateHelper.DistanceOfTimeInWords(testTime, DateTime.Now.AddMinutes(50));
Assert.IsTrue(output.Equals("about 1 hour"), string.Format("output = {0}", output));
output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddSeconds(15));
Assert.IsTrue(output.Equals("less than a minute"), string.Format("output = {0}", output));
output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddSeconds(15), true);
Assert.IsTrue(output.Equals("less than 20 seconds"), string.Format("output = {0}", output));
output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddYears(3));
Assert.IsTrue(output.Equals("over 3 years"), string.Format("output = {0}", output));
output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddHours(60));
Assert.IsTrue(output.Equals("about 3 days"), string.Format("output = {0}", output));
output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddSeconds(45));
Assert.IsTrue(output.Equals("less than a minute"), string.Format("output = {0}", output));
output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddSeconds(-45));
Assert.IsTrue(output.Equals("less than a minute"), string.Format("output = {0}", output));
output = DateHelper.DistanceOfTimeInWords(testTime, DateTime.Now.AddSeconds(76));
Assert.IsTrue(output.Equals("1 minute"), string.Format("output = {0}", output));
output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddYears(1).AddDays(3));
Assert.IsTrue(output.Equals("about 1 year"), string.Format("output = {0}", output));
output = DateHelper.DistanceOfTimeInWords(testTime, testTime.AddYears(4).AddDays(15).AddMinutes(30).AddSeconds(5));
Assert.IsTrue(output.Equals("over 4 years"), string.Format("output = {0}", output));
DateTime toTime = DateTime.Now.AddYears(6).AddDays(19);
output = DateHelper.DistanceOfTimeInWords(testTime, toTime, true);
Assert.IsTrue(output.Equals("over 6 years"), string.Format("output = {0}", output));
output = DateHelper.DistanceOfTimeInWords(toTime, testTime, true);
Assert.IsTrue(output.Equals("over 6 years"), string.Format("output = {0}", output));
output = DateHelper.DistanceOfTimeInWords(DateTime.Now, DateTime.Now);
Assert.IsTrue(output.Equals("less than a minute"), string.Format("output = {0}", output));
}
}
}