This is an automated email from the ASF dual-hosted git repository.
gongchao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git
The following commit(s) were added to refs/heads/master by this push:
new f7fb2356c [test] Add RedisSingleCollectImplTest (#1784)
f7fb2356c is described below
commit f7fb2356c785419f92ff057554fd6c1586d2feda
Author: crossoverJie <[email protected]>
AuthorDate: Fri Apr 19 23:35:36 2024 +0800
[test] Add RedisSingleCollectImplTest (#1784)
---
.../collect/redis/RedisSingleCollectImplTest.java | 73 +++++++++++++++++++++-
1 file changed, 70 insertions(+), 3 deletions(-)
diff --git
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/redis/RedisSingleCollectImplTest.java
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/redis/RedisSingleCollectImplTest.java
index b5351be84..7effd0483 100644
---
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/redis/RedisSingleCollectImplTest.java
+++
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/redis/RedisSingleCollectImplTest.java
@@ -17,6 +17,15 @@
package org.apache.hertzbeat.collector.collect.redis;
+import static
org.apache.hertzbeat.common.constants.CommonConstants.TYPE_STRING;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import io.lettuce.core.RedisClient;
+import io.lettuce.core.RedisURI;
+import io.lettuce.core.api.StatefulRedisConnection;
+import io.lettuce.core.api.sync.RedisCommands;
+import io.lettuce.core.resource.ClientResources;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.hertzbeat.common.entity.job.Metrics;
import org.apache.hertzbeat.common.entity.job.protocol.RedisProtocol;
import org.apache.hertzbeat.common.entity.message.CollectRep;
@@ -25,11 +34,10 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
+import org.mockito.MockedStatic;
+import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* Test case for {@link RedisCommonCollectImpl}
@@ -41,6 +49,16 @@ class RedisSingleCollectImplTest {
@Mock
private RedisProtocol redisProtocol;
+ @Mock
+ private StatefulRedisConnection<String, String> connection;
+
+ @Mock
+ private RedisCommands<String, String> cmd;
+
+ @Mock
+ private RedisClient client;
+
+
@InjectMocks
private RedisCommonCollectImpl redisSingleCollect;
@@ -67,4 +85,53 @@ class RedisSingleCollectImplTest {
metrics.setAliasFields(aliasField);
redisSingleCollect.collect(builder, 1L, "test", metrics);
}
+
+ @Test
+ void testCollect() {
+ String redisInfoTemplate = """
+ # Server
+ redis_mode:%s
+ redis_version:%s
+ """;
+ String redisMode = "standalone";
+ String version = "7.2.4";
+ String redisInfo = String.format(redisInfoTemplate, redisMode,
version);
+
+ CollectRep.MetricsData.Builder builder =
CollectRep.MetricsData.newBuilder();
+ List<String> aliasField = new ArrayList<>();
+ aliasField.add("redis_mode");
+ aliasField.add("redis_version");
+
+ List<Metrics.Field> fields = new ArrayList<>();
+ fields.add(Metrics.Field.builder()
+ .field("redis_mode")
+ .type(TYPE_STRING)
+ .build());
+ fields.add(Metrics.Field.builder()
+ .field("redis_version")
+ .type(TYPE_STRING)
+ .build());
+
+ Metrics metrics = new Metrics();
+ metrics.setName("server");
+ metrics.setRedis(redisProtocol);
+ metrics.setAliasFields(aliasField);
+ metrics.setFields(fields);
+
+ MockedStatic<RedisClient> clientMockedStatic =
Mockito.mockStatic(RedisClient.class);
+ clientMockedStatic.when(() ->
RedisClient.create(Mockito.any(ClientResources.class),
Mockito.any(RedisURI.class)))
+ .thenReturn(client);
+
+ Mockito.when(client.connect()).thenReturn(connection);
+ Mockito.when(connection.sync()).thenReturn(cmd);
+ Mockito.when(cmd.info(metrics.getName())).thenReturn(redisInfo);
+
+ redisSingleCollect.collect(builder, 1L, "test", metrics);
+ assertEquals(builder.getCode(), CollectRep.Code.SUCCESS);
+ for (CollectRep.ValueRow row : builder.getValuesList()) {
+ assertEquals(row.getColumnsCount(), 2);
+ assertEquals(row.getColumns(0), redisMode);
+ assertEquals(row.getColumns(1), version);
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]