public void ItShouldReturnTrueIfDateMonthIsEqualToEndMonth()
		{
			// Arrange
			var startMonth = new Month(1);
			var endMonth = new Month(12);

			var dateToTest = new DateTime(DUMMY_YEAR, endMonth.Number, DUMMY_DAY);

			var sut = new PeriodInYear(startMonth, endMonth);

			// Act
			var result = sut.IsSatisfiedBy(dateToTest);

			// Assert
			result.Should().BeTrue();
		}
		public void ItShouldReturnAnAndCompositeSpecificationWithTheCorrectRHS(IFixture fixture, Month startMonth, Month endMonth)
		{
			// Arrange
			var rhsSpec = fixture.Create<ISpecification<DateTime>>();
			A.CallTo(() => rhsSpec.ToString()).Returns("RHS Spec");

			var expectedSpec = new PeriodInYear(startMonth, endMonth);

			var sut = fixture.Create<Schedule>();

			sut.From(startMonth);

			var likness = expectedSpec.AsSource()
			                      .OfLikeness<PeriodInYear>();

			// Act
			var result = sut.Until(endMonth);

			// Assert
			result.Should().NotBeNull();
			result.Content.Should().NotBeNull();
			result.Content.Should().BeOfType<AndSpecification<DateTime>>();

			var compositeSpec = result.Content.As<AndSpecification<DateTime>>();

			compositeSpec.RHS.Should().BeOfType<PeriodInYear>();

			var periodInYearSpec = compositeSpec.RHS.As<PeriodInYear>();

			likness.ShouldEqual(periodInYearSpec);
		}
		public void ItShouldBeAnISpecification(IFixture fixture, PeriodInYear sut)
		{
			sut.Should().BeAssignableTo<ISpecification<DateTime>>();
		}
		public void ItShouldReturnFalseIfDateMonthIsAfterEndMonth()
		{
			// Arrange
			var startMonth = new Month(1);
			var endMonth = new Month(11);
			var monthAfterEnd = new Month(12);

			var dateToTest = new DateTime(DUMMY_YEAR, monthAfterEnd.Number, DUMMY_DAY);

			var sut = new PeriodInYear(startMonth, endMonth);

			// Act
			var result = sut.IsSatisfiedBy(dateToTest);

			// Assert
			result.Should().BeFalse();
		}