blob: 623a7bfbd386591807f0a0c37afda9ec51d38ff8 [file] [log] [blame]
package jnr.posix;
import jnr.posix.util.Platform;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
*/
public class PasswdTest {
public PasswdTest() {
}
private static POSIX posix;
private static Class passwdClass;
@BeforeClass
public static void setUpClass() throws Exception {
if (Platform.IS_MAC) {
passwdClass = MacOSPasswd.class;
} else if (Platform.IS_LINUX) {
passwdClass = LinuxPasswd.class;
} else if (Platform.IS_FREEBSD) {
passwdClass = FreeBSDPasswd.class;
} else if (Platform.IS_OPENBSD) {
passwdClass = OpenBSDPasswd.class;
} else if (Platform.IS_SOLARIS) {
passwdClass = SolarisPasswd.class;
} else if (Platform.IS_WINDOWS) {
// Skipping these tests for windows
} else {
throw new IllegalArgumentException("Platform not supported");
}
posix = POSIXFactory.getPOSIX(new DummyPOSIXHandler(), true);
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
@Test public void getpwnam() {
if (jnr.ffi.Platform.getNativePlatform().isUnix()) {
final String LOGIN = "root";
Passwd pwd = posix.getpwnam(LOGIN);
assertNotNull(pwd);
assertEquals("Login name not equal", LOGIN, pwd.getLoginName());
assertTrue(pwd.getClass().equals(passwdClass));
}
}
@Test public void nonExistantUserReturnsNull() {
if (jnr.ffi.Platform.getNativePlatform().isUnix()) {
final String LOGIN = "dkjhfjkdsfhjksdhfsdjkhfsdkjhfdskj";
assertNull("getpwnam for non-existant user should return null", posix.getpwnam(LOGIN));
}
}
}