Skip to content

Commit 2081222

Browse files
committed
test coverage
1 parent 7310144 commit 2081222

File tree

10 files changed

+219
-52
lines changed

10 files changed

+219
-52
lines changed

src/main/java/io/nats/client/api/OrderedConsumerConfiguration.java

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import io.nats.client.support.*;
1717
import org.jspecify.annotations.NonNull;
18+
import org.jspecify.annotations.Nullable;
1819

1920
import java.time.ZonedDateTime;
2021
import java.util.ArrayList;
@@ -92,7 +93,9 @@ public String toJson() {
9293
* @return The Builder
9394
*/
9495
public OrderedConsumerConfiguration filterSubject(String filterSubject) {
95-
return filterSubjects(Collections.singletonList(filterSubject));
96+
return emptyAsNull(filterSubject) == null
97+
? filterSubjects((List<String>)null)
98+
: filterSubjects(Collections.singletonList(filterSubject));
9699
}
97100

98101
/**
@@ -103,8 +106,8 @@ public OrderedConsumerConfiguration filterSubject(String filterSubject) {
103106
*/
104107
public OrderedConsumerConfiguration filterSubjects(String... filterSubjects) {
105108
return filterSubjects == null
106-
? filterSubjects((List<String>)null)
107-
: filterSubjects(Arrays.asList(filterSubjects)); // Arrays.asList would throw a NPE
109+
? filterSubjects((List<String>)null) // Arrays.asList would throws a NPE if given a null
110+
: filterSubjects(Arrays.asList(filterSubjects));
108111
}
109112

110113
/**
@@ -176,7 +179,7 @@ public OrderedConsumerConfiguration replayPolicy(ReplayPolicy replayPolicy) {
176179
* @return The Builder
177180
*/
178181
public OrderedConsumerConfiguration headersOnly(Boolean headersOnly) {
179-
this.headersOnly = headersOnly != null && headersOnly ? true : null;
182+
this.headersOnly = headersOnly;
180183
return this;
181184
}
182185

@@ -190,38 +193,49 @@ public OrderedConsumerConfiguration consumerNamePrefix(String consumerNamePrefix
190193
return this;
191194
}
192195

196+
@Nullable
193197
public String getFilterSubject() {
194-
return filterSubjects == null || filterSubjects.size() != 1 ? null : filterSubjects.get(0);
198+
return filterSubjects.size() != 1 ? null : filterSubjects.get(0);
195199
}
196200

201+
@NonNull
197202
public List<String> getFilterSubjects() {
198203
return filterSubjects;
199204
}
200205

201206
public boolean hasMultipleFilterSubjects() {
202-
return filterSubjects != null && filterSubjects.size() > 1;
207+
return filterSubjects.size() > 1;
203208
}
204209

210+
@Nullable
205211
public DeliverPolicy getDeliverPolicy() {
206212
return deliverPolicy;
207213
}
208214

215+
@Nullable
209216
public Long getStartSequence() {
210217
return startSequence;
211218
}
212219

220+
@Nullable
213221
public ZonedDateTime getStartTime() {
214222
return startTime;
215223
}
216224

225+
@Nullable
217226
public ReplayPolicy getReplayPolicy() {
218227
return replayPolicy;
219228
}
220229

230+
@Nullable
221231
public Boolean getHeadersOnly() {
222232
return headersOnly;
223233
}
224234

235+
public boolean isHeadersOnly() {
236+
return headersOnly != null && headersOnly;
237+
}
238+
225239
public String getConsumerNamePrefix() {
226240
return consumerNamePrefix;
227241
}

src/main/java/io/nats/client/impl/ReaderListenerConsoleImpl.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@ public void protocol(String op, String string) {
2424

2525
@Override
2626
public void message(String op, Message message) {
27-
String text = op + " " + message.getSubject() + " " + message.getReplyTo() + " " +
28-
(message.getData() == null ? "<no data>" : "data length: " + message.getData().length);
27+
String text = op
28+
+ " " + message.getSubject()
29+
+ " " + message.getReplyTo()
30+
+ " data length: " + message.getData().length;
2931
if (message.isJetStream()) {
3032
System.out.println("RL/JS-Message " + text);
3133
}

src/main/java/io/nats/service/EndpointStats.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -247,10 +247,10 @@ public int hashCode() {
247247
int result = name != null ? name.hashCode() : 0;
248248
result = 31 * result + (subject != null ? subject.hashCode() : 0);
249249
result = 31 * result + (queueGroup != null ? queueGroup.hashCode() : 0);
250-
result = 31 * result + (int) (numRequests ^ (numRequests >>> 32));
251-
result = 31 * result + (int) (numErrors ^ (numErrors >>> 32));
252-
result = 31 * result + (int) (processingTime ^ (processingTime >>> 32));
253-
result = 31 * result + (int) (averageProcessingTime ^ (averageProcessingTime >>> 32));
250+
result = 31 * result + Long.hashCode(numRequests);
251+
result = 31 * result + Long.hashCode(numErrors);
252+
result = 31 * result + Long.hashCode(processingTime);
253+
result = 31 * result + Long.hashCode(averageProcessingTime);
254254
result = 31 * result + (lastError != null ? lastError.hashCode() : 0);
255255
result = 31 * result + (data != null ? data.hashCode() : 0);
256256
result = 31 * result + (started != null ? started.hashCode() : 0);

src/test/java/io/nats/client/api/ObjectStoreApiTests.java

Lines changed: 50 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.time.Duration;
2323
import java.time.ZonedDateTime;
2424
import java.util.ArrayList;
25+
import java.util.HashMap;
2526
import java.util.List;
2627
import java.util.Map;
2728

@@ -194,18 +195,30 @@ private void metaOptionsCoverage(ObjectMetaOptions metaOptions, ObjectMetaOption
194195
@SuppressWarnings({"SimplifiableAssertion", "ConstantConditions"})
195196
private void metaCoverage(ObjectLink link, ObjectLink link2) {
196197
List<ObjectMeta> list = new ArrayList<>();
197-
ObjectMeta meta1a = ObjectMeta.objectName("meta"); list.add(meta1a);
198-
ObjectMeta meta1b = ObjectMeta.objectName("meta"); list.add(meta1b);
199-
ObjectMeta meta1c = ObjectMeta.objectName("diff"); list.add(meta1c);
200-
ObjectMeta meta2a = ObjectMeta.builder("meta").description("desc").build(); list.add(meta2a);
201-
ObjectMeta meta2b = ObjectMeta.builder("meta").description("desc").build(); list.add(meta2b);
202-
ObjectMeta meta2c = ObjectMeta.builder("meta").description("diff").build(); list.add(meta2c);
203-
ObjectMeta meta3a = ObjectMeta.builder("meta").headers(new Headers().put("key", "data")).build(); list.add(meta3a);
204-
ObjectMeta meta3b = ObjectMeta.builder("meta").headers(new Headers().put("key", "data")).build(); list.add(meta3b);
205-
ObjectMeta meta3c = ObjectMeta.builder("meta").headers(new Headers().put("key", "diff")).build(); list.add(meta3c);
206-
ObjectMeta meta4a = ObjectMeta.builder("meta").link(link).build(); list.add(meta4a);
207-
ObjectMeta meta4b = ObjectMeta.builder("meta").link(link).build(); list.add(meta4b);
208-
ObjectMeta meta4c = ObjectMeta.builder("meta").link(link2).build(); list.add(meta4c);
198+
ObjectMeta meta1a = ObjectMeta.objectName("meta");
199+
list.add(meta1a);
200+
ObjectMeta meta1b = ObjectMeta.objectName("meta");
201+
list.add(meta1b);
202+
ObjectMeta meta1c = ObjectMeta.objectName("diff");
203+
list.add(meta1c);
204+
ObjectMeta meta2a = ObjectMeta.builder("meta").description("desc").build();
205+
list.add(meta2a);
206+
ObjectMeta meta2b = ObjectMeta.builder("meta").description("desc").build();
207+
list.add(meta2b);
208+
ObjectMeta meta2c = ObjectMeta.builder("meta").description("diff").build();
209+
list.add(meta2c);
210+
ObjectMeta meta3a = ObjectMeta.builder("meta").headers(new Headers().put("key", "data")).build();
211+
list.add(meta3a);
212+
ObjectMeta meta3b = ObjectMeta.builder("meta").headers(new Headers().put("key", "data")).build();
213+
list.add(meta3b);
214+
ObjectMeta meta3c = ObjectMeta.builder("meta").headers(new Headers().put("key", "diff")).build();
215+
list.add(meta3c);
216+
ObjectMeta meta4a = ObjectMeta.builder("meta").link(link).build();
217+
list.add(meta4a);
218+
ObjectMeta meta4b = ObjectMeta.builder("meta").link(link).build();
219+
list.add(meta4b);
220+
ObjectMeta meta4c = ObjectMeta.builder("meta").link(link2).build();
221+
list.add(meta4c);
209222

210223
ObjectMeta metaH = ObjectMeta.builder("meta").headers(new Headers().put("key", "data")).headers(null).build();
211224
assertEquals(0, metaH.getHeaders().size());
@@ -245,6 +258,31 @@ private void metaCoverage(ObjectLink link, ObjectLink link2) {
245258
}
246259
}
247260

261+
@Test
262+
public void testObjectMetaMetaCoverage() {
263+
ObjectMeta metaMeta1 = ObjectMeta.builder("metaMeta")
264+
.metadata(null)
265+
.build();
266+
assertNotNull(metaMeta1.getMetadata());
267+
assertEquals(0, metaMeta1.getMetadata().size());
268+
269+
Map<String, String> metadata = new HashMap<>();
270+
ObjectMeta metaMeta2 = ObjectMeta.builder("metaMeta")
271+
.metadata(metadata)
272+
.build();
273+
assertNotNull(metaMeta2.getMetadata());
274+
assertEquals(0, metaMeta2.getMetadata().size());
275+
assertEquals(metaMeta1, metaMeta2);
276+
277+
metadata.put("key", "value");
278+
ObjectMeta metaMeta3 = ObjectMeta.builder("metaMeta")
279+
.metadata(metadata)
280+
.build();
281+
assertNotNull(metaMeta3.getMetadata());
282+
assertEquals(1, metaMeta3.getMetadata().size());
283+
assertNotEquals(metaMeta1, metaMeta3);
284+
}
285+
248286
@SuppressWarnings({"SimplifiableAssertion", "ConstantConditions"})
249287
private void infoCoverage(ObjectLink link1, ObjectLink link2) {
250288
List<ObjectInfo> list = new ArrayList<>();

src/test/java/io/nats/client/api/StreamConfigurationTests.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,8 @@ public void testConstruction() {
198198
.firstSequence(testSc.getFirstSequence())
199199
.consumerLimits(testSc.getConsumerLimits())
200200
.allowMessageTtl(testSc.getAllowMessageTtl())
201+
.allowMessageSchedules(testSc.getAllowMsgSchedules())
202+
.allowMessageCounter(testSc.getAllowMessageCounter())
201203
.subjectDeleteMarkerTtl(testSc.getSubjectDeleteMarkerTtl())
202204
.allowMessageCounter(testSc.getAllowMessageCounter())
203205
;
@@ -301,6 +303,7 @@ public void testConstruction() {
301303
@SuppressWarnings("deprecation")
302304
@Test
303305
public void testConstructionInvalidsCoverage() {
306+
assertThrows(IllegalArgumentException.class, () -> StreamConfiguration.builder().name(null).build());
304307
assertThrows(IllegalArgumentException.class, () -> StreamConfiguration.builder().name(HAS_SPACE));
305308
assertThrows(IllegalArgumentException.class, () -> StreamConfiguration.builder().maxConsumers(0));
306309
assertThrows(IllegalArgumentException.class, () -> StreamConfiguration.builder().maxConsumers(-2));
@@ -321,6 +324,7 @@ public void testConstructionInvalidsCoverage() {
321324
assertThrows(IllegalArgumentException.class, () -> StreamConfiguration.builder().replicas(6));
322325
assertThrows(IllegalArgumentException.class, () -> StreamConfiguration.builder().duplicateWindow(Duration.ofNanos(-1)));
323326
assertThrows(IllegalArgumentException.class, () -> StreamConfiguration.builder().duplicateWindow(-1));
327+
assertThrows(IllegalArgumentException.class, () -> StreamConfiguration.builder().subjectDeleteMarkerTtl(1));
324328
}
325329

326330
@Test
@@ -607,6 +611,7 @@ private void validateTestStreamConfiguration(StreamConfiguration sc, boolean ser
607611
assertEquals(Duration.ofSeconds(50), sc.getConsumerLimits().getInactiveThreshold());
608612
assertEquals(42, sc.getConsumerLimits().getMaxAckPending());
609613

614+
assertTrue(sc.getAllowMsgSchedules());
610615
assertTrue(sc.getAllowMessageCounter());
611616
}
612617
}

src/test/java/io/nats/client/impl/ErrorListenerTests.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,17 @@ public void flowControlProcessed(Connection conn, JetStreamSubscription sub, Str
413413
assertTrue(pullStatusWarningFlag.get());
414414
assertTrue(pullStatusErrorFlag.get());
415415
assertTrue(flowControlProcessedFlag.get());
416+
417+
_cover(new ReaderListenerConsoleImpl());
418+
_cover(new ReadListener() {
419+
@Override
420+
public void protocol(String op, String string) {
421+
}
422+
423+
@Override
424+
public void message(String op, Message message) {
425+
}
426+
});
416427
}
417428

418429
private void _cover(ErrorListener el) {
@@ -426,4 +437,11 @@ private void _cover(ErrorListener el) {
426437
el.pullStatusError(null, null, null);
427438
el.flowControlProcessed(null, null, null, null);
428439
}
440+
441+
private void _cover(ReadListener rl) {
442+
rl.protocol("OP", null);
443+
rl.message("OP", new NatsMessage("subject", "replyTo", null));
444+
rl.message("OP", new NatsMessage("subject", "replyTo", "body".getBytes()));
445+
rl.message("OP", new NatsJetStreamMessage(null));
446+
}
429447
}

0 commit comments

Comments
 (0)