Skip to content

Commit 2de202c

Browse files
committed
added properties SignedLicense.HasSerialNumber, SignedLicense.HasHardwareIdentifier, SignedLicense.HasExpirationDate,
1 parent 96e7800 commit 2de202c

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

ThinkSharp.Licensing.Shared.Test/Licensing/SignedLicenseTest.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,44 @@ public void TestSigning_WithProperties_DifferentCultures()
113113
newFile.Verify(new HashCodeSigner());
114114
}
115115

116+
[TestMethod]
117+
public void TestHasXXXProperties_True()
118+
{
119+
var key = "BwIAAACkAABSU0EyAAQAAAEAAQALrzxPFiBp4EN5aeLtZZ4sTvcfYn+fSpmxJvhSUxP/9fm+uaWwJ+n7+jc4Zf2tB+WDulTJo5ryauHgKjx5MHMmWNLr77mD3ws11BC61VDt65fIY4DLsvn49ZYajJy3oUwDvyEsnGArUH3IUhCTv/OWbHovmb69Xlg90mEcsIhOm2WKki+1cc7ZeBANtR57SMLv3qDH+DQqTxBb4UOHmJs4YfrMjqOEXBg0pDLT4HHzIz7WVu9ltKJdQZn626aGdMivhKQqxiJj3YsdFiLgM4BZk9ZGCxI2AJLp9Q/IRwqGKg4T0NlNWbqH1P5Zvq2nxVxSQEI/ARpUK1C8CIsnXVfGyRNp5nkFlM05O2HXhwLWhoHn5Dm76FMz5mClkFaRe8pK113sZK0Tw6sEVCrFMXeaiXSGK9xZifvnioOq9jRgp1fCpc5vLSE4VFGZ2vl89hrsfPKAIDIx5vXgNfOGjJXoDfHUkurih1qBG5Aiie5bD8e+LPVQ7jkM9CzFHRC756n1yAwSLUiv2cpbXD/YhZuHOOIljWjgcHKV9b9eyQXUilC8CQOE/1JLUHWLskhRH6NKRo1HVPxsuZpKLfkWEqti6TF8A4gllaJdjJEqq226EaXaRvP2RoqxjRBUKeT/NBN4focrEmjQpMKTAhMmpIutsXEqLbcXbR+0gBbvdIoEcEBbgizGJK8NJtWnli6qh4EEuaqtBYXkP0Io/bZJsc+WuWpHn9lXWIy/cPDTik+uEgbPF5MZEcmLVKJEsdnpcEc=";
120+
121+
var lic = Lic.Builder
122+
.WithRsaPrivateKey(key)
123+
.WithHardwareIdentifier("HardwareIdentifier")
124+
.WithSerialNumber(SerialNumber.Create("GSA"))
125+
.ExpiresIn(TimeSpan.FromDays(100))
126+
.WithProperty("Name", "Bill Gates")
127+
.WithProperty("Company", "Microsoft")
128+
.SignAndCreate();
129+
130+
Assert.IsTrue(lic.HasExpirationDate);
131+
Assert.IsTrue(lic.HasHardwareIdentifier);
132+
Assert.IsTrue(lic.HasSerialNumber);
133+
}
134+
135+
[TestMethod]
136+
public void TestHasXXXProperties_False()
137+
{
138+
var key = "BwIAAACkAABSU0EyAAQAAAEAAQALrzxPFiBp4EN5aeLtZZ4sTvcfYn+fSpmxJvhSUxP/9fm+uaWwJ+n7+jc4Zf2tB+WDulTJo5ryauHgKjx5MHMmWNLr77mD3ws11BC61VDt65fIY4DLsvn49ZYajJy3oUwDvyEsnGArUH3IUhCTv/OWbHovmb69Xlg90mEcsIhOm2WKki+1cc7ZeBANtR57SMLv3qDH+DQqTxBb4UOHmJs4YfrMjqOEXBg0pDLT4HHzIz7WVu9ltKJdQZn626aGdMivhKQqxiJj3YsdFiLgM4BZk9ZGCxI2AJLp9Q/IRwqGKg4T0NlNWbqH1P5Zvq2nxVxSQEI/ARpUK1C8CIsnXVfGyRNp5nkFlM05O2HXhwLWhoHn5Dm76FMz5mClkFaRe8pK113sZK0Tw6sEVCrFMXeaiXSGK9xZifvnioOq9jRgp1fCpc5vLSE4VFGZ2vl89hrsfPKAIDIx5vXgNfOGjJXoDfHUkurih1qBG5Aiie5bD8e+LPVQ7jkM9CzFHRC756n1yAwSLUiv2cpbXD/YhZuHOOIljWjgcHKV9b9eyQXUilC8CQOE/1JLUHWLskhRH6NKRo1HVPxsuZpKLfkWEqti6TF8A4gllaJdjJEqq226EaXaRvP2RoqxjRBUKeT/NBN4focrEmjQpMKTAhMmpIutsXEqLbcXbR+0gBbvdIoEcEBbgizGJK8NJtWnli6qh4EEuaqtBYXkP0Io/bZJsc+WuWpHn9lXWIy/cPDTik+uEgbPF5MZEcmLVKJEsdnpcEc=";
139+
140+
var lic = Lic.Builder
141+
.WithRsaPrivateKey(key)
142+
.WithoutHardwareIdentifier()
143+
.WithoutSerialNumber()
144+
.WithoutExpiration()
145+
.WithProperty("Name", "Bill Gates")
146+
.WithProperty("Company", "Microsoft")
147+
.SignAndCreate();
148+
149+
Assert.IsFalse(lic.HasExpirationDate);
150+
Assert.IsFalse(lic.HasHardwareIdentifier);
151+
Assert.IsFalse(lic.HasSerialNumber);
152+
}
153+
116154

117155
private static void AssertDefaultPropertiesAreValid(SignedLicense file)
118156
{

ThinkSharp.Licensing.Shared/Licensing/SignedLicense.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,21 @@ private SignedLicense(string hardwareIdentifier, string serialNumber, DateTime i
6161
/// </summary>
6262
public IDictionary<string, string> Properties { get; }
6363

64+
/// <summary>
65+
/// Gets a value that indicates if the license has a serial number.
66+
/// </summary>
67+
public bool HasSerialNumber => SerialNumber != Licensing.SerialNumber.NoSerialNumber;
68+
69+
/// <summary>
70+
/// Gets a value that indicates if the license has a hardware identifier.
71+
/// </summary>
72+
public bool HasHardwareIdentifier => HardwareIdentifier != Licensing.HardwareIdentifier.NoHardwareIdentifier;
73+
74+
/// <summary>
75+
/// Gets a value that indicates if the license expires.
76+
/// </summary>
77+
public bool HasExpirationDate => ExpirationDate != DateTime.MaxValue;
78+
6479
// Methods
6580
// ////////////////////////////////////////////////////////////////////
6681

0 commit comments

Comments
 (0)