Skip to content

Commit 445885c

Browse files
authored
mock: enable more tests (#201)
1 parent db533a1 commit 445885c

File tree

4 files changed

+92
-16
lines changed

4 files changed

+92
-16
lines changed

client/src/test/java/io/hstream/RecordUtilsTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public void compressRecordsWithZstd() {
3333
testCompressRecords(CompressionType.ZSTD);
3434
}
3535

36-
@Disabled
36+
@Disabled("compressRatio")
3737
@Test
3838
public void compressRatioWithGzip() {
3939
compressRatio(4096, 100, CompressionType.GZIP);
@@ -43,7 +43,7 @@ public void compressRatioWithGzip() {
4343
compressRatio(4096, 1000, CompressionType.GZIP);
4444
}
4545

46-
@Disabled
46+
@Disabled("compressRatio")
4747
@Test
4848
public void compressRatioWithZstd() {
4949
compressRatio(4096, 100, CompressionType.ZSTD);

client/src/test/java/io/hstream/impl/ProducerBuilderImplTest.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,37 @@
11
package io.hstream.impl;
22

3+
import static io.hstream.HServerMockKt.buildMockedClient;
34
import static org.junit.jupiter.api.Assertions.assertNotNull;
45
import static org.junit.jupiter.api.Assertions.assertThrows;
5-
import static org.mockito.Mockito.mock;
66

7+
import io.hstream.HStreamClient;
78
import io.hstream.Producer;
8-
import org.junit.jupiter.api.Disabled;
99
import org.junit.jupiter.api.Test;
1010
import org.junit.runner.RunWith;
1111
import org.mockito.junit.MockitoJUnitRunner;
1212

1313
@RunWith(MockitoJUnitRunner.class)
14-
@Disabled("mock init")
1514
public class ProducerBuilderImplTest {
1615

1716
@Test
1817
public void testBuildWithValidInput() {
19-
HStreamClientKtImpl client = mock(HStreamClientKtImpl.class);
20-
ProducerBuilderImpl builder = new ProducerBuilderImpl(client);
18+
HStreamClient client = buildMockedClient();
19+
ProducerBuilderImpl builder = new ProducerBuilderImpl((HStreamClientKtImpl) client);
2120
Producer producer = builder.stream("test-stream").requestTimeoutMs(1000).build();
2221
assertNotNull(producer);
2322
}
2423

2524
@Test
2625
public void testBuildWithMissingStreamName() {
27-
HStreamClientKtImpl client = mock(HStreamClientKtImpl.class);
28-
ProducerBuilderImpl builder = new ProducerBuilderImpl(client);
29-
assertThrows(NullPointerException.class, () -> builder.requestTimeoutMs(1000).build());
26+
HStreamClient client = buildMockedClient();
27+
ProducerBuilderImpl builder = new ProducerBuilderImpl((HStreamClientKtImpl) client);
28+
assertThrows(IllegalArgumentException.class, () -> builder.requestTimeoutMs(1000).build());
3029
}
3130

3231
@Test
3332
public void testBuildWithInvalidRequestTimeoutMs() {
34-
HStreamClientKtImpl client = mock(HStreamClientKtImpl.class);
35-
ProducerBuilderImpl builder = new ProducerBuilderImpl(client);
33+
HStreamClient client = buildMockedClient();
34+
ProducerBuilderImpl builder = new ProducerBuilderImpl((HStreamClientKtImpl) client);
3635
assertThrows(
3736
IllegalArgumentException.class,
3837
() -> {
@@ -50,16 +49,16 @@ public void testBuildWithNullClient() {
5049

5150
@Test
5251
public void testBuildWithDefaultRequestTimeoutMs() {
53-
HStreamClientKtImpl client = mock(HStreamClientKtImpl.class);
54-
ProducerBuilderImpl builder = new ProducerBuilderImpl(client);
52+
HStreamClient client = buildMockedClient();
53+
ProducerBuilderImpl builder = new ProducerBuilderImpl((HStreamClientKtImpl) client);
5554
Producer producer = builder.stream("test-stream").build();
5655
assertNotNull(producer);
5756
}
5857

5958
@Test
6059
public void testBuildWithMaxRequestTimeoutMs() {
61-
HStreamClientKtImpl client = mock(HStreamClientKtImpl.class);
62-
ProducerBuilderImpl builder = new ProducerBuilderImpl(client);
60+
HStreamClient client = buildMockedClient();
61+
ProducerBuilderImpl builder = new ProducerBuilderImpl((HStreamClientKtImpl) client);
6362
Producer producer = builder.stream("test-stream").requestTimeoutMs(Long.MAX_VALUE).build();
6463
assertNotNull(producer);
6564
}

client/src/test/kotlin/io/hstream/HServerMock.kt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,16 @@ import io.hstream.impl.unaryCallWithCurrentUrls
1515
import io.hstream.internal.DeleteStreamRequest
1616
import io.hstream.internal.DescribeClusterResponse
1717
import io.hstream.internal.HStreamApiGrpc
18+
import io.hstream.internal.ListShardsRequest
19+
import io.hstream.internal.ListShardsResponse
1820
import io.hstream.internal.ListStreamsRequest
1921
import io.hstream.internal.ListStreamsResponse
2022
import io.hstream.internal.LookupResourceRequest
2123
import io.hstream.internal.LookupSubscriptionRequest
2224
import io.hstream.internal.LookupSubscriptionResponse
2325
import io.hstream.internal.ResourceType
2426
import io.hstream.internal.ServerNode
27+
import io.hstream.internal.Shard
2528
import io.hstream.internal.SpecialOffset
2629
import io.hstream.internal.StreamingFetchRequest
2730
import io.hstream.internal.StreamingFetchResponse
@@ -258,6 +261,22 @@ open class HServerMock(
258261
}
259262
}
260263
}
264+
265+
override fun listShards(request: ListShardsRequest?, responseObserver: StreamObserver<ListShardsResponse>?) {
266+
val streamName = request!!.streamName
267+
268+
responseObserver!!.onNext(
269+
ListShardsResponse.newBuilder()
270+
.addShards(
271+
Shard.newBuilder()
272+
.setStreamName(streamName)
273+
// TODO: add more fields
274+
.build()
275+
)
276+
.build()
277+
)
278+
responseObserver.onCompleted()
279+
}
261280
}
262281

263282
fun mockServiceImpl(hMetaMockCluster: HMetaMock, serverName: String, hServerMockImpl: Class<out HStreamApiGrpc.HStreamApiImplBase>): HStreamApiGrpc.HStreamApiImplBase {
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package io.hstream.impl
2+
3+
import io.hstream.HStreamDBClientException
4+
import io.hstream.buildMockedClient
5+
import org.junit.jupiter.api.Assertions.assertNotNull
6+
import org.junit.jupiter.api.Assertions.assertThrows
7+
import org.junit.jupiter.api.Test
8+
9+
class BufferedProducerBuilderImplTest {
10+
11+
@Test
12+
fun testBuildWithValidInput() {
13+
val client = buildMockedClient()
14+
val builder = BufferedProducerBuilderImpl(client as HStreamClientKtImpl)
15+
val producer = builder.stream("test-stream").requestTimeoutMs(1000).build()
16+
assertNotNull(producer)
17+
}
18+
19+
@Test
20+
fun testBuildWithMissingStreamName() {
21+
val client = buildMockedClient()
22+
val builder = BufferedProducerBuilderImpl(client as HStreamClientKtImpl)
23+
assertThrows(HStreamDBClientException::class.java) { builder.requestTimeoutMs(1000).build() }
24+
}
25+
26+
@Test
27+
fun testBuildWithInvalidRequestTimeoutMs() {
28+
val client = buildMockedClient()
29+
val builder = BufferedProducerBuilderImpl(client as HStreamClientKtImpl)
30+
assertThrows(
31+
IllegalArgumentException::class.java
32+
) { builder.stream("test-stream").requestTimeoutMs(-1).build() }
33+
}
34+
35+
@Test
36+
fun testBuildWithNullClient() {
37+
val builder = BufferedProducerBuilderImpl(null)
38+
assertThrows(
39+
NullPointerException::class.java
40+
) { builder.stream("test-stream").requestTimeoutMs(1000).build() }
41+
}
42+
43+
@Test
44+
fun testBuildWithDefaultRequestTimeoutMs() {
45+
val client = buildMockedClient()
46+
val builder = BufferedProducerBuilderImpl(client as HStreamClientKtImpl)
47+
val producer = builder.stream("test-stream").build()
48+
assertNotNull(producer)
49+
}
50+
51+
@Test
52+
fun testBuildWithMaxRequestTimeoutMs() {
53+
val client = buildMockedClient()
54+
val builder = BufferedProducerBuilderImpl(client as HStreamClientKtImpl)
55+
val producer = builder.stream("test-stream").requestTimeoutMs(Long.MAX_VALUE).build()
56+
assertNotNull(producer)
57+
}
58+
}

0 commit comments

Comments
 (0)