Files
Omika/tests/Omika.Tests/Contracts/License/LicenseActivateRequestDeviceExtensionsTests.cs
2026-10-23 18:46:50 +02:00

81 lines
2.5 KiB
C#

using Omika.Core.Contracts.Mobile.License;
using Omika.Core.Observability.Diagnostic;
namespace Omika.Tests.Contracts.License;
/// <summary>
/// Tests de l'application du snapshot d'appareil à la requête d'activation (T17-C).
/// Vérifie que OsType/OsVersion/AppVersion/DeviceInfo sont remplis depuis la MÊME
/// source que le diagnostic, sans jamais exposer de DeviceId ni de secret.
/// </summary>
public class LicenseActivateRequestDeviceExtensionsTests
{
[Fact]
public void ApplyDeviceSnapshot_FillsOsVersionAppAndDeviceInfo()
{
var request = new LicenseActivateRequest
{
CodeClient = "C",
NumeroLicence = "L",
DeviceId = "D"
};
var device = new DeviceInfoSnapshot
{
OperatingSystem = "Android",
OperatingSystemVersion = "16",
AppVersion = "1.0.0",
DeviceManufacturer = "Xiaomi",
DeviceModel = "23113RKC6G"
};
LicenseActivateRequest result = request.ApplyDeviceSnapshot(device);
Assert.Equal("Android", result.OsType);
Assert.Equal("16", result.OsVersion);
Assert.Equal("1.0.0", result.AppVersion);
Assert.Equal("manufacturer=Xiaomi;model=23113RKC6G", result.DeviceInfo);
Assert.Null(result.NotificationKey);
Assert.Equal("D", result.DeviceId);
}
[Fact]
public void ApplyDeviceSnapshot_NullLeavesFieldsNull()
{
var request = new LicenseActivateRequest
{
CodeClient = "C",
NumeroLicence = "L",
DeviceId = "D"
};
LicenseActivateRequest result = request.ApplyDeviceSnapshot(null);
Assert.Null(result.OsType);
Assert.Null(result.OsVersion);
Assert.Null(result.AppVersion);
Assert.Null(result.DeviceInfo);
Assert.Null(result.NotificationKey);
}
[Fact]
public void ApplyDeviceSnapshot_NeverExposesDeviceIdInDeviceInfo()
{
var request = new LicenseActivateRequest
{
CodeClient = "C",
NumeroLicence = "L",
DeviceId = "secret-device-id"
};
var device = new DeviceInfoSnapshot
{
DeviceManufacturer = "Apple",
DeviceModel = "iPhone17,2"
};
LicenseActivateRequest result = request.ApplyDeviceSnapshot(device);
Assert.DoesNotContain("secret-device-id", result.DeviceInfo);
Assert.DoesNotContain("device-id", result.DeviceInfo);
}
}