This is an automated email from the ASF dual-hosted git repository.

morrysnow pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-3.1 by this push:
     new 75884ac80ab branch-3.1: [ut](ldap)Change the implementation of 
LdapClientTest to solve the problem of pipeline out failure #57994 (#58006)
75884ac80ab is described below

commit 75884ac80abdff5378cadd6728ccfa537632b26f
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Nov 19 14:21:09 2025 +0800

    branch-3.1: [ut](ldap)Change the implementation of LdapClientTest to solve 
the problem of pipeline out failure #57994 (#58006)
    
    Cherry-picked from #57994
    
    Co-authored-by: zhangdong <[email protected]>
---
 .../doris/mysql/authenticate/ldap/LdapClient.java  |   4 +-
 .../mysql/authenticate/ldap/LdapClientTest.java    | 114 ++++++---------------
 2 files changed, 35 insertions(+), 83 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/mysql/authenticate/ldap/LdapClient.java
 
b/fe/fe-core/src/main/java/org/apache/doris/mysql/authenticate/ldap/LdapClient.java
index 1186469a1ec..0d9bbe0c343 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/mysql/authenticate/ldap/LdapClient.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/mysql/authenticate/ldap/LdapClient.java
@@ -25,6 +25,7 @@ import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.common.util.SymmetricEncryption;
 import org.apache.doris.persist.LdapInfo;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Lists;
 import lombok.Data;
 import org.apache.logging.log4j.LogManager;
@@ -206,7 +207,8 @@ public class LdapClient {
         return userDns.get(0);
     }
 
-    private List<String> getDn(LdapQuery query) {
+    @VisibleForTesting
+    public List<String> getDn(LdapQuery query) {
         init();
         try {
             return clientInfo.getLdapTemplatePool().search(query,
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/mysql/authenticate/ldap/LdapClientTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/mysql/authenticate/ldap/LdapClientTest.java
index 531604d533f..866a84e7528 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/mysql/authenticate/ldap/LdapClientTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/mysql/authenticate/ldap/LdapClientTest.java
@@ -17,59 +17,25 @@
 
 package org.apache.doris.mysql.authenticate.ldap;
 
-import org.apache.doris.catalog.Env;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.LdapConfig;
-import org.apache.doris.mysql.privilege.Auth;
-import org.apache.doris.persist.LdapInfo;
 
-import com.google.common.collect.Lists;
-import mockit.Delegate;
 import mockit.Expectations;
-import mockit.Mocked;
+import mockit.Tested;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.springframework.ldap.core.LdapTemplate;
-import org.springframework.ldap.core.support.AbstractContextMapper;
 import org.springframework.ldap.query.LdapQuery;
 
+import java.util.Arrays;
 import java.util.List;
 
 public class LdapClientTest {
-    private static final String ADMIN_PASSWORD = "admin";
-
-    @Mocked
-    private LdapTemplate ldapTemplate;
-
-    @Mocked
-    private Env env;
-
-    @Mocked
-    private Auth auth;
-
-    private LdapInfo ldapInfo = new LdapInfo(ADMIN_PASSWORD);
-
-    private LdapClient ldapClient = new LdapClient();
+    @Tested
+    private LdapClient ldapClient;
 
     @Before
     public void setUp() {
-        new Expectations() {
-            {
-                Env.getCurrentEnv();
-                minTimes = 0;
-                result = env;
-
-                env.getAuth();
-                minTimes = 0;
-                result = auth;
-
-                auth.getLdapInfo();
-                minTimes = 0;
-                result = ldapInfo;
-            }
-        };
-
         Config.authentication_type = "ldap";
         LdapConfig.ldap_host = "127.0.0.1";
         LdapConfig.ldap_port = 389;
@@ -79,70 +45,54 @@ public class LdapClientTest {
         LdapConfig.ldap_user_filter = "(&(uid={login}))";
     }
 
-    private void mockLdapTemplateSearch(List list) {
-        new Expectations() {
+    @Test
+    public void testDoesUserExist() {
+        List<String> list = Arrays.asList("zhangsan");
+
+        new Expectations(ldapClient) {
             {
-                ldapTemplate.search((LdapQuery) any, (AbstractContextMapper) 
any);
-                minTimes = 0;
+                ldapClient.getDn((LdapQuery) any);
                 result = list;
             }
         };
-    }
 
-    private void mockLdapTemplateAuthenticate(String password) {
-        new Expectations() {
-            {
-                ldapTemplate.authenticate((LdapQuery) any, anyString);
-                minTimes = 0;
-                result = new Delegate() {
-                    void fakeAuthenticate(LdapQuery query, String passwd) {
-                        if (passwd.equals(password)) {
-                            return;
-                        } else {
-                            throw new 
org.springframework.ldap.AuthenticationException();
-                        }
-                    }
-                };
-            }
-        };
-    }
-
-    @Test
-    public void testDoesUserExist() {
-        List<String> list = Lists.newArrayList();
-        list.add("zhangsan");
-        mockLdapTemplateSearch(list);
-        Assert.assertTrue(ldapClient.doesUserExist("zhangsan"));
+        boolean result = ldapClient.doesUserExist("zhangsan");
+        Assert.assertTrue(result);
     }
 
     @Test
     public void testDoesUserExistFail() {
-        mockLdapTemplateSearch(null);
+        new Expectations(ldapClient) {
+            {
+                ldapClient.getDn((LdapQuery) any);
+                result = null;
+            }
+        };
         Assert.assertFalse(ldapClient.doesUserExist("zhangsan"));
     }
 
     @Test(expected = RuntimeException.class)
     public void testDoesUserExistException() {
-        List<String> list = Lists.newArrayList();
-        list.add("zhangsan");
-        list.add("zhangsan");
-        mockLdapTemplateSearch(list);
+        List<String> list = Arrays.asList("zhangsan", "zhangsan");
+        new Expectations(ldapClient) {
+            {
+                ldapClient.getDn((LdapQuery) any);
+                result = list;
+            }
+        };
         Assert.assertTrue(ldapClient.doesUserExist("zhangsan"));
         Assert.fail("No Exception throws.");
     }
 
-    @Test
-    public void testCheckPassword() {
-        mockLdapTemplateAuthenticate(ADMIN_PASSWORD);
-        Assert.assertTrue(ldapClient.checkPassword("zhangsan", 
ADMIN_PASSWORD));
-        Assert.assertFalse(ldapClient.checkPassword("zhangsan", "123"));
-    }
-
     @Test
     public void testGetGroups() {
-        List<String> list = Lists.newArrayList();
-        list.add("cn=groupName,ou=groups,dc=example,dc=com");
-        mockLdapTemplateSearch(list);
+        List<String> list = 
Arrays.asList("cn=groupName,ou=groups,dc=example,dc=com");
+        new Expectations(ldapClient) {
+            {
+                ldapClient.getDn((LdapQuery) any);
+                result = list;
+            }
+        };
         Assert.assertEquals(1, ldapClient.getGroups("zhangsan").size());
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to