Skip to content

Commit 10a2f03

Browse files
authored
Fixed bug finding occurrence with 0 ticks (#77)
1 parent 14ca2b1 commit 10a2f03

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

src/Cronos/CronExpression.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ namespace Cronos
3434
/// </summary>
3535
public sealed class CronExpression: IEquatable<CronExpression>
3636
{
37-
private const long NotFound = 0;
37+
private const long NotFound = -1;
3838
private const int MaxYear = 2499;
3939

4040
/// <summary>

tests/Cronos.Tests/CronExpressionFacts.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2456,6 +2456,18 @@ public void GetNextOccurrence_ReturnsCorrectDate_When6fieldsExpressionIsUsedAndI
24562456
Assert.Equal(GetInstantFromLocalTime(expectedString, EasternTimeZone), nextOccurrence);
24572457
}
24582458

2459+
[Fact]
2460+
public void GetNextOccurrence_FromDateTimeMinValueInclusive_SuccessfullyReturned()
2461+
{
2462+
var expression = CronExpression.Parse("* * * * *");
2463+
var from = new DateTime(0, DateTimeKind.Utc);
2464+
2465+
var occurrence = expression
2466+
.GetNextOccurrence(from, inclusive: true);
2467+
2468+
Assert.Equal(from, occurrence);
2469+
}
2470+
24592471
[Fact]
24602472
public void GetOccurrence_PassesTests_DefinedInTheGitHubIssue53()
24612473
{
@@ -2741,6 +2753,20 @@ public void GetOccurrences_DateTimeOffset_HandlesToInclusiveArgument()
27412753
Assert.Equal(from.AddMinutes(2), occurrences[2].UtcDateTime);
27422754
}
27432755

2756+
[Fact]
2757+
public void GetOccurrences_OccurrenceAtDateTimeMinValue_SuccessfullyReturned()
2758+
{
2759+
var expression = CronExpression.Parse("* * * * *");
2760+
var from = new DateTime(0, DateTimeKind.Utc);
2761+
2762+
var occurrences = expression
2763+
.GetOccurrences(from, from.AddSeconds(1), fromInclusive: true)
2764+
.ToArray();
2765+
2766+
Assert.Single(occurrences);
2767+
Assert.Equal(from, occurrences[0]);
2768+
}
2769+
27442770
[Theory]
27452771
[InlineData("* * * * *", "* * * * *")]
27462772

0 commit comments

Comments
 (0)