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 b39602f15 [improve] add MetricsDataRedisCodec unit test (#2514)
b39602f15 is described below

commit b39602f15d5cc4d0eb295f86fc521db44f57274b
Author: YuLuo <[email protected]>
AuthorDate: Mon Aug 12 23:28:22 2024 +0800

    [improve] add MetricsDataRedisCodec unit test (#2514)
    
    Signed-off-by: yuluo-yx <[email protected]>
    Co-authored-by: tomsun28 <[email protected]>
---
 .../warehouse/store/MetricsDataRedisCodecTest.java | 64 ++++++++++++++++++++--
 1 file changed, 60 insertions(+), 4 deletions(-)

diff --git 
a/warehouse/src/test/java/org/apache/hertzbeat/warehouse/store/MetricsDataRedisCodecTest.java
 
b/warehouse/src/test/java/org/apache/hertzbeat/warehouse/store/MetricsDataRedisCodecTest.java
index b42fe9dff..a71e98f6f 100644
--- 
a/warehouse/src/test/java/org/apache/hertzbeat/warehouse/store/MetricsDataRedisCodecTest.java
+++ 
b/warehouse/src/test/java/org/apache/hertzbeat/warehouse/store/MetricsDataRedisCodecTest.java
@@ -17,32 +17,88 @@
 
 package org.apache.hertzbeat.warehouse.store;
 
+import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.hertzbeat.common.entity.message.CollectRep;
 import 
org.apache.hertzbeat.warehouse.store.realtime.redis.MetricsDataRedisCodec;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
 
 /**
  * Test case for {@link MetricsDataRedisCodec}
  */
+
+@Slf4j
 class MetricsDataRedisCodecTest {
 
+    private MetricsDataRedisCodec codec;
+
     @BeforeEach
     void setUp() {
+
+        codec = new MetricsDataRedisCodec();
     }
 
     @Test
-    void decodeKey() {
+    void testEncodeKey() {
+
+        String key = "testKey";
+        ByteBuffer encodedKey = codec.encodeKey(key);
+        String decodedKey = 
StandardCharsets.UTF_8.decode(encodedKey).toString();
+
+        assertEquals(key, decodedKey);
     }
 
     @Test
-    void decodeValue() {
+    void testDecodeKey() {
+
+        String key = "testKey";
+        ByteBuffer buffer = 
ByteBuffer.wrap(key.getBytes(StandardCharsets.UTF_8));
+        String decodedKey = codec.decodeKey(buffer);
+
+        assertEquals(key, decodedKey);
     }
 
     @Test
-    void encodeKey() {
+    void testEncodeValue() {
+
+        CollectRep.MetricsData metricsData = 
Mockito.mock(CollectRep.MetricsData.class);
+        byte[] bytes = new byte[] {1, 2, 3};
+        Mockito.when(metricsData.toByteArray()).thenReturn(bytes);
+
+        ByteBuffer encodedValue = codec.encodeValue(metricsData);
+        assertArrayEquals(bytes, encodedValue.array());
     }
 
     @Test
-    void encodeValue() {
+    void testDecodeValue() {
+
+        CollectRep.MetricsData metricsData = 
Mockito.mock(CollectRep.MetricsData.class);
+        byte[] bytes = new byte[] {1, 2, 3};
+
+        ByteBuffer buffer = ByteBuffer.wrap(bytes);
+
+        try {
+            Mockito.mockStatic(CollectRep.MetricsData.class);
+            
Mockito.when(CollectRep.MetricsData.parseFrom(buffer)).thenReturn(metricsData);
+
+            CollectRep.MetricsData decodedValue = codec.decodeValue(buffer);
+
+            assertEquals(metricsData, decodedValue);
+        }
+        catch (Exception e) {
+            log.error(e.getMessage());
+            fail("Exception thrown during decodeValue test");
+        }
+        finally {
+            Mockito.clearAllCaches();
+        }
     }
+
 }


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

Reply via email to