| File: ExtensionFramework\Utilities\TestSettingsProviderPluginInformation.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 settings provider plugin information. /// </summary> internal class TestSettingsProviderPluginInformation : TestPluginInformation { /// <summary> /// Default constructor /// </summary> /// <param name="testSettingsProviderType"> The test Settings Provider Type. </param> public TestSettingsProviderPluginInformation(Type? testSettingsProviderType) : base(testSettingsProviderType) { if (testSettingsProviderType != null) { SettingsName = GetTestSettingsName(testSettingsProviderType); } } /// <summary> /// Gets data value identifying the test plugin /// </summary> public override string? IdentifierData { get { return SettingsName; } } /// <summary> /// Metadata for the test plugin /// </summary> public override ICollection<object?> Metadata { get { return new object?[] { SettingsName }; } } /// <summary> /// Gets name of test settings supported by plugin. /// </summary> public string? SettingsName { get; private set; } /// <summary> /// Helper to get the test settings name from SettingsNameAttribute on test setting provider plugin. /// </summary> /// <param name="testSettingsProviderType">Data type of test setting provider</param> /// <returns>Test settings name supported by plugin</returns> private static string GetTestSettingsName(Type testSettingsProviderType) { string settingName = string.Empty; object[] attributes = testSettingsProviderType.GetCustomAttributes(typeof(SettingsNameAttribute), false).ToArray(); if (attributes != null && attributes.Length > 0) { SettingsNameAttribute settingsNameAttribute = (SettingsNameAttribute)attributes[0]; if (!settingsNameAttribute.SettingsName.IsNullOrEmpty()) { settingName = settingsNameAttribute.SettingsName; } } return settingName; } }