Skip to content

Instantly share code, notes, and snippets.

@christopherbauer
Last active August 29, 2015 14:26
Show Gist options
  • Select an option

  • Save christopherbauer/b3502cf9716b7f615c27 to your computer and use it in GitHub Desktop.

Select an option

Save christopherbauer/b3502cf9716b7f615c27 to your computer and use it in GitHub Desktop.
BLOG - Date Range Tests
public class DateRangeTests
{
[TestFixture]
public class when_instantiating_date_ranges
{
[Test]
public void then_should_set_start_date_given_start_date()
{
// Arrange // Act
var start = DateTime.Parse("1/1/2015");
var dateRange = new DateRange(start, DateTime.Parse("12/31/2015"));
// Assert
Assert.That(dateRange.Start, Is.EqualTo(start));
}
[Test]
public void then_should_set_end_date_given_and_end_date()
{
// Arrange // Act
var end = DateTime.Parse("1/1/2015");
var dateRange = new DateRange(new DateTime(), end);
// Assert
Assert.That(dateRange.End, Is.EqualTo(end));
}
[Test]
public void then_should_throw_argument_exception_given_start_date_after_end_date()
{
// Arrange // Act // Assert
Assert.Throws<ArgumentException>(() => new DateRange(DateTime.Parse("12/31/2015"), DateTime.Parse("12/1/2015")));
}
}
[TestFixture]
public class when_creating_new_range_with_start_date_and_positive_days
{
[Test]
public void then_should_create_range_with_end_date_1_1_2016_given_start_date_1_1_2015_and_365_days()
{
// Arrange // Act
var range = DateRange.FromDays(DateTime.Parse("1/1/2015"), 365);
// Assert
Assert.That(range.End, Is.EqualTo(DateTime.Parse("1/1/2016")));
}
}
[TestFixture]
public class when_creating_new_range_with_start_date_and_negative_days
{
[Test]
public void then_should_create_range_with_start_date_1_1_2014_given_start_date_1_1_2015_and_negative_365_days()
{
// Arrange // Act
var range = DateRange.FromDays(DateTime.Parse("1/1/2015"), -365);
// Assert
Assert.That(range.Start, Is.EqualTo(DateTime.Parse("1/1/2014")));
}
[Test]
public void then_should_create_range_with_end_date_equal_to_start_date_given_start_date_1_1_2015_and_negative_365_days()
{
// Arrange // Act
var start = DateTime.Parse("1/1/2015");
var range = DateRange.FromDays(start, -365);
// Assert
Assert.That(range.End, Is.EqualTo(start));
}
}
[TestFixture]
public class when_comparing
{
[Test]
public static void then_equals_should_return_true_given_same_range()
{
// Arrange
var range1 = new DateRange(DateTime.Parse("1/1/2015"), DateTime.Parse("12/31/2015"));
var range2 = new DateRange(DateTime.Parse("1/1/2015"), DateTime.Parse("12/31/2015"));
// Act
var result = range1.Equals(range2);
// Assert
Assert.That(result, Is.True);
}
[Test]
public static void then_equals_should_return_false_given_different_range()
{
// Arrange
var range1 = new DateRange(DateTime.Parse("1/1/2015"), DateTime.Parse("12/31/2015"));
var range2 = new DateRange(DateTime.Parse("1/1/2015"), DateTime.Parse("1/1/2016"));
// Act
var result = range1.Equals(range2);
// Assert
Assert.That(result, Is.False);
}
[Test]
public static void then_equals_should_return_false_given_second_range_null()
{
// Arrange
var range1 = new DateRange(DateTime.Parse("1/1/2015"), DateTime.Parse("12/31/2015"));
DateRange? range2 = null;
// Act
var result = range1.Equals(range2);
// Assert
Assert.That(result, Is.False);
}
[Test]
public void then_equal_operator_should_be_true_if_start_and_end_dates_are_the_same()
{
// Arrange
var range1 = new DateRange(DateTime.Parse("1/1/2015"), DateTime.Parse("12/31/2015"));
var range2 = new DateRange(DateTime.Parse("1/1/2015"), DateTime.Parse("12/31/2015"));
// Act
var result = range1 == range2;
// Assert
Assert.That(result, Is.True);
}
[Test]
public void then_not_equal_operator_should_be_true_if_start_and_end_dates_are_not_the_same()
{
// Arrange
var range1 = new DateRange(DateTime.Parse("1/2/2015"), DateTime.Parse("12/31/2015"));
var range2 = new DateRange(DateTime.Parse("1/1/2015"), DateTime.Parse("12/31/2015"));
// Act
var result = range1 != range2;
// Assert
Assert.That(result, Is.True);
}
}
[TestFixture]
public class when_checking_in_range
{
[Test]
public void then_should_return_true_given_date_between_start_and_end()
{
// Arrange
var range = DateRange.FromDays(DateTime.Parse("2015-07-23"), 14);
// Act
var result = range.InRange(DateTime.Parse("2015-07-30"));
// Assert
Assert.That(result, Is.True);
}
[Test]
public void then_should_return_false_given_date_not_between_before_start()
{
// Arrange
var range = DateRange.FromDays(DateTime.Parse("2015-07-23"), 14);
// Act
var result = range.InRange(DateTime.Parse("2015-07-20"));
// Assert
Assert.That(result, Is.False);
}
[Test]
public void then_should_return_false_given_date_not_after_end()
{
// Arrange
var range = DateRange.FromDays(DateTime.Parse("2015-07-23"), 14);
// Act
var result = range.InRange(DateTime.Parse("2015-08-07"));
// Assert
Assert.That(result, Is.False);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment