From 658bff37a8e58f15bfbab5e531348e4a7af6a84d Mon Sep 17 00:00:00 2001 From: Manish Dait Date: Mon, 16 Dec 2024 21:49:59 +0530 Subject: [PATCH 1/2] Implemented test for getSize() method of FileClientImpl Signed-off-by: Manish Dait --- .../hiero/base/test/FileClientImplTest.java | 65 +++++++++++++++++++ .../src/test/java/module-info.java | 1 + .../hiero/spring/test/FileClientTests.java | 16 +++++ 3 files changed, 82 insertions(+) create mode 100644 hiero-enterprise-base/src/test/java/com/openelements/hiero/base/test/FileClientImplTest.java diff --git a/hiero-enterprise-base/src/test/java/com/openelements/hiero/base/test/FileClientImplTest.java b/hiero-enterprise-base/src/test/java/com/openelements/hiero/base/test/FileClientImplTest.java new file mode 100644 index 00000000..16afc7c1 --- /dev/null +++ b/hiero-enterprise-base/src/test/java/com/openelements/hiero/base/test/FileClientImplTest.java @@ -0,0 +1,65 @@ +package com.openelements.hiero.base.test; + +import com.hedera.hashgraph.sdk.FileId; +import com.openelements.hiero.base.HieroException; +import com.openelements.hiero.base.implementation.FileClientImpl; +import com.openelements.hiero.base.protocol.FileInfoRequest; +import com.openelements.hiero.base.protocol.FileInfoResponse; +import com.openelements.hiero.base.protocol.ProtocolLayerClient; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.*; + +public class FileClientImplTest { + ProtocolLayerClient protocolLayerClient; + FileClientImpl fileClientImpl; + + @BeforeEach + void setup() { + protocolLayerClient = Mockito.mock(ProtocolLayerClient.class); + fileClientImpl = new FileClientImpl(protocolLayerClient); + } + + @Test + void testGetFileSize() throws HieroException { + // mocks + final int size = 10; + final FileInfoResponse response = Mockito.mock(FileInfoResponse.class); + + // given + final FileId fileId = FileId.fromString("1.2.3"); + + // then + when(response.size()).thenReturn(size); + when(protocolLayerClient.executeFileInfoQuery(any(FileInfoRequest.class))) + .thenReturn(response); + + final int result = fileClientImpl.getSize(fileId); + + verify(protocolLayerClient, times(1)) + .executeFileInfoQuery(any(FileInfoRequest.class)); + verify(response, times(1)).size(); + Assertions.assertEquals(size, result); + } + + @Test + void testGetFileSizeThrowsExceptionForInvalidId() throws HieroException { + // given + final FileId fileId = FileId.fromString("1.2.3"); + + // then + when(protocolLayerClient.executeFileInfoQuery(any(FileInfoRequest.class))) + .thenThrow(new HieroException("Failed to execute query")); + + Assertions.assertThrows(HieroException.class, () -> fileClientImpl.getSize(fileId)); + } + + @Test + void testGetFileSizeThrowsExceptionForNullId() { + Assertions.assertThrows(NullPointerException.class, () -> fileClientImpl.getSize(null)); + } +} diff --git a/hiero-enterprise-base/src/test/java/module-info.java b/hiero-enterprise-base/src/test/java/module-info.java index d2676317..556f918e 100644 --- a/hiero-enterprise-base/src/test/java/module-info.java +++ b/hiero-enterprise-base/src/test/java/module-info.java @@ -4,4 +4,5 @@ requires static org.jspecify; requires org.junit.jupiter.api; requires org.junit.jupiter.params; + requires org.mockito; } \ No newline at end of file diff --git a/hiero-enterprise-spring/src/test/java/com/openelements/hiero/spring/test/FileClientTests.java b/hiero-enterprise-spring/src/test/java/com/openelements/hiero/spring/test/FileClientTests.java index 3c6dc691..2149fc6f 100644 --- a/hiero-enterprise-spring/src/test/java/com/openelements/hiero/spring/test/FileClientTests.java +++ b/hiero-enterprise-spring/src/test/java/com/openelements/hiero/spring/test/FileClientTests.java @@ -27,6 +27,7 @@ void testNullParams() { Assertions.assertThrows(NullPointerException.class, () -> fileClient.deleteFile((String) null)); Assertions.assertThrows(NullPointerException.class, () -> fileClient.deleteFile((FileId) null)); Assertions.assertThrows(NullPointerException.class, () -> fileClient.getExpirationTime(null)); + Assertions.assertThrows(NullPointerException.class, () -> fileClient.getSize(null)); } @Test @@ -240,4 +241,19 @@ void testUpdateExpirationTimeDoesNotChangeContent() throws Exception { //then Assertions.assertArrayEquals(contents, result); } + + @Test + void testGetFileSize() throws HieroException { + final byte[] contents = "Hello, Hedera!".getBytes(); + final FileId fileId = fileClient.createFile(contents); + final int size = fileClient.getSize(fileId); + + Assertions.assertEquals(size, contents.length); + } + + @Test + void testGetFileSizeThrowsExceptionForInvalidId() { + final FileId invalidFileId = FileId.fromString("1.2.3"); + Assertions.assertThrows(HieroException.class, () -> fileClient.getSize(invalidFileId)); + } } From fccb3809bd72dda798a7d868293c93c3cc19be66 Mon Sep 17 00:00:00 2001 From: Manish Dait Date: Tue, 17 Dec 2024 19:53:06 +0530 Subject: [PATCH 2/2] fix minor change 'Hello Hedera' -> 'Hello Hiero' Signed-off-by: Manish Dait --- .../com/openelements/hiero/spring/test/FileClientTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hiero-enterprise-spring/src/test/java/com/openelements/hiero/spring/test/FileClientTests.java b/hiero-enterprise-spring/src/test/java/com/openelements/hiero/spring/test/FileClientTests.java index 2149fc6f..aa2b0d13 100644 --- a/hiero-enterprise-spring/src/test/java/com/openelements/hiero/spring/test/FileClientTests.java +++ b/hiero-enterprise-spring/src/test/java/com/openelements/hiero/spring/test/FileClientTests.java @@ -244,7 +244,7 @@ void testUpdateExpirationTimeDoesNotChangeContent() throws Exception { @Test void testGetFileSize() throws HieroException { - final byte[] contents = "Hello, Hedera!".getBytes(); + final byte[] contents = "Hello, Hiero!".getBytes(); final FileId fileId = fileClient.createFile(contents); final int size = fileClient.getSize(fileId);