first commit
This commit is contained in:
55
tests/App.Core.Tests/Licensing/TrialStateTests.cs
Normal file
55
tests/App.Core.Tests/Licensing/TrialStateTests.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using App.Core.Services.Licensing;
|
||||
|
||||
namespace App.Core.Tests.Licensing;
|
||||
|
||||
public class TrialStateTests
|
||||
{
|
||||
[Fact]
|
||||
public void GetDaysRemaining_OnInstallDay_Returns30()
|
||||
{
|
||||
var installDate = new DateTime(2026, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
var state = new TrialState(installDate, "hash", installDate);
|
||||
|
||||
Assert.Equal(30, state.GetDaysRemaining(installDate));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetDaysRemaining_AfterFifteenDays_Returns15()
|
||||
{
|
||||
var installDate = new DateTime(2026, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
var state = new TrialState(installDate, "hash", installDate);
|
||||
|
||||
Assert.Equal(15, state.GetDaysRemaining(installDate.AddDays(15)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetDaysRemaining_NeverGoesNegative()
|
||||
{
|
||||
var installDate = new DateTime(2026, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
var state = new TrialState(installDate, "hash", installDate);
|
||||
|
||||
Assert.Equal(0, state.GetDaysRemaining(installDate.AddDays(90)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IsExpired_ExactlyOnDay30_IsTrue()
|
||||
{
|
||||
var installDate = new DateTime(2026, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
var state = new TrialState(installDate, "hash", installDate);
|
||||
|
||||
Assert.True(state.IsExpired(installDate.AddDays(30)));
|
||||
Assert.False(state.IsExpired(installDate.AddDays(29)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WithUpdatedLastRun_DoesNotChangeInstallDate()
|
||||
{
|
||||
var installDate = new DateTime(2026, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
var state = new TrialState(installDate, "hash", installDate);
|
||||
|
||||
var updated = state.WithUpdatedLastRun(installDate.AddDays(5));
|
||||
|
||||
Assert.Equal(installDate, updated.InstallDateUtc);
|
||||
Assert.Equal(installDate.AddDays(5), updated.LastRunTimestampUtc);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user