| File: Latency\Internal\RegistryTests.cs | Web Access |
| Project: src\test\Libraries\Microsoft.Extensions.Telemetry.Tests\Microsoft.Extensions.Telemetry.Tests.csproj (Microsoft.Extensions.Telemetry.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using Microsoft.Extensions.Diagnostics.Latency.Internal; using Xunit; namespace Microsoft.Extensions.Diagnostics.Latency.Test.Internal; public class RegistryTests { [Fact] public void Registry_NullSet() { Assert.Throws<ArgumentNullException>(() => new Registry(null!, true)); Assert.Throws<ArgumentNullException>(() => new Registry(null!, false)); } [Fact] public void Registry_SetWithNullValue() { var s = new[] { "a", null }; Assert.Throws<ArgumentException>(() => new Registry(s!, true)); Assert.Throws<ArgumentException>(() => new Registry(s!, false)); } [Fact] public void Registry_EmptySet() { RegistryTests.TestWithEmptySet(true); RegistryTests.TestWithEmptySet(false); } private static void TestWithEmptySet(bool throwOnUnregistered) { var r = new Registry(Array.Empty<string>(), throwOnUnregistered); Assert.True(r.KeyCount == 0); Assert.Throws<ArgumentNullException>(() => r.GetRegisteredKeyIndex(null!)); } [Fact] public void Registry_SameOrderForKeys() { var r1 = new Registry(new[] { "a", "b", "c", "d" }, true); var ok1 = r1.OrderedKeys; var r2 = new Registry(new[] { "a", "b", "c", "d" }, true); var ok2 = r2.OrderedKeys; for (int i = 0; i < ok1.Length; i++) { Assert.Equal(ok1[i], ok2[i]); } } [Fact] public void Registry_NonEmptySet() { var r = new Registry(new[] { "a", "b", "c", "d" }, true); var ok = r.OrderedKeys; Assert.True(ok.Length == 4); var o = r.GetRegisteredKeyIndex("c"); for (int i = 0; i < ok.Length; i++) { if (ok[i] == "c") { Assert.True(o == i); } } } [Fact] public void Registry_ThrowMode_ThrowsOnUnregisteredKey() { var r = new Registry(new[] { "a", "b", "c", "d" }, true); var ok = r.OrderedKeys; Assert.True(ok.Length == 4); r.GetRegisteredKeyIndex("a"); Assert.Throws<ArgumentException>(() => r.GetRegisteredKeyIndex("e")); } [Fact] public void Registry_NonThrowMode_DoesNotThrow() { var r = new Registry(new[] { "a", "b", "c", "d" }, false); var ok = r.OrderedKeys; Assert.True(ok.Length == 4); r.GetRegisteredKeyIndex("a"); Assert.True(r.GetRegisteredKeyIndex("e") == -1); } }