using System.Collections.Generic;
using Dalamud.Plugin.Services;
namespace Dalamud.Plugin.SelfTest;
///
/// Interface for registering and unregistering self-test steps from plugins.
///
///
/// Registering custom self-test steps for your plugin:
///
/// [PluginService]
/// public ISelfTestRegistry SelfTestRegistry { get; init; }
///
/// // In your plugin initialization
/// this.SelfTestRegistry.RegisterTestSteps([
/// new MyCustomSelfTestStep(),
/// new AnotherSelfTestStep()
/// ]);
///
///
/// Creating a custom self-test step:
///
/// public class MyCustomSelfTestStep : ISelfTestStep
/// {
/// public string Name => "My Custom Test";
///
/// public SelfTestStepResult RunStep()
/// {
/// // Your test logic here
/// if (/* test condition passes */)
/// return SelfTestStepResult.Pass;
///
/// if (/* test condition fails */)
/// return SelfTestStepResult.Fail;
///
/// // Still waiting for test to complete
/// return SelfTestStepResult.Waiting;
/// }
///
/// public void CleanUp()
/// {
/// // Clean up any resources used by the test
/// }
/// }
///
///
public interface ISelfTestRegistry : IDalamudService
{
///
/// Registers the self-test steps for this plugin.
///
/// The test steps to register.
public void RegisterTestSteps(IEnumerable steps);
}