-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTimeToLiveTest.cs
More file actions
118 lines (98 loc) · 3.34 KB
/
TimeToLiveTest.cs
File metadata and controls
118 lines (98 loc) · 3.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
using System;
using Cuemon.Extensions.IO;
using Codebelt.Extensions.Xunit;
using Savvyio.Extensions.Newtonsoft.Json;
using Savvyio.Extensions.Text.Json;
using Xunit;
using Xunit.Abstractions;
namespace Codebelt.SharedKernel
{
public class TimeToLiveTest : Test
{
public TimeToLiveTest(ITestOutputHelper output) : base(output)
{
}
[Fact]
public void Comparison_LeftShouldBeGreaterThanRight()
{
var left = new TimeToLive(TimeSpan.FromDays(2));
var right = new TimeToLive(TimeSpan.FromHours(1));
Assert.True(left > right);
}
[Fact]
public void Comparison_RightShouldBeGreaterThanLeft()
{
var left = new TimeToLive(TimeSpan.FromHours(1));
var right = new TimeToLive(TimeSpan.FromDays(2));
Assert.True(left < right);
}
[Fact]
public void Comparison_LeftShouldBeGreaterThanOrEqualToRight()
{
var left = new TimeToLive(TimeSpan.FromDays(2));
var right = new TimeToLive(TimeSpan.FromDays(2));
Assert.True(left >= right);
}
[Fact]
public void Comparison_RightShouldBeGreaterThanOrEqualToLeft()
{
var left = new TimeToLive(TimeSpan.FromHours(1));
var right = new TimeToLive(TimeSpan.FromHours(2));
Assert.True(left <= right);
}
[Fact]
public void Comparison_ShouldBeEqual()
{
var left = new TimeToLive(TimeSpan.FromHours(1));
var right = new TimeToLive(TimeSpan.FromHours(1));
Assert.Equal(right, left);
}
[Fact]
public void Comparison_ShouldBeDifferent()
{
var left = new TimeToLive(TimeSpan.FromTicks(1));
var right = new TimeToLive(TimeSpan.FromHours(1));
Assert.NotEqual(right, left);
}
[Fact]
public void FromYears_ShouldHaveOneYearLifespan()
{
var sut = TimeToLive.FromYears(1);
Assert.InRange(sut.Value.TotalDays, 365, 366);
}
[Fact]
public void FromMonths_ShouldHaveSixMonthsLifespan()
{
var sut = TimeToLive.FromMonths(6);
Assert.InRange(sut.Value.TotalDays, 181, 184);
}
[Fact]
public void FromDays_ShouldHaveThirtyDaysLifespan()
{
var sut = TimeToLive.FromDays(30);
Assert.Equal(30, sut.Value.TotalDays);
}
[Fact]
public void FromHours_ShouldHaveTwentyFourHoursLifespan()
{
var sut = TimeToLive.FromHours(24);
Assert.Equal(24, sut.Value.TotalHours);
}
[Fact]
public void FromMinutes_ShouldHaveFifteenMinutesLifespan()
{
var sut = TimeToLive.FromMinutes(15);
Assert.Equal(15, sut.Value.TotalMinutes);
}
[Fact]
public void Marshalling_ShouldRepresentCorrectly()
{
var sut = TimeToLive.FromYears(1);
var json = JsonMarshaller.Default.Serialize(sut).ToEncodedString();
var newtonsoftJson = NewtonsoftJsonMarshaller.Default.Serialize(sut).ToEncodedString();
TestOutput.WriteLine(json);
Assert.Equal("\"365.00:00:00\"", json);
Assert.Equal(json, newtonsoftJson);
}
}
}