using ZB.MOM.WW.ScadaBridge.Commons.Messages.Management;

namespace ZB.MOM.WW.ScadaBridge.Commons.Tests.Messages;

/// <summary>
/// Verifies that <see cref="ReadTagValuesCommand"/> is discovered by
/// <see cref="ManagementCommandRegistry"/> so it travels over the management
/// boundary as a known command (resolvable by wire name and round-trippable
/// through <c>GetCommandName</c> / <c>Resolve</c>). Mirrors
/// <see cref="BrowseCommandsRegistryTests"/>.
/// </summary>
public class ReadTagValuesCommandRegistryTests
{
    [Fact]
    public void Registry_discovers_ReadTagValuesCommand()
    {
        // GetCommandName throws ArgumentException for any type the registry
        // does not contain, so a successful call here is proof of discovery.
        var name = ManagementCommandRegistry.GetCommandName(typeof(ReadTagValuesCommand));

        Assert.Equal("ReadTagValues", name);
        Assert.Equal(typeof(ReadTagValuesCommand), ManagementCommandRegistry.Resolve(name));
    }
}
