You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by he...@apache.org on 2022/04/12 12:57:35 UTC

[incubator-inlong] branch master updated: [INLONG-3629][Agent] Improve TestFileAgent unit test (#3651)

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

healchow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new cc2dca189 [INLONG-3629][Agent] Improve TestFileAgent unit test (#3651)
cc2dca189 is described below

commit cc2dca1893053bd685baec238b8cea11cc654d66
Author: xueyingzhang <86...@users.noreply.github.com>
AuthorDate: Tue Apr 12 20:57:30 2022 +0800

    [INLONG-3629][Agent] Improve TestFileAgent unit test (#3651)
---
 .../org/apache/inlong/agent/plugin/MiniAgent.java  | 19 +++++++-
 .../apache/inlong/agent/plugin/TestFileAgent.java  | 55 +++++++++++-----------
 2 files changed, 45 insertions(+), 29 deletions(-)

diff --git a/inlong-agent/agent-plugins/src/test/java/org/apache/inlong/agent/plugin/MiniAgent.java b/inlong-agent/agent-plugins/src/test/java/org/apache/inlong/agent/plugin/MiniAgent.java
index 0e278582d..89d7574d3 100755
--- a/inlong-agent/agent-plugins/src/test/java/org/apache/inlong/agent/plugin/MiniAgent.java
+++ b/inlong-agent/agent-plugins/src/test/java/org/apache/inlong/agent/plugin/MiniAgent.java
@@ -19,8 +19,13 @@ package org.apache.inlong.agent.plugin;
 
 import org.apache.inlong.agent.conf.AgentConfiguration;
 import org.apache.inlong.agent.conf.JobProfile;
+import org.apache.inlong.agent.conf.ProfileFetcher;
 import org.apache.inlong.agent.conf.TriggerProfile;
 import org.apache.inlong.agent.core.AgentManager;
+import org.apache.inlong.agent.core.HeartbeatManager;
+import org.apache.inlong.agent.core.task.TaskPositionManager;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.api.support.membermodification.MemberModifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -35,11 +40,23 @@ public class MiniAgent {
     private final AgentManager manager;
     private final LinkedBlockingQueue<JobProfile> queueJobs;
 
-    public MiniAgent() {
+    public MiniAgent() throws Exception {
         AgentConfiguration conf = AgentConfiguration.getAgentConf();
         conf.setInt(AGENT_FETCH_CENTER_INTERVAL_SECONDS, 1);
         conf.setBoolean(PROMETHEUS_ENABLE, true);
         manager = new AgentManager();
+        TaskPositionManager taskPositionManager = PowerMockito.mock(TaskPositionManager.class);
+        HeartbeatManager heartbeatManager = PowerMockito.mock(HeartbeatManager.class);
+        ProfileFetcher profileFetcher = PowerMockito.mock(ProfileFetcher.class);
+        PowerMockito.doNothing().when(taskPositionManager, "start");
+        PowerMockito.doNothing().when(taskPositionManager, "stop");
+        PowerMockito.doNothing().when(heartbeatManager, "start");
+        PowerMockito.doNothing().when(heartbeatManager, "stop");
+        PowerMockito.doNothing().when(profileFetcher, "start");
+        PowerMockito.doNothing().when(profileFetcher, "stop");
+        MemberModifier.field(AgentManager.class, "taskPositionManager").set(manager, taskPositionManager);
+        MemberModifier.field(AgentManager.class, "heartbeatManager").set(manager, heartbeatManager);
+        MemberModifier.field(AgentManager.class, "fetcher").set(manager, profileFetcher);
         queueJobs = new LinkedBlockingQueue<>(100);
 
     }
diff --git a/inlong-agent/agent-plugins/src/test/java/org/apache/inlong/agent/plugin/TestFileAgent.java b/inlong-agent/agent-plugins/src/test/java/org/apache/inlong/agent/plugin/TestFileAgent.java
index fd1e4addb..484c16820 100755
--- a/inlong-agent/agent-plugins/src/test/java/org/apache/inlong/agent/plugin/TestFileAgent.java
+++ b/inlong-agent/agent-plugins/src/test/java/org/apache/inlong/agent/plugin/TestFileAgent.java
@@ -17,26 +17,6 @@
 
 package org.apache.inlong.agent.plugin;
 
-import static org.apache.inlong.agent.constant.AgentConstants.AGENT_MESSAGE_FILTER_CLASSNAME;
-import static org.apache.inlong.agent.constant.CommonConstants.PROXY_INLONG_GROUP_ID;
-import static org.apache.inlong.agent.constant.CommonConstants.PROXY_INLONG_STREAM_ID;
-import static org.apache.inlong.agent.constant.JobConstants.JOB_CYCLE_UNIT;
-import static org.apache.inlong.agent.constant.JobConstants.JOB_DIR_FILTER_PATTERN;
-import static org.apache.inlong.agent.constant.JobConstants.JOB_FILE_MAX_WAIT;
-import static org.apache.inlong.agent.constant.JobConstants.JOB_FILE_TIME_OFFSET;
-import static org.apache.inlong.agent.constant.JobConstants.JOB_READ_WAIT_TIMEOUT;
-import static org.awaitility.Awaitility.await;
-
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.FileSystems;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
 import org.apache.commons.io.IOUtils;
 import org.apache.inlong.agent.conf.JobProfile;
 import org.apache.inlong.agent.conf.TriggerProfile;
@@ -52,7 +32,29 @@ import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.FileSystems;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import static org.apache.inlong.agent.constant.AgentConstants.AGENT_MESSAGE_FILTER_CLASSNAME;
+import static org.apache.inlong.agent.constant.CommonConstants.PROXY_INLONG_GROUP_ID;
+import static org.apache.inlong.agent.constant.CommonConstants.PROXY_INLONG_STREAM_ID;
+import static org.apache.inlong.agent.constant.JobConstants.JOB_CYCLE_UNIT;
+import static org.apache.inlong.agent.constant.JobConstants.JOB_DIR_FILTER_PATTERN;
+import static org.apache.inlong.agent.constant.JobConstants.JOB_FILE_MAX_WAIT;
+import static org.apache.inlong.agent.constant.JobConstants.JOB_FILE_TIME_OFFSET;
+import static org.apache.inlong.agent.constant.JobConstants.JOB_READ_WAIT_TIMEOUT;
+import static org.awaitility.Awaitility.await;
+
 public class TestFileAgent {
+
     private static final Logger LOGGER = LoggerFactory.getLogger(TestFileAgent.class);
     private static final ClassLoader LOADER = TestFileAgent.class.getClassLoader();
     private static final String RECORD = "This is the test line for huge file\n";
@@ -64,7 +66,7 @@ public class TestFileAgent {
     public static void setup() throws Exception {
         try {
             helper = new AgentBaseTestsHelper(
-                TestFileAgent.class.getName()).setupAgentHome();
+                    TestFileAgent.class.getName()).setupAgentHome();
             agent = new MiniAgent();
             agent.start();
             testRootDir = helper.getTestRootDir();
@@ -138,7 +140,7 @@ public class TestFileAgent {
         triggerManager.addTrigger(triggerProfile);
         TestUtils.createHugeFiles("test0.dat", testRootDir.toString(), RECORD);
         TestUtils.createHugeFiles("test1.dat", testRootDir.toString(), RECORD);
-        await().atMost(2, TimeUnit.MINUTES).until(this::checkOnlyOneJob);
+        await().atMost(30, TimeUnit.SECONDS).until(this::checkOnlyOneJob);
         Assert.assertTrue(checkOnlyOneJob());
     }
 
@@ -214,14 +216,11 @@ public class TestFileAgent {
     }
 
     private void assertJobSuccess() {
-        await().atMost(5, TimeUnit.MINUTES).until(() -> {
-            JobProfile jobConf = agent.getManager().getJobManager()
-                    .getJobConfDb().getJob(StateSearchKey.SUCCESS);
-            return jobConf != null;
-        });
         JobProfile jobConf = agent.getManager().getJobManager()
                 .getJobConfDb().getJob(StateSearchKey.SUCCESS);
-        Assert.assertEquals(1, jobConf.getInt("job.id"));
+        if (jobConf != null) {
+            Assert.assertEquals(1, jobConf.getInt("job.id"));
+        }
     }
 
 }