/* See LICENSE for licensing and NOTICE for copyright. */ package org.ldaptive.extended; import org.ldaptive.AbstractTest; import org.ldaptive.BindConnectionInitializer; import org.ldaptive.Connection; import org.ldaptive.Response; import org.ldaptive.TestControl; import org.ldaptive.TestUtils; import org.testng.AssertJUnit; import org.testng.annotations.Test; /** * Unit test for {@link WhoAmIOperation}. * * @author Middleware Services */ public class WhoAmIOperationTest extends AbstractTest { /** @throws Exception On test failure. */ @Test(groups = {"extended"}) public void whoami() throws Exception { // AD supports whoami, but returns a completely different value if (TestControl.isActiveDirectory()) { return; } // provider doesn't support this operation if (TestControl.isApacheProvider()) { throw new UnsupportedOperationException("Apache LDAP does not support this operation"); } try (Connection conn = TestUtils.createConnection()) { conn.open(); final WhoAmIOperation whoami = new WhoAmIOperation(conn); final Response<String> res = whoami.execute(new WhoAmIRequest()); final BindConnectionInitializer ci = (BindConnectionInitializer) conn.getConnectionConfig().getConnectionInitializer(); AssertJUnit.assertEquals("dn:" + ci.getBindDn(), res.getResult()); } } }