using Microsoft.Extensions.Logging.Abstractions;
using SQLInsight.Agent.Security;
namespace SQLInsight.Agent.Tests;
///
/// The Active Directory resolver's answers that need no domain. Unfolding real groups needs a domain controller and is
/// not tested here.
///
public class GroupResolverTests
{
[Theory]
[InlineData(@"BUILTIN\Administrators", "lokal gruppe")]
[InlineData("SQL-Admins", "intet domæne")]
public async Task Groups_that_cannot_be_looked_up_give_the_reason(string group, string reason)
{
if (!OperatingSystem.IsWindows())
{
return;
}
var resolver = new ActiveDirectoryGroupResolver(TimeProvider.System, NullLogger.Instance);
var expansion = await resolver.ExpandAsync(group, CancellationToken.None);
Assert.Empty(expansion.Members);
Assert.Contains(reason, expansion.Error, StringComparison.Ordinal);
}
}