| File: ExtensionFramework\Utilities\TestLoggerPluginInformation.cs | Web Access |
| Project: src\vstest\src\Microsoft.TestPlatform.Common\Microsoft.TestPlatform.Common.csproj (Microsoft.VisualStudio.TestPlatform.Common) |
// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System; using System.Collections.Generic; using System.Linq; using Microsoft.VisualStudio.TestPlatform.ObjectModel; namespace Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.Utilities; /// <summary> /// The test logger plugin information. /// </summary> internal class TestLoggerPluginInformation : TestExtensionPluginInformation { /// <summary> /// Default constructor /// </summary> /// <param name="testLoggerType"> The test Logger Type. </param> public TestLoggerPluginInformation(Type testLoggerType) : base(testLoggerType) { FriendlyName = GetFriendlyName(testLoggerType); } /// <summary> /// Gets the Friendly Name identifying the logger /// </summary> public string FriendlyName { get; private set; } /// <summary> /// Metadata for the test plugin /// </summary> public override ICollection<object?> Metadata { get { return new object?[] { ExtensionUri, FriendlyName }; } } /// <summary> /// Helper to get the FriendlyName from the FriendlyNameAttribute on logger plugin. /// </summary> /// <param name="testLoggerType">Data type of the test logger</param> /// <returns>FriendlyName identifying the test logger</returns> private static string GetFriendlyName(Type testLoggerType) { string friendlyName = string.Empty; object[] attributes = testLoggerType.GetCustomAttributes(typeof(FriendlyNameAttribute), false).ToArray(); if (attributes.Length > 0) { FriendlyNameAttribute friendlyNameAttribute = (FriendlyNameAttribute)attributes[0]; if (!friendlyNameAttribute.FriendlyName.IsNullOrEmpty()) { friendlyName = friendlyNameAttribute.FriendlyName; } } return friendlyName; } }