Skip to content

Commit 464c9b2

Browse files
committed
Added jUnits. Changed the logic when the block is on found.
Signed-off-by: a-saksena <[email protected]>
1 parent 0cafd92 commit 464c9b2

File tree

2 files changed

+56
-10
lines changed

2 files changed

+56
-10
lines changed

server/src/main/java/com/hedera/block/server/BlockStreamService.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -156,12 +156,11 @@ private StreamObserver<BlockStreamServiceGrpcProto.BlockResponse> streamSource(
156156
return streamObserver;
157157
}
158158

159-
private void getBlock(
159+
void getBlock(
160160
BlockStreamServiceGrpcProto.Block block,
161161
StreamObserver<BlockStreamServiceGrpcProto.Block> responseObserver) {
162-
String message = "GET BLOCK RESPONSE! ";
163162
LOGGER.log(System.Logger.Level.INFO, "GetBlock request received");
164-
Optional<BlockStreamServiceGrpcProto.Block> responseBlock =
163+
final Optional<BlockStreamServiceGrpcProto.Block> responseBlock =
165164
blockPersistenceHandler.read(block.getId());
166165
if (responseBlock.isPresent()) {
167166
LOGGER.log(System.Logger.Level.INFO, "SENDING BLOCK # " + block.getId());
@@ -170,13 +169,7 @@ private void getBlock(
170169
responseBlock.get()); // TODO: Should return int and not quoted string
171170
} else {
172171
LOGGER.log(System.Logger.Level.INFO, "DID NOT FIND YOUR BLOCK");
173-
// TODO: Fix below. It could return gRPC equivalent of 404 NOT FOUND
174-
responseObserver.onError(
175-
Status.NOT_FOUND
176-
.withDescription("DID NOT FIND YOUR BLOCK")
177-
.asRuntimeException());
178-
// Keeping below comments for the fix needed above.
179-
// complete(responseObserver, BlockStreamServiceGrpcProto.Block.getDefaultInstance());
172+
responseObserver.onNext(BlockStreamServiceGrpcProto.Block.newBuilder().setId(0).build());
180173
}
181174
}
182175
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.hedera.block.server;
2+
3+
import com.hedera.block.protos.BlockStreamServiceGrpcProto;
4+
import com.hedera.block.server.mediator.StreamMediator;
5+
import com.hedera.block.server.persistence.BlockPersistenceHandler;
6+
import io.grpc.Status;
7+
import io.grpc.stub.StreamObserver;
8+
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.api.extension.ExtendWith;
10+
import org.mockito.Mock;
11+
import org.mockito.junit.jupiter.MockitoExtension;
12+
13+
import java.util.Optional;
14+
15+
import static org.junit.jupiter.api.Assertions.*;
16+
import static org.mockito.Mockito.*;
17+
18+
@ExtendWith(MockitoExtension.class)
19+
class BlockStreamServiceTest {
20+
21+
private final long TIMEOUT_THRESHOLD_MILLIS = 52L;
22+
23+
24+
@Mock
25+
private StreamObserver<BlockStreamServiceGrpcProto.Block> responseObserver;
26+
27+
@Mock
28+
private BlockPersistenceHandler<BlockStreamServiceGrpcProto.Block> blockPersistenceHandler;
29+
30+
@Mock
31+
private StreamMediator<
32+
BlockStreamServiceGrpcProto.Block,
33+
BlockStreamServiceGrpcProto.BlockResponse>
34+
streamMediator;
35+
36+
@Test
37+
void getBlockHappyPath() {
38+
BlockStreamServiceGrpcProto.Block block = BlockStreamServiceGrpcProto.Block.newBuilder().setId(1).build();
39+
BlockStreamService blockStreamService = new BlockStreamService(TIMEOUT_THRESHOLD_MILLIS, streamMediator, blockPersistenceHandler);
40+
when(blockPersistenceHandler.read(1)).thenReturn(Optional.of(BlockStreamServiceGrpcProto.Block.newBuilder().setId(1).build()));
41+
blockStreamService.getBlock(block, responseObserver);
42+
verify(responseObserver, times(1)).onNext(block);
43+
}
44+
45+
@Test
46+
void getBlockErrorPath() {
47+
BlockStreamServiceGrpcProto.Block block = BlockStreamServiceGrpcProto.Block.newBuilder().setId(1).build();
48+
BlockStreamService blockStreamService = new BlockStreamService(TIMEOUT_THRESHOLD_MILLIS, streamMediator, blockPersistenceHandler);
49+
when(blockPersistenceHandler.read(1)).thenReturn(Optional.empty());
50+
blockStreamService.getBlock(block, responseObserver);
51+
verify(responseObserver, times(1)).onNext(BlockStreamServiceGrpcProto.Block.newBuilder().setId(0).build());
52+
}
53+
}

0 commit comments

Comments
 (0)