Tests for new NetApi32 functions

pull/47/head
David Hall 2019-02-18 14:28:55 -07:00
parent 8a8b265834
commit fb885d09d9
1 changed files with 85 additions and 4 deletions

View File

@ -8,12 +8,42 @@ namespace Vanara.PInvoke.Tests
[TestFixture()]
public class NetApi32Tests
{
[Test()]
public void DsGetDcNameTest()
[Test]
public void DsGetDcName_DsGetDcEnum_DsAddressToSiteNamesEx_DsGetDcSiteCoverage_Test()
{
DsGetDcName(null, null, IntPtr.Zero, null, DsGetDcNameFlags.DS_RETURN_DNS_NAME, out var dcInfo);
var dci = dcInfo.ToStructure<DOMAIN_CONTROLLER_INFO>();
var dci = DsGetDcName(DsGetDcNameFlags.DS_RETURN_DNS_NAME);
Assert.NotNull(dci.DomainControllerName);
foreach (var (dnsHostName, sockets) in DsGetDcEnum(dci.DomainName))
{
TestContext.WriteLine($"{dnsHostName} = {string.Join(",", sockets)}");
foreach (var(address, site, subnet) in DsAddressToSiteNamesEx(dnsHostName, sockets))
TestContext.WriteLine($" Site={site}; Subnet={subnet}");
TestContext.WriteLine($" SiteCov={string.Join(",", DsGetDcSiteCoverage(dnsHostName))}");
}
}
[Test]
public void DsEnumerateDomainTrustsTest()
{
foreach (var t in DsEnumerateDomainTrusts(DomainTrustFlag.DS_DOMAIN_IN_FOREST))
TestContext.WriteLine($"{t.DnsDomainName} = {t.TrustType}");
}
[Test]
public void DsGetForestTrustInformationTest()
{
var i = DsGetForestTrustInformation("funkytown", null);
Assert.That(i.Entries.Count, Is.GreaterThan(0));
foreach (var e in i.Entries)
TestContext.WriteLine(e);
}
[Test]
public void DsRoleGetPrimaryDomainInformationTest()
{
Assert.That(() => DsRoleGetPrimaryDomainInformation<DSROLE_UPGRADE_STATUS_INFO>(null, DSROLE_PRIMARY_DOMAIN_INFO_LEVEL.DsRoleOperationState), Throws.ArgumentException);
var op = DsRoleGetPrimaryDomainInformation<DSROLE_PRIMARY_DOMAIN_INFO_BASIC>("funkytown", DSROLE_PRIMARY_DOMAIN_INFO_LEVEL.DsRolePrimaryDomainInfoBasic);
Assert.That(op.DomainNameDns, Is.Not.Null);
}
[Test()]
@ -24,6 +54,12 @@ namespace Vanara.PInvoke.Tests
Assert.True(bufptr.IsClosed);
}
[Test]
public void NetServerDiskEnumTest()
{
Assert.That(NetServerDiskEnum(), Contains.Item("C:"));
}
[Test()]
public void NetServerEnumTest()
{
@ -38,5 +74,50 @@ namespace Vanara.PInvoke.Tests
var i = NetServerGetInfo<SERVER_INFO_100>(null);
Assert.AreEqual(i.sv100_name, Environment.MachineName);
}
[Test]
public void NetServerTransportEnumTest()
{
Assert.That(NetServerTransportEnum<SERVER_TRANSPORT_INFO_1>(), Is.Not.Empty);
}
[Test]
public void NetEnumerateComputerNamesTest()
{
Assert.That(NetEnumerateComputerNames(), Is.Not.Empty);
}
[Test]
public void NetGetJoinableOUsTest()
{
Assert.That(NetGetJoinableOUs("AMERICAS"), Is.Not.Empty);
}
[Test]
public void NetConnectionEnumTest()
{
Assert.That(NetConnectionEnum<CONNECTION_INFO_0>(null, "Users"), Is.Not.Empty);
}
[Test]
public void NetFileEnumTest()
{
Assert.That(NetFileEnum<FILE_INFO_2>(null), Is.Not.Empty);
}
[Test]
public void NetUseTest()
{
const string dl = "S:";
NetUseAdd(null, new USE_INFO_1 { ui1_local = dl, ui1_remote = @"\\HALLAN-SVR\share", ui1_asg_type = NetUseType.USE_DISKDEV, ui1_usecount = 1 });
var e = NetUseEnum<USE_INFO_0>();
Assert.That(e, Is.Not.Empty);
Assert.That(() => e.First(i => i.ui0_local == dl), Throws.Nothing);
var ui1 = NetUseGetInfo<USE_INFO_1>(null, dl);
Assert.That(ui1.ui1_local, Is.EqualTo(dl));
Assert.That(() => NetUseDel(null, dl, NetUseForce.USE_LOTS_OF_FORCE).ThrowIfFailed(), Throws.Nothing);
e = NetUseEnum<USE_INFO_0>();
Assert.That(() => e.First(i => i.ui0_local == dl), Throws.Exception);
}
}
}