Skip to content

Commit 483e4e8

Browse files
committed
Tests for interval/checkpoint calculation
1 parent b183ea4 commit 483e4e8

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using System;
2+
using Xunit;
3+
4+
namespace Serilog.Sinks.File.Tests
5+
{
6+
public class RollingIntervalExtensionsTests
7+
{
8+
public static object[][] IntervalInstantCurrentNextCheckpoint => new[]
9+
{
10+
new object[]{ RollingInterval.Infinite, new DateTime(2018, 01, 01), null, null },
11+
new object[]{ RollingInterval.Year, new DateTime(2018, 01, 01), new DateTime(2018, 01, 01), new DateTime(2019, 01, 01) },
12+
new object[]{ RollingInterval.Year, new DateTime(2018, 06, 01), new DateTime(2018, 01, 01), new DateTime(2019, 01, 01) },
13+
new object[]{ RollingInterval.Month, new DateTime(2018, 01, 01), new DateTime(2018, 01, 01), new DateTime(2018, 02, 01) },
14+
new object[]{ RollingInterval.Month, new DateTime(2018, 01, 14), new DateTime(2018, 01, 01), new DateTime(2018, 02, 01) },
15+
new object[]{ RollingInterval.Day, new DateTime(2018, 01, 01), new DateTime(2018, 01, 01), new DateTime(2018, 01, 02) },
16+
new object[]{ RollingInterval.Day, new DateTime(2018, 01, 01, 12, 0, 0), new DateTime(2018, 01, 01), new DateTime(2018, 01, 02) },
17+
new object[]{ RollingInterval.Hour, new DateTime(2018, 01, 01, 0, 0, 0), new DateTime(2018, 01, 01), new DateTime(2018, 01, 01, 1, 0, 0) },
18+
new object[]{ RollingInterval.Hour, new DateTime(2018, 01, 01, 0, 30, 0), new DateTime(2018, 01, 01), new DateTime(2018, 01, 01, 1, 0, 0) },
19+
new object[]{ RollingInterval.Minute, new DateTime(2018, 01, 01, 0, 0, 0), new DateTime(2018, 01, 01), new DateTime(2018, 01, 01, 0, 1, 0) },
20+
new object[]{ RollingInterval.Minute, new DateTime(2018, 01, 01, 0, 0, 30), new DateTime(2018, 01, 01), new DateTime(2018, 01, 01, 0, 1, 0) }
21+
};
22+
23+
[Theory]
24+
[MemberData(nameof(IntervalInstantCurrentNextCheckpoint))]
25+
public void NextIntervalTests(RollingInterval interval, DateTime instant, DateTime? currentCheckpoint, DateTime? nextCheckpoint)
26+
{
27+
var current = interval.GetCurrentCheckpoint(instant);
28+
Assert.Equal(currentCheckpoint, current);
29+
30+
var next = interval.GetNextCheckpoint(instant);
31+
Assert.Equal(nextCheckpoint, next);
32+
}
33+
}
34+
}

0 commit comments

Comments
 (0)