Skip to content

Commit 7594631

Browse files
fix: refactored out TestClock to use mocks instead
Signed-off-by: Matt Peterson <matt.peterson@swirldslabs.com>
1 parent 141921d commit 7594631

File tree

5 files changed

+58
-81
lines changed

5 files changed

+58
-81
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ void singleBlock(
172172
singleBlockResponseStreamObserver.onCompleted();
173173
}
174174

175-
static SingleBlockResponse buildSingleBlockResponse(final Block block) {
175+
private static SingleBlockResponse buildSingleBlockResponse(final Block block) {
176176
return SingleBlockResponse.newBuilder().setBlock(block).build();
177177
}
178178

server/src/test/java/com/hedera/block/server/consumer/ConsumerBlockItemObserverTest.java

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,13 @@
1717
package com.hedera.block.server.consumer;
1818

1919
import static com.hedera.block.protos.BlockStreamService.*;
20-
import static com.hedera.block.server.util.TestClock.buildClockInsideWindow;
21-
import static com.hedera.block.server.util.TestClock.buildClockOutsideWindow;
2220
import static org.mockito.Mockito.*;
2321

2422
import com.hedera.block.server.data.ObjectEvent;
2523
import com.hedera.block.server.mediator.StreamMediator;
2624
import io.grpc.stub.ServerCallStreamObserver;
2725
import io.grpc.stub.StreamObserver;
26+
import java.time.InstantSource;
2827
import org.junit.jupiter.api.Test;
2928
import org.junit.jupiter.api.extension.ExtendWith;
3029
import org.mockito.Mock;
@@ -44,10 +43,15 @@ public class ConsumerBlockItemObserverTest {
4443

4544
@Test
4645
public void testProducerTimeoutWithinWindow() {
46+
47+
final InstantSource mockClockInsideWindow = mock(InstantSource.class);
48+
when(mockClockInsideWindow.millis())
49+
.thenReturn(TEST_TIME, TEST_TIME + TIMEOUT_THRESHOLD_MILLIS - 1);
50+
4751
final var consumerBlockItemObserver =
4852
new ConsumerBlockItemObserver(
4953
TIMEOUT_THRESHOLD_MILLIS,
50-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
54+
mockClockInsideWindow,
5155
streamMediator,
5256
responseStreamObserver);
5357

@@ -69,10 +73,15 @@ public void testProducerTimeoutWithinWindow() {
6973

7074
@Test
7175
public void testProducerTimeoutOutsideWindow() throws InterruptedException {
76+
77+
final InstantSource mockClockOutsideWindow = mock(InstantSource.class);
78+
when(mockClockOutsideWindow.millis())
79+
.thenReturn(TEST_TIME, TEST_TIME + TIMEOUT_THRESHOLD_MILLIS + 1);
80+
7281
final var consumerBlockItemObserver =
7382
new ConsumerBlockItemObserver(
7483
TIMEOUT_THRESHOLD_MILLIS,
75-
buildClockOutsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
84+
mockClockOutsideWindow,
7685
streamMediator,
7786
responseStreamObserver);
7887

@@ -85,9 +94,13 @@ public void testProducerTimeoutOutsideWindow() throws InterruptedException {
8594
@Test
8695
public void testHandlersSetOnObserver() throws InterruptedException {
8796

97+
final InstantSource mockClockInsideWindow = mock(InstantSource.class);
98+
when(mockClockInsideWindow.millis())
99+
.thenReturn(TEST_TIME, TEST_TIME + TIMEOUT_THRESHOLD_MILLIS - 1);
100+
88101
new ConsumerBlockItemObserver(
89102
TIMEOUT_THRESHOLD_MILLIS,
90-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
103+
mockClockInsideWindow,
91104
streamMediator,
92105
serverCallStreamObserver);
93106

@@ -96,11 +109,16 @@ public void testHandlersSetOnObserver() throws InterruptedException {
96109
}
97110

98111
@Test
99-
public void testConsumerNotToSendBeforeBlockHeader() throws InterruptedException {
112+
public void testConsumerNotToSendBeforeBlockHeader() {
113+
114+
final InstantSource mockClockInsideWindow = mock(InstantSource.class);
115+
when(mockClockInsideWindow.millis())
116+
.thenReturn(TEST_TIME, TEST_TIME + TIMEOUT_THRESHOLD_MILLIS - 1);
117+
100118
final var consumerBlockItemObserver =
101119
new ConsumerBlockItemObserver(
102120
TIMEOUT_THRESHOLD_MILLIS,
103-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
121+
mockClockInsideWindow,
104122
streamMediator,
105123
responseStreamObserver);
106124

server/src/test/java/com/hedera/block/server/mediator/LiveStreamMediatorImplTest.java

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import static com.hedera.block.protos.BlockStreamService.*;
2020
import static com.hedera.block.server.util.PersistTestUtils.generateBlockItems;
21-
import static com.hedera.block.server.util.TestClock.buildClockInsideWindow;
2221
import static org.junit.jupiter.api.Assertions.*;
2322
import static org.mockito.Mockito.*;
2423

@@ -120,24 +119,28 @@ public void testMediatorPublishEventToSubscribers() throws IOException, Interrup
120119
new LiveStreamMediatorImpl(
121120
new FileSystemPersistenceHandler(blockReader, blockWriter));
122121

122+
final InstantSource mockClockInsideWindow = mock(InstantSource.class);
123+
when(mockClockInsideWindow.millis())
124+
.thenReturn(TEST_TIME, TEST_TIME + TIMEOUT_THRESHOLD_MILLIS - 1);
125+
123126
final var concreteObserver1 =
124127
new ConsumerBlockItemObserver(
125128
TIMEOUT_THRESHOLD_MILLIS,
126-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
129+
mockClockInsideWindow,
127130
streamMediator,
128131
streamObserver1);
129132

130133
final var concreteObserver2 =
131134
new ConsumerBlockItemObserver(
132135
TIMEOUT_THRESHOLD_MILLIS,
133-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
136+
mockClockInsideWindow,
134137
streamMediator,
135138
streamObserver2);
136139

137140
final var concreteObserver3 =
138141
new ConsumerBlockItemObserver(
139142
TIMEOUT_THRESHOLD_MILLIS,
140-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
143+
mockClockInsideWindow,
141144
streamMediator,
142145
streamObserver3);
143146

@@ -181,24 +184,28 @@ public void testSubAndUnsubHandling() {
181184
new LiveStreamMediatorImpl(
182185
new FileSystemPersistenceHandler(blockReader, blockWriter));
183186

187+
final InstantSource mockClockInsideWindow = mock(InstantSource.class);
188+
when(mockClockInsideWindow.millis())
189+
.thenReturn(TEST_TIME, TEST_TIME + TIMEOUT_THRESHOLD_MILLIS - 1);
190+
184191
final var concreteObserver1 =
185192
new ConsumerBlockItemObserver(
186193
TIMEOUT_THRESHOLD_MILLIS,
187-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
194+
mockClockInsideWindow,
188195
streamMediator,
189196
streamObserver1);
190197

191198
final var concreteObserver2 =
192199
new ConsumerBlockItemObserver(
193200
TIMEOUT_THRESHOLD_MILLIS,
194-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
201+
mockClockInsideWindow,
195202
streamMediator,
196203
streamObserver2);
197204

198205
final var concreteObserver3 =
199206
new ConsumerBlockItemObserver(
200207
TIMEOUT_THRESHOLD_MILLIS,
201-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
208+
mockClockInsideWindow,
202209
streamMediator,
203210
streamObserver3);
204211

@@ -222,10 +229,14 @@ public void testOnCancelSubscriptionHandling() throws IOException {
222229
new LiveStreamMediatorImpl(
223230
new FileSystemPersistenceHandler(blockReader, blockWriter));
224231

232+
final InstantSource mockClockInsideWindow = mock(InstantSource.class);
233+
when(mockClockInsideWindow.millis())
234+
.thenReturn(TEST_TIME, TEST_TIME + TIMEOUT_THRESHOLD_MILLIS - 1);
235+
225236
final var testConsumerBlockItemObserver =
226237
new TestConsumerBlockItemObserver(
227238
TIMEOUT_THRESHOLD_MILLIS,
228-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
239+
mockClockInsideWindow,
229240
streamMediator,
230241
serverCallStreamObserver);
231242

@@ -252,10 +263,14 @@ public void testOnCloseSubscriptionHandling() throws IOException {
252263
new LiveStreamMediatorImpl(
253264
new FileSystemPersistenceHandler(blockReader, blockWriter));
254265

266+
final InstantSource mockClockOutsideWindow = mock(InstantSource.class);
267+
when(mockClockOutsideWindow.millis())
268+
.thenReturn(TEST_TIME, TEST_TIME + TIMEOUT_THRESHOLD_MILLIS + 1);
269+
255270
final var testConsumerBlockItemObserver =
256271
new TestConsumerBlockItemObserver(
257272
TIMEOUT_THRESHOLD_MILLIS,
258-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
273+
mockClockOutsideWindow,
259274
streamMediator,
260275
serverCallStreamObserver);
261276

server/src/test/java/com/hedera/block/server/producer/ProducerBlockItemObserverTest.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import static com.hedera.block.protos.BlockStreamService.PublishStreamResponse.ItemAcknowledgement;
2121
import static com.hedera.block.server.producer.Util.getFakeHash;
2222
import static com.hedera.block.server.util.PersistTestUtils.generateBlockItems;
23-
import static com.hedera.block.server.util.TestClock.buildClockInsideWindow;
2423
import static org.junit.jupiter.api.Assertions.assertTrue;
2524
import static org.mockito.Mockito.*;
2625

@@ -38,6 +37,7 @@
3837
import io.grpc.stub.StreamObserver;
3938
import java.io.IOException;
4039
import java.security.NoSuchAlgorithmException;
40+
import java.time.InstantSource;
4141
import java.util.List;
4242
import org.junit.jupiter.api.Test;
4343
import org.junit.jupiter.api.extension.ExtendWith;
@@ -105,24 +105,28 @@ public void testProducerToManyConsumers() throws IOException, InterruptedExcepti
105105
new LiveStreamMediatorImpl(
106106
new FileSystemPersistenceHandler(blockReader, blockWriter), serviceStatus);
107107

108+
final InstantSource mockClockInsideWindow = mock(InstantSource.class);
109+
when(mockClockInsideWindow.millis())
110+
.thenReturn(TEST_TIME, TEST_TIME + TIMEOUT_THRESHOLD_MILLIS - 1);
111+
108112
final var concreteObserver1 =
109113
new ConsumerBlockItemObserver(
110114
TIMEOUT_THRESHOLD_MILLIS,
111-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
115+
mockClockInsideWindow,
112116
streamMediator,
113117
streamObserver1);
114118

115119
final var concreteObserver2 =
116120
new ConsumerBlockItemObserver(
117121
TIMEOUT_THRESHOLD_MILLIS,
118-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
122+
mockClockInsideWindow,
119123
streamMediator,
120124
streamObserver2);
121125

122126
final var concreteObserver3 =
123127
new ConsumerBlockItemObserver(
124128
TIMEOUT_THRESHOLD_MILLIS,
125-
buildClockInsideWindow(TEST_TIME, TIMEOUT_THRESHOLD_MILLIS),
129+
mockClockInsideWindow,
126130
streamMediator,
127131
streamObserver3);
128132

server/src/test/java/com/hedera/block/server/util/TestClock.java

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)