test.com.sun.jna.platform.win32.Netapi32UtilTest Maven / Gradle / Ivy
/* Copyright (c) 2010 Daniel Doubrovkine, All Rights Reserved
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package com.sun.jna.platform.win32;
import junit.framework.TestCase;
import com.sun.jna.platform.win32.Netapi32Util.DomainController;
import com.sun.jna.platform.win32.Netapi32Util.DomainTrust;
/**
* @author dblock[at]dblock[dot]org
*/
public class Netapi32UtilTest extends TestCase {
public static void main(String[] args) {
junit.textui.TestRunner.run(Netapi32UtilTest.class);
System.out.println("Domain: " + Netapi32Util.getDomainName("localhost"));
// server local groups
Netapi32Util.LocalGroup[] localGroups = Netapi32Util.getLocalGroups();
System.out.println("Local groups: " + localGroups.length);
for(Netapi32Util.LocalGroup localGroup : localGroups) {
System.out.println(" " + localGroup.name + " (" + localGroup.comment + ")");
}
// global groups
Netapi32Util.Group[] groups = Netapi32Util.getGlobalGroups();
System.out.println("Global groups: " + groups.length);
for(Netapi32Util.Group group : groups) {
System.out.println(" " + group.name);
}
// server users
Netapi32Util.User[] users = Netapi32Util.getUsers();
System.out.println("Users: " + users.length);
for(Netapi32Util.User user : users) {
System.out.println(" " + user.name);
}
// user local groups
Netapi32Util.Group[] userLocalGroups = Netapi32Util.getCurrentUserLocalGroups();
System.out.println("Local user groups: " + userLocalGroups.length);
for(Netapi32Util.Group localGroup : userLocalGroups) {
System.out.println(" " + localGroup.name);
}
// domain controller
if (Netapi32Util.getJoinStatus() == LMJoin.NETSETUP_JOIN_STATUS.NetSetupDomainName) {
System.out.println("Pdc: " + Netapi32Util.getDCName());
DomainController dc = Netapi32Util.getDC();
System.out.println("Domain controller:");
System.out.println(" name: " + dc.name);
System.out.println(" address: " + dc.address);
System.out.println(" domain: " + dc.domainName);
System.out.println(" site: " + dc.clientSiteName);
System.out.println(" forest: " + dc.dnsForestName);
System.out.println(" guid: " + Ole32Util.getStringFromGUID(dc.domainGuid));
}
// domain trusts
if (Netapi32Util.getJoinStatus() == LMJoin.NETSETUP_JOIN_STATUS.NetSetupDomainName) {
DomainTrust[] trusts = Netapi32Util.getDomainTrusts();
System.out.println("Domain trusts: (" + trusts.length + ")");
for(DomainTrust trust : trusts) {
System.out.println(" " + trust.NetbiosDomainName + ": " + trust.DnsDomainName
+ " (" + trust.DomainSidString + ")");
}
}
}
public void testGetDomain() {
String computerName = System.getenv("COMPUTERNAME");
String domain = Netapi32Util.getDomainName(computerName);
assertTrue(domain.length() > 0);
}
public void testGetLocalGroups() {
Netapi32Util.LocalGroup[] localGroups = Netapi32Util.getLocalGroups();
assertNotNull(localGroups);
for(Netapi32Util.LocalGroup localGroup : localGroups) {
assertTrue(localGroup.name.length() > 0);
}
assertTrue(localGroups.length > 0);
}
public void testGetUsers() {
Netapi32Util.User[] users = Netapi32Util.getUsers();
assertNotNull(users);
for(Netapi32Util.User user : users) {
assertTrue(user.name.length() > 0);
}
assertTrue(users.length > 0);
}
public void testGetGlobalGroups() {
Netapi32Util.Group[] groups = Netapi32Util.getGlobalGroups();
assertNotNull(groups);
for(Netapi32Util.Group group : groups) {
assertTrue(group.name.length() > 0);
}
assertTrue(groups.length > 0);
}
public void testGetCurrentUserLocalGroups() {
Netapi32Util.Group[] localGroups = Netapi32Util.getCurrentUserLocalGroups();
assertNotNull(localGroups);
for(Netapi32Util.Group localGroup : localGroups) {
assertTrue(localGroup.name.length() > 0);
}
assertTrue(localGroups.length > 0);
}
public void testGetJoinStatus() {
int joinStatus = Netapi32Util.getJoinStatus();
assertTrue(joinStatus == LMJoin.NETSETUP_JOIN_STATUS.NetSetupDomainName
|| joinStatus == LMJoin.NETSETUP_JOIN_STATUS.NetSetupUnjoined
|| joinStatus == LMJoin.NETSETUP_JOIN_STATUS.NetSetupWorkgroupName);
}
public void testGetDCName() {
if (Netapi32Util.getJoinStatus() != LMJoin.NETSETUP_JOIN_STATUS.NetSetupDomainName)
return;
String domainController = Netapi32Util.getDCName();
assertTrue(domainController.length() > 0);
assertTrue(domainController.startsWith("\\\\"));
}
public void testGetDC() {
if (Netapi32Util.getJoinStatus() != LMJoin.NETSETUP_JOIN_STATUS.NetSetupDomainName)
return;
DomainController dc = Netapi32Util.getDC();
assertTrue(dc.address.startsWith("\\\\"));
assertTrue(dc.domainName.length() > 0);
}
public void testGetDomainTrusts() {
if (Netapi32Util.getJoinStatus() != LMJoin.NETSETUP_JOIN_STATUS.NetSetupDomainName)
return;
DomainTrust[] trusts = Netapi32Util.getDomainTrusts();
assertTrue(trusts.length >= 0);
for(DomainTrust trust : trusts) {
assertTrue(trust.NetbiosDomainName.length() > 0);
assertTrue(trust.DnsDomainName.length() > 0);
assertTrue(Advapi32.INSTANCE.IsValidSid(trust.DomainSid));
assertTrue(trust.isInbound() || trust.isOutbound() || trust.isPrimary());
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy