81 lines
2.5 KiB
C#
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);
|
|
}
|
|
}
|