From 484ca17147af71580af4e678d7262fa2f22faee9 Mon Sep 17 00:00:00 2001 From: Lemeri123 <132246079+Lemeri123@users.noreply.github.com> Date: Mon, 16 Dec 2024 16:03:51 +0300 Subject: [PATCH 1/2] Created a file that handles tests for FileClientImpl's isDeleted method Signed-off-by: Lemeri123 <132246079+Lemeri123@users.noreply.github.com> --- .../hiero/base/test/FileClientImplTest.java | 71 +++++++++++++++++++ 1 file changed, 71 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..030403ee --- /dev/null +++ b/hiero-enterprise-base/src/test/java/com/openelements/hiero/base/test/FileClientImplTest.java @@ -0,0 +1,71 @@ +package com.openelements.hiero.base.test; +import com.openelements.hiero.base.implementation.FileClientImpl; +import com.openelements.hiero.base.HieroException; +import com.openelements.hiero.base.protocol.FileInfoRequest; +import com.openelements.hiero.base.protocol.FileInfoResponse; +import com.openelements.hiero.base.protocol.ProtocolLayerClient; +import com.hedera.hashgraph.sdk.FileId; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.*; + +public class FileClientImplTest { + + @Mock + private ProtocolLayerClient protocolLayerClient; + + private FileClientImpl fileClient; + + @BeforeEach + public void setUp() { + MockitoAnnotations.openMocks(this); // Use openMocks() instead of initMocks() + fileClient = new FileClientImpl(protocolLayerClient); + } + + @Test + public void testIsDeleted_FileIsDeleted() throws HieroException { + // Given + FileId fileId = FileId.fromString("0.0.123"); // Correct format + FileInfoResponse response = mock(FileInfoResponse.class); + when(protocolLayerClient.executeFileInfoQuery(any(FileInfoRequest.class))).thenReturn(response); + when(response.deleted()).thenReturn(true); + + // When + boolean result = fileClient.isDeleted(fileId); + + // Then + assertTrue(result); + } + + @Test + public void testIsDeleted_FileIsNotDeleted() throws HieroException { + // Given + FileId fileId = FileId.fromString("0.0.123"); // Correct format + FileInfoResponse response = mock(FileInfoResponse.class); + when(protocolLayerClient.executeFileInfoQuery(any(FileInfoRequest.class))).thenReturn(response); + when(response.deleted()).thenReturn(false); + + // When + boolean result = fileClient.isDeleted(fileId); + + // Then + assertFalse(result); + } + + @Test + public void testIsDeleted_NullFileId() { + // When + IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { + fileClient.isDeleted(null); // This should throw an exception + }); + + // Then + assertEquals("fileId must not be null", exception.getMessage()); + } +} + From 95a17d9af32bfa41deeb8e6315010fa7f2c1a58b Mon Sep 17 00:00:00 2001 From: Lemeri123 <132246079+Lemeri123@users.noreply.github.com> Date: Wed, 18 Dec 2024 10:09:32 +0300 Subject: [PATCH 2/2] updated tests Signed-off-by: Lemeri123 <132246079+Lemeri123@users.noreply.github.com> --- .../base/implementation/FileClientImpl.java | 15 ++++--- .../hiero/base/test/FileClientImplTest.java | 41 ++++++++++++++----- 2 files changed, 40 insertions(+), 16 deletions(-) diff --git a/hiero-enterprise-base/src/main/java/com/openelements/hiero/base/implementation/FileClientImpl.java b/hiero-enterprise-base/src/main/java/com/openelements/hiero/base/implementation/FileClientImpl.java index 6f5c2fe2..1d43611c 100644 --- a/hiero-enterprise-base/src/main/java/com/openelements/hiero/base/implementation/FileClientImpl.java +++ b/hiero-enterprise-base/src/main/java/com/openelements/hiero/base/implementation/FileClientImpl.java @@ -152,13 +152,16 @@ public void updateExpirationTime(@NonNull final FileId fileId, @NonNull final In } @Override - public boolean isDeleted(@NonNull final FileId fileId) throws HieroException { - Objects.requireNonNull(fileId, "fileId must not be null"); - final FileInfoRequest request = FileInfoRequest.of(fileId); - final FileInfoResponse infoResponse = protocolLayerClient.executeFileInfoQuery(request); - return infoResponse.deleted(); - } + public boolean isDeleted(FileId fileId) throws HieroException { + if (fileId == null) { + throw new IllegalArgumentException("fileId must not be null"); + } + + FileInfoRequest request = FileInfoRequest.of(fileId); + FileInfoResponse response = protocolLayerClient.executeFileInfoQuery(request); + return response.deleted(); + } @Override public int getSize(@NonNull final FileId fileId) throws HieroException { Objects.requireNonNull(fileId, "fileId must not be null"); 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 index 030403ee..b98a391d 100644 --- 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 @@ -1,10 +1,12 @@ package com.openelements.hiero.base.test; + import com.openelements.hiero.base.implementation.FileClientImpl; import com.openelements.hiero.base.HieroException; import com.openelements.hiero.base.protocol.FileInfoRequest; import com.openelements.hiero.base.protocol.FileInfoResponse; import com.openelements.hiero.base.protocol.ProtocolLayerClient; -import com.hedera.hashgraph.sdk.FileId; +import com.hedera.hashgraph.sdk.FileId; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mock; @@ -23,15 +25,16 @@ public class FileClientImplTest { @BeforeEach public void setUp() { - MockitoAnnotations.openMocks(this); // Use openMocks() instead of initMocks() + MockitoAnnotations.openMocks(this); // Initialize mocks fileClient = new FileClientImpl(protocolLayerClient); } @Test public void testIsDeleted_FileIsDeleted() throws HieroException { // Given - FileId fileId = FileId.fromString("0.0.123"); // Correct format + FileId fileId = FileId.fromString("0.0.123"); // Correct format FileInfoResponse response = mock(FileInfoResponse.class); + when(protocolLayerClient.executeFileInfoQuery(any(FileInfoRequest.class))).thenReturn(response); when(response.deleted()).thenReturn(true); @@ -39,14 +42,15 @@ public void testIsDeleted_FileIsDeleted() throws HieroException { boolean result = fileClient.isDeleted(fileId); // Then - assertTrue(result); + assertTrue(result, "The file should be marked as deleted."); } @Test public void testIsDeleted_FileIsNotDeleted() throws HieroException { // Given - FileId fileId = FileId.fromString("0.0.123"); // Correct format + FileId fileId = FileId.fromString("0.0.123"); // Correct format FileInfoResponse response = mock(FileInfoResponse.class); + when(protocolLayerClient.executeFileInfoQuery(any(FileInfoRequest.class))).thenReturn(response); when(response.deleted()).thenReturn(false); @@ -54,18 +58,35 @@ public void testIsDeleted_FileIsNotDeleted() throws HieroException { boolean result = fileClient.isDeleted(fileId); // Then - assertFalse(result); + assertFalse(result, "The file should not be marked as deleted."); } @Test public void testIsDeleted_NullFileId() { // When - IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { - fileClient.isDeleted(null); // This should throw an exception - }); + IllegalArgumentException exception = assertThrows( + IllegalArgumentException.class, + () -> fileClient.isDeleted(null) // Explicitly pass null + ); // Then assertEquals("fileId must not be null", exception.getMessage()); } -} + @Test + public void testIsDeleted_HieroExceptionThrown() throws HieroException { + // Given + FileId fileId = FileId.fromString("0.0.123"); + when(protocolLayerClient.executeFileInfoQuery(any(FileInfoRequest.class))) + .thenThrow(new HieroException("Error processing request")); + + // When + HieroException exception = assertThrows( + HieroException.class, + () -> fileClient.isDeleted(fileId) + ); + + // Then + assertEquals("Error processing request", exception.getMessage()); + } +}