LIC-01Online activation with a key

What this test proves

Shows that a purchased or Developer key activates online in one call and that the reported state and tier match what was bought.

How it is tested

  1. Start with an empty license state folder and no key in the environment
  2. Call DicomKitLicense.SetAsync(key); the toolkit sends one activation request to the license server
  3. Pass if Status.State is ActivePro (Pro key) or ActiveEnterprise (Enterprise and Developer keys) and Status.Tier matches
  4. For the Developer key, also require the edition.developer feature in Status.Features
  5. For an expired or revoked key, pass if SetAsync is refused with DicomKitLicenseException

Expected result for each license type

  • Developer: Works
  • Pro: Works
  • Enterprise: Works
  • Expired: Refused: refused, naming the required tier (basics keep working)
  • Revoked: Refused: refused, naming the required tier (basics keep working)

Results

License Expected .NET 8.0 .NET 9.0 .NET 10.0 Result
Developer Works Pass
Worked
Pass
Worked
Pass
Worked
Pass
Pro Works Pass
Worked
Pass
Worked
Pass
Worked
Pass
Enterprise Works Pass
Worked
Pass
Worked
Pass
Worked
Pass
Expired Refused Pass
Refused
Pass
Refused
Pass
Refused
Pass
Revoked Refused Pass
Refused
Pass
Refused
Pass
Refused
Pass

Recorded evidence

Captured by the automated test during the run, per license and .NET version.

License.NETCapturedTime
Developer .NET 8.0
DicomKitLicense.SetAsync(key) returned in 1259 ms
Status.State=ActiveEnterprise Tier=Enterprise EffectiveTier=Enterprise
Features=[edition.developer] ExpiresUtc=2027-01-26
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [developer] [net8.0] Online activation with a key(caseId: "LIC-01", license: "developer")"
1 ms
Developer .NET 9.0
DicomKitLicense.SetAsync(key) returned in 1329 ms
Status.State=ActiveEnterprise Tier=Enterprise EffectiveTier=Enterprise
Features=[edition.developer] ExpiresUtc=2027-01-26
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [developer] [net9.0] Online activation with a key(caseId: "LIC-01", license: "developer")"
1 ms
Developer .NET 10.0
DicomKitLicense.SetAsync(key) returned in 1256 ms
Status.State=ActiveEnterprise Tier=Enterprise EffectiveTier=Enterprise
Features=[edition.developer] ExpiresUtc=2027-01-26
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [developer] [net10.0] Online activation with a key(caseId: "LIC-01", license: "developer")"
1 ms
Pro .NET 8.0
DicomKitLicense.SetAsync(key) returned in 1293 ms
Status.State=ActivePro Tier=Pro EffectiveTier=Pro
Features=[] ExpiresUtc=2027-10-26
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [pro] [net8.0] Online activation with a key(caseId: "LIC-01", license: "pro")"
1 ms
Pro .NET 9.0
DicomKitLicense.SetAsync(key) returned in 1256 ms
Status.State=ActivePro Tier=Pro EffectiveTier=Pro
Features=[] ExpiresUtc=2027-10-26
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [pro] [net9.0] Online activation with a key(caseId: "LIC-01", license: "pro")"
1 ms
Pro .NET 10.0
DicomKitLicense.SetAsync(key) returned in 1287 ms
Status.State=ActivePro Tier=Pro EffectiveTier=Pro
Features=[] ExpiresUtc=2027-10-26
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [pro] [net10.0] Online activation with a key(caseId: "LIC-01", license: "pro")"
1 ms
Enterprise .NET 8.0
DicomKitLicense.SetAsync(key) returned in 1262 ms
Status.State=ActiveEnterprise Tier=Enterprise EffectiveTier=Enterprise
Features=[] ExpiresUtc=2027-10-26
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [enterprise] [net8.0] Online activation with a key(caseId: "LIC-01", license: "enterprise")"
1 ms
Enterprise .NET 9.0
DicomKitLicense.SetAsync(key) returned in 1240 ms
Status.State=ActiveEnterprise Tier=Enterprise EffectiveTier=Enterprise
Features=[] ExpiresUtc=2027-10-26
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [enterprise] [net9.0] Online activation with a key(caseId: "LIC-01", license: "enterprise")"
1 ms
Enterprise .NET 10.0
DicomKitLicense.SetAsync(key) returned in 1219 ms
Status.State=ActiveEnterprise Tier=Enterprise EffectiveTier=Enterprise
Features=[] ExpiresUtc=2027-10-26
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [enterprise] [net10.0] Online activation with a key(caseId: "LIC-01", license: "enterprise")"
1 ms
Expired .NET 8.0
DicomKitLicenseException from SetAsync: License server rejected the activate request: This license has expired.
state afterwards Expired (LicenseExpired)
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [expired] [net8.0] Online activation with a key(caseId: "LIC-01", license: "expired")"
284 ms
Expired .NET 9.0
DicomKitLicenseException from SetAsync: License server rejected the activate request: This license has expired.
state afterwards Expired (LicenseExpired)
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [expired] [net9.0] Online activation with a key(caseId: "LIC-01", license: "expired")"
305 ms
Expired .NET 10.0
DicomKitLicenseException from SetAsync: License server rejected the activate request: This license has expired.
state afterwards Expired (LicenseExpired)
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [expired] [net10.0] Online activation with a key(caseId: "LIC-01", license: "expired")"
298 ms
Revoked .NET 8.0
DicomKitLicenseException from SetAsync: License server rejected the activate request: This license has been revoked.
state afterwards Expired (Revoked)
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [revoked] [net8.0] Online activation with a key(caseId: "LIC-01", license: "revoked")"
280 ms
Revoked .NET 9.0
DicomKitLicenseException from SetAsync: License server rejected the activate request: This license has been revoked.
state afterwards Expired (Revoked)
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [revoked] [net9.0] Online activation with a key(caseId: "LIC-01", license: "revoked")"
275 ms
Revoked .NET 10.0
DicomKitLicenseException from SetAsync: License server rejected the activate request: This license has been revoked.
state afterwards Expired (Revoked)
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "LIC-01 [revoked] [net10.0] Online activation with a key(caseId: "LIC-01", license: "revoked")"
37.3 s

Test run

Run
2ce13edc-f525-4ffb-ae07-648e5221cef9
Started (UTC)
2026-10-26 21:15:23, finished 21:21:01
Source commit
b804fb7
Environment
Microsoft Windows 11 Pro 10.0.26200 build 26200; Microsoft.AspNetCore.App 8.0.29, Microsoft.AspNetCore.App 9.0.18, Microsoft.AspNetCore.App 10.0.12, Microsoft.NETCore.App 3.1.32, Microsoft.NETCore.App 8.0.3, Microsoft.NETCore.App 8.0.29, Microsoft.NETCore.App 9.0.18, Microsoft.NETCore.App 10.0.12, Microsoft.WindowsDesktop.App 8.0.3, Microsoft.WindowsDesktop.App 8.0.29, Microsoft.WindowsDesktop.App 9.0.18, Microsoft.WindowsDesktop.App 10.0.12; Visual Studio Community 2026 18.10.3 (18.10.12224.181)
DicomKit
1.0.0 SHA-256 96ada39062c07bca37511abfb6baac0a44d914fb705bac01d77cb02146fdac0e
DicomKit.Cli
1.0.0 SHA-256 f8ffe70dc375cfe0d60881027e7cedb2502bc78ec5f5037f1d41b6c2481e1c84
DicomKit.Imaging
1.0.0 SHA-256 015b51ea833039d934ba153cae50d393fb77846430ca3fc3d65b4fb8cf4346ed
DicomKit.Web
1.0.0 SHA-256 2a2f4f7f02e1849929294062bee7dd8f3a24449428469c1fddb6982e77218a7b
DicomKit.Web.AspNetCore
1.0.0 SHA-256 daa1105881f1c0b60ca9c788d52d41445bd653a9d190c8862a2b2b1386d5e37c