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