Files
Peter Ibekwe 43b3ce6027 .NET: Add feature-usage bitmask (#7709)
* Add feature-usage User-Agent telemetr

* Removed static keyword from irrelevant methods.

* Update method names and fix CI test issue.

* Revert irrelevant changes.

* Address PR comments.

* Fix CI issue from merge conflict resolution.
2026-08-21 01:38:05 +00:00

36 lines
1.3 KiB
C#

// Copyright (c) Microsoft. All rights reserved.
using System.Globalization;
using System.Numerics;
using System.Reflection;
namespace Microsoft.Agents.AI.Testing;
[CollectionDefinition(nameof(FeatureUsageTestGroup), DisableParallelization = true)]
public sealed class FeatureUsageTestGroup;
internal static class FeatureUsageAssert
{
public static void Reset()
{
MethodInfo? reset = typeof(FeatureUsage).GetMethod(
"ResetStateForTests",
BindingFlags.Static | BindingFlags.NonPublic);
Assert.NotNull(reset);
reset.Invoke(obj: null, parameters: null);
}
public static void Marked(int index)
{
#pragma warning disable MAAI001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed.
string userAgent = FeatureUsage.ApplyToUserAgent(string.Empty);
#pragma warning restore MAAI001
const string Prefix = "(feat=v1.";
Assert.StartsWith(Prefix, userAgent);
string maskText = userAgent.Substring(Prefix.Length, userAgent.Length - Prefix.Length - 1);
BigInteger mask = BigInteger.Parse($"0{maskText}", NumberStyles.AllowHexSpecifier, CultureInfo.InvariantCulture);
Assert.NotEqual(BigInteger.Zero, mask & (BigInteger.One << index));
}
}