Skip to content

Commit 933a8db

Browse files
committed
chore: added review sugesstions
Signed-off-by: Manish Dait <daitmanish88@gmail.com>
1 parent 38ea11c commit 933a8db

2 files changed

Lines changed: 48 additions & 3 deletions

File tree

hiero-enterprise-base/src/main/java/org/hiero/base/implementation/FileClientImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ public void appendFile(@NonNull FileId fileId, byte[] content) throws HieroExcep
171171
protocolLayerClient.executeFileAppendRequestTransaction(request);
172172
} else {
173173
if (log.isDebugEnabled()) {
174-
int appendCount = Math.floorDiv(content.length, FileCreateRequest.FILE_CREATE_MAX_SIZE);
174+
int appendCount = Math.ceilDiv(content.length, FileCreateRequest.FILE_CREATE_MAX_SIZE);
175175
log.debug(
176176
"Content of size {} is to big for 1 FileAppend transaction. Will append {} FileAppend transactions",
177177
content.length,

hiero-enterprise-base/src/test/java/org/hiero/base/test/FileClientImplTest.java

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414

1515
import com.hedera.hashgraph.sdk.FileId;
1616
import java.time.Instant;
17+
import java.util.List;
18+
1719
import org.hiero.base.HieroException;
1820
import org.hiero.base.implementation.FileClientImpl;
1921
import org.hiero.base.protocol.ProtocolLayerClient;
@@ -30,12 +32,16 @@
3032
import org.junit.jupiter.api.Assertions;
3133
import org.junit.jupiter.api.BeforeEach;
3234
import org.junit.jupiter.api.Test;
35+
import org.mockito.ArgumentCaptor;
3336
import org.mockito.Mockito;
3437

3538
public class FileClientImplTest {
3639
ProtocolLayerClient protocolLayerClient;
3740
FileClientImpl fileClientImpl;
3841

42+
43+
ArgumentCaptor<FileAppendRequest> fileAppendCaptor = ArgumentCaptor.forClass(FileAppendRequest.class);
44+
3945
@BeforeEach
4046
void setup() {
4147
protocolLayerClient = Mockito.mock(ProtocolLayerClient.class);
@@ -251,8 +257,12 @@ void testAppendFile() throws HieroException {
251257
fileClientImpl.appendFile(fileId, content);
252258

253259
verify(protocolLayerClient, times(1))
254-
.executeFileAppendRequestTransaction(any(FileAppendRequest.class));
260+
.executeFileAppendRequestTransaction(fileAppendCaptor.capture());
255261
verify(protocolLayerClient, times(1)).executeFileInfoQuery(any(FileInfoRequest.class));
262+
263+
final FileAppendRequest captureRequest = fileAppendCaptor.getValue();
264+
Assertions.assertEquals(fileId, captureRequest.fileId());
265+
Assertions.assertArrayEquals(content, captureRequest.contents());
256266
}
257267

258268
@Test
@@ -315,8 +325,43 @@ void testAppendFileWithLargeContent() throws HieroException {
315325

316326
// call for each 2048 chunk
317327
verify(protocolLayerClient, times(2))
318-
.executeFileAppendRequestTransaction(any(FileAppendRequest.class));
328+
.executeFileAppendRequestTransaction(fileAppendCaptor.capture());
319329
verify(protocolLayerClient, times(1)).executeFileInfoQuery(any(FileInfoRequest.class));
330+
331+
final List<FileAppendRequest> capturedRequests = fileAppendCaptor.getAllValues();
332+
Assertions.assertEquals(fileId, capturedRequests.get(0).fileId());
333+
Assertions.assertEquals(FileCreateRequest.FILE_CREATE_MAX_SIZE, capturedRequests.get(0).contents().length);
334+
335+
Assertions.assertEquals(fileId, capturedRequests.get(1).fileId());
336+
Assertions.assertEquals(FileCreateRequest.FILE_CREATE_MAX_SIZE, capturedRequests.get(1).contents().length);
337+
}
338+
339+
@Test
340+
void testAppendFileWithLargeContentUnevenSize() throws HieroException {
341+
// mocks
342+
final FileInfoResponse fileInfoResponse = Mockito.mock(FileInfoResponse.class);
343+
344+
// given
345+
final FileId fileId = FileId.fromString("1.2.3");
346+
final byte[] content = new byte[FileCreateRequest.FILE_CREATE_MAX_SIZE + 2];
347+
348+
when(protocolLayerClient.executeFileInfoQuery(any(FileInfoRequest.class)))
349+
.thenReturn(fileInfoResponse);
350+
when(fileInfoResponse.size()).thenReturn(1);
351+
352+
fileClientImpl.appendFile(fileId, content);
353+
354+
// call for each chunk 2048 and 2
355+
verify(protocolLayerClient, times(2))
356+
.executeFileAppendRequestTransaction(fileAppendCaptor.capture());
357+
verify(protocolLayerClient, times(1)).executeFileInfoQuery(any(FileInfoRequest.class));
358+
359+
final List<FileAppendRequest> capturedRequests = fileAppendCaptor.getAllValues();
360+
Assertions.assertEquals(fileId, capturedRequests.get(0).fileId());
361+
Assertions.assertEquals(FileCreateRequest.FILE_CREATE_MAX_SIZE, capturedRequests.get(0).contents().length);
362+
363+
Assertions.assertEquals(fileId, capturedRequests.get(1).fileId());
364+
Assertions.assertEquals(2, capturedRequests.get(1).contents().length);
320365
}
321366

322367
@Test

0 commit comments

Comments
 (0)