This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new 10768cf290 SonarQube bug fixes
10768cf290 is described below
commit 10768cf29040914551d3a21231a402475fb185aa
Author: James Bognar <[email protected]>
AuthorDate: Fri Feb 6 08:57:27 2026 -0500
SonarQube bug fixes
---
.../juneau/bean/swagger/ui/SwaggerUI_Test.java | 64 ++-------
.../juneau/commons/collections/Lists_Test.java | 57 ++++----
.../juneau/commons/collections/Maps_Test.java | 57 ++++----
.../juneau/commons/collections/Sets_Test.java | 57 ++++----
.../juneau/commons/inject/BasicBeanStore_Test.java | 59 ++++-----
.../apache/juneau/commons/io/LocalDir_Test.java | 55 ++++----
.../apache/juneau/commons/io/LocalFile_Test.java | 46 +++----
.../apache/juneau/commons/lang/AsciiMap_Test.java | 53 ++++----
.../apache/juneau/commons/lang/AsciiSet_Test.java | 27 ++--
.../apache/juneau/commons/lang/HashCode_Test.java | 28 ++--
.../apache/juneau/commons/lang/Version_Test.java | 146 ++++++++++-----------
.../juneau/commons/logging/LogRecord_Test.java | 32 +++--
.../commons/utils/ResourceBundleUtils_Test.java | 21 +--
13 files changed, 352 insertions(+), 350 deletions(-)
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/bean/swagger/ui/SwaggerUI_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/bean/swagger/ui/SwaggerUI_Test.java
index f7c8290494..aa85931f2f 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/bean/swagger/ui/SwaggerUI_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/bean/swagger/ui/SwaggerUI_Test.java
@@ -22,9 +22,13 @@ import static org.apache.juneau.junit.bct.BctAssertions.*;
import static org.junit.jupiter.api.Assertions.*;
import java.util.*;
+import java.util.stream.Stream;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
/**
* Testcase for {@link SwaggerUI}.
@@ -125,10 +129,9 @@ class SwaggerUI_Test extends TestBase {
);
}
- /**
- * Test method for Swagger document with parameters.
- */
- @Test void a04_swaggerWithParameters() throws Exception {
+ @ParameterizedTest
+ @MethodSource("swaggerEmptyPathsProvider")
+ void a04_swaggerWithEmptyPaths(String testName) throws Exception {
var swagger = swagger()
.setInfo(info("Test API", "1.0.0"))
.setPaths(new HashMap<>());
@@ -150,53 +153,12 @@ class SwaggerUI_Test extends TestBase {
);
}
- /**
- * Test method for Swagger document with responses.
- */
- @Test void a05_swaggerWithResponses() throws Exception {
- var swagger = swagger()
- .setInfo(info("Test API", "1.0.0"))
- .setPaths(new HashMap<>());
-
- assertString(
- """
- <div class='swagger-ui'>
- <style></style>
- <script type='text/javascript'><sp/></script>
- <table class='header'>
- <tr><th>Version:</th><td>1.0.0</td></tr>
- </table>
- <div class='tag-block tag-block-open'>
- <div class='tag-block-contents'></div>
- </div>
- </div>
- """.replaceAll("\\n\\s*", ""),
- new SwaggerUI().swap(bs, swagger)
- );
- }
-
- /**
- * Test method for Swagger document with models.
- */
- @Test void a06_swaggerWithModels() throws Exception {
- var swagger = swagger()
- .setInfo(info("Test API", "1.0.0"))
- .setPaths(new HashMap<>());
-
- assertString(
- """
- <div class='swagger-ui'>
- <style></style>
- <script type='text/javascript'><sp/></script>
- <table class='header'>
- <tr><th>Version:</th><td>1.0.0</td></tr>
- </table>
- <div class='tag-block tag-block-open'>
- <div class='tag-block-contents'></div>
- </div>
- </div>
- """.replaceAll("\\n\\s*", ""),
- new SwaggerUI().swap(bs, swagger)
+ static Stream<Arguments> swaggerEmptyPathsProvider() {
+ return Stream.of(
+ Arguments.of("parameters"),
+ Arguments.of("responses"),
+ Arguments.of("models"),
+ Arguments.of("empty")
);
}
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Lists_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Lists_Test.java
index 8f5bcfbcaa..fb50f83c18 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Lists_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Lists_Test.java
@@ -21,9 +21,13 @@ import static org.apache.juneau.junit.bct.BctAssertions.*;
import static org.junit.jupiter.api.Assertions.*;
import java.util.*;
+import java.util.stream.Stream;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
@SuppressWarnings("java:S4144")
class Lists_Test extends TestBase {
@@ -143,33 +147,36 @@ class Lists_Test extends TestBase {
// Sparse mode
//-----------------------------------------------------------------------------------------------------------------
- @Test
- void d01_sparse_empty() {
- var list = Lists.create(String.class)
- .sparse()
- .build();
-
- assertNull(list);
- }
-
- @Test
- void d02_sparse_notEmpty() {
- var list = Lists.create(String.class)
- .add("a")
- .sparse()
- .build();
-
- assertNotNull(list);
- assertSize(1, list);
+ @ParameterizedTest
+ @MethodSource("sparseProvider")
+ void d01_sparse(boolean sparse, boolean addItem, boolean expectNull,
int expectedSize) {
+ var builder = Lists.create(String.class);
+ if (sparse) {
+ builder.sparse();
+ }
+ if (addItem) {
+ builder.add("a");
+ }
+ var list = builder.build();
+
+ if (expectNull) {
+ assertNull(list);
+ } else {
+ assertNotNull(list);
+ if (expectedSize == 0) {
+ assertEmpty(list);
+ } else {
+ assertSize(expectedSize, list);
+ }
+ }
}
- @Test
- void d03_notSparse_empty() {
- var list = Lists.create(String.class)
- .build();
-
- assertNotNull(list);
- assertEmpty(list);
+ static Stream<Arguments> sparseProvider() {
+ return Stream.of(
+ Arguments.of(true, false, true, 0), // sparse_empty
+ Arguments.of(true, true, false, 1), // sparse_notEmpty
+ Arguments.of(false, false, false, 0) // notSparse_empty
+ );
}
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Maps_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Maps_Test.java
index 1ceb0b0dc9..5920949ce0 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Maps_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Maps_Test.java
@@ -21,10 +21,14 @@ import static org.apache.juneau.junit.bct.BctAssertions.*;
import static org.junit.jupiter.api.Assertions.*;
import java.util.*;
+import java.util.stream.Stream;
import org.apache.juneau.*;
import org.apache.juneau.junit.bct.annotations.*;
import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
@SuppressWarnings("java:S4144")
class Maps_Test extends TestBase {
@@ -226,33 +230,36 @@ class Maps_Test extends TestBase {
// Sparse mode
//-----------------------------------------------------------------------------------------------------------------
- @Test
- void d01_sparse_empty() {
- var map = Maps.create(String.class, Integer.class)
- .sparse()
- .build();
-
- assertNull(map);
- }
-
- @Test
- void d02_sparse_notEmpty() {
- var map = Maps.create(String.class, Integer.class)
- .add("a", 1)
- .sparse()
- .build();
-
- assertNotNull(map);
- assertSize(1, map);
+ @ParameterizedTest
+ @MethodSource("sparseProvider")
+ void d01_sparse(boolean sparse, boolean addItem, boolean expectNull,
int expectedSize) {
+ var builder = Maps.create(String.class, Integer.class);
+ if (sparse) {
+ builder.sparse();
+ }
+ if (addItem) {
+ builder.add("a", 1);
+ }
+ var map = builder.build();
+
+ if (expectNull) {
+ assertNull(map);
+ } else {
+ assertNotNull(map);
+ if (expectedSize == 0) {
+ assertEmpty(map);
+ } else {
+ assertSize(expectedSize, map);
+ }
+ }
}
- @Test
- void d03_notSparse_empty() {
- var map = Maps.create(String.class, Integer.class)
- .build();
-
- assertNotNull(map);
- assertEmpty(map);
+ static Stream<Arguments> sparseProvider() {
+ return Stream.of(
+ Arguments.of(true, false, true, 0), // sparse_empty
+ Arguments.of(true, true, false, 1), // sparse_notEmpty
+ Arguments.of(false, false, false, 0) // notSparse_empty
+ );
}
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Sets_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Sets_Test.java
index ec81e7e8eb..8ba73be5b3 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Sets_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/collections/Sets_Test.java
@@ -22,10 +22,14 @@ import static org.apache.juneau.junit.bct.BctAssertions.*;
import static org.junit.jupiter.api.Assertions.*;
import java.util.*;
+import java.util.stream.Stream;
import org.apache.juneau.*;
import org.apache.juneau.junit.bct.annotations.*;
import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
@SuppressWarnings("java:S4144")
class Sets_Test extends TestBase {
@@ -176,33 +180,36 @@ class Sets_Test extends TestBase {
// Sparse mode
//-----------------------------------------------------------------------------------------------------------------
- @Test
- void e01_sparse_empty() {
- var set = Sets.create(String.class)
- .sparse()
- .build();
-
- assertNull(set);
- }
-
- @Test
- void e02_sparse_notEmpty() {
- var set = Sets.create(String.class)
- .add("a")
- .sparse()
- .build();
-
- assertNotNull(set);
- assertSize(1, set);
+ @ParameterizedTest
+ @MethodSource("sparseProvider")
+ void e01_sparse(boolean sparse, boolean addItem, boolean expectNull,
int expectedSize) {
+ var builder = Sets.create(String.class);
+ if (sparse) {
+ builder.sparse();
+ }
+ if (addItem) {
+ builder.add("a");
+ }
+ var set = builder.build();
+
+ if (expectNull) {
+ assertNull(set);
+ } else {
+ assertNotNull(set);
+ if (expectedSize == 0) {
+ assertEmpty(set);
+ } else {
+ assertSize(expectedSize, set);
+ }
+ }
}
- @Test
- void e03_notSparse_empty() {
- var set = Sets.create(String.class)
- .build();
-
- assertNotNull(set);
- assertEmpty(set);
+ static Stream<Arguments> sparseProvider() {
+ return Stream.of(
+ Arguments.of(true, false, true, 0), // sparse_empty
+ Arguments.of(true, true, false, 1), // sparse_notEmpty
+ Arguments.of(false, false, false, 0) // notSparse_empty
+ );
}
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/inject/BasicBeanStore_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/inject/BasicBeanStore_Test.java
index a32f6ef534..7eeca55b27 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/inject/BasicBeanStore_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/inject/BasicBeanStore_Test.java
@@ -20,9 +20,13 @@ import static org.apache.juneau.commons.utils.Utils.*;
import static org.junit.jupiter.api.Assertions.*;
import java.util.*;
+import java.util.stream.Stream;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
@SuppressWarnings("java:S4144")
class BasicBeanStore_Test extends TestBase {
@@ -115,37 +119,24 @@ class BasicBeanStore_Test extends TestBase {
// addBean(Class, Object, String)
//====================================================================================================
- @Test
- void c01_addBean_named() {
- var store = new BasicBeanStore2(null);
- var bean = new TestBean("test1");
- store.addBean(TestBean.class, bean, "named1");
-
- var result = store.getBean(TestBean.class, "named1");
- assertTrue(result.isPresent());
- assertSame(bean, result.get());
- }
-
- @Test
- void c02_addBean_named_nullName() {
+ @ParameterizedTest
+ @MethodSource("addBeanNamedProvider")
+ void c01_addBean_named(String name, boolean useNamedGetter) {
var store = new BasicBeanStore2(null);
var bean = new TestBean("test1");
- store.addBean(TestBean.class, bean, null);
+ store.addBean(TestBean.class, bean, name);
- var result = store.getBean(TestBean.class);
+ var result = useNamedGetter ? store.getBean(TestBean.class,
name) : store.getBean(TestBean.class);
assertTrue(result.isPresent());
assertSame(bean, result.get());
}
- @Test
- void c03_addBean_named_emptyString() {
- var store = new BasicBeanStore2(null);
- var bean = new TestBean("test1");
- store.addBean(TestBean.class, bean, "");
-
- var result = store.getBean(TestBean.class);
- assertTrue(result.isPresent());
- assertSame(bean, result.get());
+ static Stream<Arguments> addBeanNamedProvider() {
+ return Stream.of(
+ Arguments.of("named1", true),
+ Arguments.of(null, false),
+ Arguments.of("", false)
+ );
}
@Test
@@ -602,18 +593,20 @@ class BasicBeanStore_Test extends TestBase {
assertFalse(store.hasBean(TestBean.class, "name1"));
}
- @Test
- void k02_hasBean_named_found() {
+ @ParameterizedTest
+ @MethodSource("hasBeanNamedProvider")
+ void k02_hasBean_named(String name, boolean expected) {
var store = new BasicBeanStore2(null);
- store.addBean(TestBean.class, new TestBean("test1"), "name1");
- assertTrue(store.hasBean(TestBean.class, "name1"));
+ store.addBean(TestBean.class, new TestBean("test1"), name);
+ assertEquals(expected, store.hasBean(TestBean.class, name));
}
- @Test
- void k03_hasBean_named_nullName() {
- var store = new BasicBeanStore2(null);
- store.addBean(TestBean.class, new TestBean("test1"), null);
- assertTrue(store.hasBean(TestBean.class, null));
+ static Stream<Arguments> hasBeanNamedProvider() {
+ return Stream.of(
+ Arguments.of("name1", true),
+ Arguments.of(null, true),
+ Arguments.of("", true)
+ );
}
@Test
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/io/LocalDir_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/io/LocalDir_Test.java
index 4abccecc17..f8474e4fde 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/commons/io/LocalDir_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/commons/io/LocalDir_Test.java
@@ -19,9 +19,13 @@ package org.apache.juneau.commons.io;
import static org.junit.jupiter.api.Assertions.*;
import java.nio.file.*;
+import java.util.stream.Stream;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
class LocalDir_Test extends TestBase {
@@ -44,35 +48,28 @@ class LocalDir_Test extends TestBase {
//====================================================================================================
// Constructor tests - classpath
//====================================================================================================
- @Test void b01_constructorWithClassAndPath_null() {
- var dir = new LocalDir(LocalDir_Test.class, null);
- assertNotNull(dir);
- }
-
- @Test void b02_constructorWithClassAndPath_empty() {
- var dir = new LocalDir(LocalDir_Test.class, "");
- assertNotNull(dir);
- }
-
- @Test void b03_constructorWithClassAndPath_absolute() {
- var dir = new LocalDir(LocalDir_Test.class, "/files");
- assertNotNull(dir);
- }
-
- @Test void b04_constructorWithClassAndPath_relative() {
- var dir = new LocalDir(LocalDir_Test.class, "files");
- assertNotNull(dir);
- }
-
- @Test void b05_constructorWithClassAndPath_root() {
- var dir = new LocalDir(LocalDir_Test.class, "/");
- assertNotNull(dir);
- }
-
- @Test void b06_constructorWithClassAndPath_nullClass() {
- assertThrows(IllegalArgumentException.class, () -> {
- new LocalDir((Class<?>)null, "path");
- });
+ @ParameterizedTest
+ @MethodSource("constructorWithClassAndPathProvider")
+ void b01_constructorWithClassAndPath(String path, Class<?> clazz,
Class<? extends Throwable> expectedException) {
+ if (expectedException != null) {
+ assertThrows(expectedException, () -> {
+ new LocalDir(clazz, path);
+ });
+ } else {
+ var dir = new LocalDir(clazz != null ? clazz :
LocalDir_Test.class, path);
+ assertNotNull(dir);
+ }
+ }
+
+ static Stream<Arguments> constructorWithClassAndPathProvider() {
+ return Stream.of(
+ Arguments.of(null, LocalDir_Test.class, null),
+ Arguments.of("", LocalDir_Test.class, null),
+ Arguments.of("/files", LocalDir_Test.class, null),
+ Arguments.of("files", LocalDir_Test.class, null),
+ Arguments.of("/", LocalDir_Test.class, null),
+ Arguments.of("path", null,
IllegalArgumentException.class)
+ );
}
@Test void b07_constructorWithClassAndPath_trailingSlashes() {
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/io/LocalFile_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/io/LocalFile_Test.java
index 122d2c3108..ee9dbfa4cd 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/io/LocalFile_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/io/LocalFile_Test.java
@@ -22,9 +22,13 @@ import static org.junit.jupiter.api.Assertions.*;
import java.io.*;
import java.nio.file.*;
import java.util.*;
+import java.util.stream.Stream;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
@SuppressWarnings("java:S4144")
class LocalFile_Test extends TestBase {
@@ -55,31 +59,27 @@ class LocalFile_Test extends TestBase {
//====================================================================================================
// Constructor tests - classpath
//====================================================================================================
- @Test void b01_constructorWithClassAndPath() {
- var file = new LocalFile(LocalFile_Test.class,
"files/Test3.properties");
- assertEquals("Test3.properties", file.getName());
- }
-
- @Test void b02_constructorWithClassAndPath_noSlash() {
- var file = new LocalFile(LocalFile_Test.class,
"Test3.properties");
- assertEquals("Test3.properties", file.getName());
- }
-
- @Test void b03_constructorWithClassAndPath_nestedPath() {
- var file = new LocalFile(LocalFile_Test.class,
"files/subdir/Test3.properties");
- assertEquals("Test3.properties", file.getName());
- }
-
- @Test void b04_constructorWithClassAndPath_nullClass() {
- assertThrows(IllegalArgumentException.class, () -> {
- new LocalFile((Class<?>)null, "path");
- });
+ @ParameterizedTest
+ @MethodSource("constructorWithClassAndPathProvider")
+ void b01_constructorWithClassAndPath(String path, String expectedName,
Class<?> clazz, Class<? extends Throwable> expectedException) {
+ if (expectedException != null) {
+ assertThrows(expectedException, () -> {
+ new LocalFile(clazz, path);
+ });
+ } else {
+ var file = new LocalFile(clazz != null ? clazz :
LocalFile_Test.class, path);
+ assertEquals(expectedName, file.getName());
+ }
}
- @Test void b05_constructorWithClassAndPath_nullPath() {
- assertThrows(IllegalArgumentException.class, () -> {
- new LocalFile(LocalFile_Test.class, null);
- });
+ static Stream<Arguments> constructorWithClassAndPathProvider() {
+ return Stream.of(
+ Arguments.of("files/Test3.properties",
"Test3.properties", LocalFile_Test.class, null),
+ Arguments.of("Test3.properties", "Test3.properties",
LocalFile_Test.class, null),
+ Arguments.of("files/subdir/Test3.properties",
"Test3.properties", LocalFile_Test.class, null),
+ Arguments.of("path", null, null,
IllegalArgumentException.class),
+ Arguments.of(null, null, LocalFile_Test.class,
IllegalArgumentException.class)
+ );
}
//====================================================================================================
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiMap_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiMap_Test.java
index ef8bf98177..73cd2afbc0 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiMap_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiMap_Test.java
@@ -18,7 +18,12 @@ package org.apache.juneau.commons.lang;
import static org.junit.jupiter.api.Assertions.*;
+import java.util.stream.Stream;
+
import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
/**
* Tests for {@link AsciiMap}.
@@ -56,18 +61,23 @@ class AsciiMap_Test {
assertEquals("value2", map.get('a'));
}
- @Test
- void a04_append_nullValue() {
+ @ParameterizedTest
+ @MethodSource("appendValueProvider")
+ void a04_append_value(String value, String expected) {
var map = new AsciiMap();
- map.append('a', null);
- assertNull(map.get('a'));
+ map.append('a', value);
+ if (expected == null) {
+ assertNull(map.get('a'));
+ } else {
+ assertEquals(expected, map.get('a'));
+ }
}
- @Test
- void a05_append_emptyString() {
- var map = new AsciiMap();
- map.append('a', "");
- assertEquals("", map.get('a'));
+ static Stream<Arguments> appendValueProvider() {
+ return Stream.of(
+ Arguments.of(null, null),
+ Arguments.of("", "")
+ );
}
//====================================================================================================
@@ -276,25 +286,20 @@ class AsciiMap_Test {
assertTrue(map.contains("abc"));
}
- @Test
- void d02_contains_CharSequence_notPresent() {
- var map = new AsciiMap();
- map.append('a', "value1");
- assertFalse(map.contains("xyz"));
- }
-
- @Test
- void d03_contains_CharSequence_null() {
+ @ParameterizedTest
+ @MethodSource("containsNotPresentProvider")
+ void d02_contains_CharSequence_notPresent(CharSequence input) {
var map = new AsciiMap();
map.append('a', "value1");
- assertFalse(map.contains((CharSequence)null));
+ assertFalse(map.contains(input));
}
- @Test
- void d04_contains_CharSequence_empty() {
- var map = new AsciiMap();
- map.append('a', "value1");
- assertFalse(map.contains(""));
+ static Stream<Arguments> containsNotPresentProvider() {
+ return Stream.of(
+ Arguments.of("xyz"),
+ Arguments.of((CharSequence)null),
+ Arguments.of("")
+ );
}
@Test
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiSet_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiSet_Test.java
index 4476de7fcb..16c507ac38 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiSet_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/AsciiSet_Test.java
@@ -18,8 +18,13 @@ package org.apache.juneau.commons.lang;
import static org.junit.jupiter.api.Assertions.*;
+import java.util.stream.Stream;
+
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
/**
* Tests for {@link AsciiSet}.
@@ -584,17 +589,23 @@ class AsciiSet_Test extends TestBase {
assertFalse(set.containsOnly("xyz"));
}
- @Test
- void j03_containsOnly_null() {
+ @ParameterizedTest
+ @MethodSource("containsOnlyProvider")
+ void j03_containsOnly(String input, boolean expected) {
var set = AsciiSet.of("abc");
- assertFalse(set.containsOnly(null));
+ if (input == null) {
+ assertFalse(set.containsOnly(null));
+ } else {
+ assertEquals(expected, set.containsOnly(input));
+ }
}
- @Test
- void j04_containsOnly_empty() {
- var set = AsciiSet.of("abc");
- // Empty string should return true (all characters in empty
string are in the set)
- assertTrue(set.containsOnly(""));
+ static Stream<Arguments> containsOnlyProvider() {
+ return Stream.of(
+ Arguments.of(null, false),
+ Arguments.of("", true), // Empty string should return
true (all characters in empty string are in the set)
+ Arguments.of("a", true)
+ );
}
@Test
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/HashCode_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/HashCode_Test.java
index 17824404e3..8b53723928 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/HashCode_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/HashCode_Test.java
@@ -20,9 +20,13 @@ import static
org.apache.juneau.commons.utils.CollectionUtils.*;
import static org.junit.jupiter.api.Assertions.*;
import java.util.*;
+import java.util.stream.Stream;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
/**
* Tests for {@link HashCode}.
@@ -97,11 +101,20 @@ class HashCode_Test extends TestBase {
// add(int) tests
//====================================================================================================
- @Test
- void c01_addInt_single() {
+ @ParameterizedTest
+ @MethodSource("addIntProvider")
+ void c01_addInt(int value, int expected) {
var hc = HashCode.create();
- hc.add(42);
- assertEquals(31 * 1 + 42, hc.get());
+ hc.add(value);
+ assertEquals(expected, hc.get());
+ }
+
+ static Stream<Arguments> addIntProvider() {
+ return Stream.of(
+ Arguments.of(42, 31 * 1 + 42),
+ Arguments.of(0, 31 * 1 + 0),
+ Arguments.of(-1, 31 * 1 + (-1))
+ );
}
@Test
@@ -112,13 +125,6 @@ class HashCode_Test extends TestBase {
assertEquals(expected, hc.get());
}
- @Test
- void c03_addInt_zero() {
- var hc = HashCode.create();
- hc.add(0);
- assertEquals(31 * 1 + 0, hc.get());
- }
-
@Test
void c04_addInt_negative() {
var hc = HashCode.create();
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/Version_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/Version_Test.java
index 5da04730ce..75846fcb05 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/Version_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/Version_Test.java
@@ -22,9 +22,13 @@ import static org.apache.juneau.junit.bct.BctAssertions.*;
import static org.junit.jupiter.api.Assertions.*;
import java.util.*;
+import java.util.stream.Stream;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
@SuppressWarnings("java:S4144")
class Version_Test extends TestBase {
@@ -120,34 +124,38 @@ class Version_Test extends TestBase {
assertEquals(v1, v1);
}
- @Test
- void b02_equalsObject_sameVersion() {
- var v1 = of("1.2.3");
- var v2 = of("1.2.3");
- assertEquals(v1, v2);
- assertEquals(v2, v1);
- }
-
- @Test
- void b03_equalsObject_differentVersions() {
- var v1 = of("1.2.3");
- var v2 = of("1.2.4");
- assertNotEquals(v1, v2);
- assertNotEquals(v2, v1);
+ @ParameterizedTest
+ @MethodSource("equalsObjectProvider")
+ void b02_equalsObject(String version1, String version2, boolean
expectedEqual, boolean checkNull) {
+ var v1 = of(version1);
+ if (checkNull) {
+ // equals(Object) should return false for null
+ // The instanceof check should prevent any null access
+ try {
+ assertNotEquals(v1, (Object)null);
+ } catch (NullPointerException e) {
+ // If there's a bug in the implementation,
we'll catch it here
+ // But ideally this should not throw
+ fail("equals(Object) should handle null without
throwing NullPointerException");
+ }
+ } else {
+ var v2 = of(version2);
+ if (expectedEqual) {
+ assertEquals(v1, v2);
+ assertEquals(v2, v1);
+ } else {
+ assertNotEquals(v1, v2);
+ assertNotEquals(v2, v1);
+ }
+ }
}
- @Test
- void b04_equalsObject_null() {
- var v1 = of("1.2.3");
- // equals(Object) should return false for null
- // The instanceof check should prevent any null access
- try {
- assertNotEquals(v1, (Object)null);
- } catch (NullPointerException e) {
- // If there's a bug in the implementation, we'll catch
it here
- // But ideally this should not throw
- fail("equals(Object) should handle null without
throwing NullPointerException");
- }
+ static Stream<Arguments> equalsObjectProvider() {
+ return Stream.of(
+ Arguments.of("1.2.3", "1.2.3", true, false),
+ Arguments.of("1.2.3", "1.2.4", false, false),
+ Arguments.of("1.2.3", null, false, true)
+ );
}
@Test
@@ -225,60 +233,44 @@ class Version_Test extends TestBase {
assertEquals(hashCode1, hashCode2);
}
- @Test
- void c02_hashCode_sameVersion() {
- var v1 = of("1.2.3");
- var v2 = of("1.2.3");
- assertEquals(v1.hashCode(), v2.hashCode());
- }
-
- @Test
- void c03_hashCode_differentVersions() {
- var v1 = of("1.2.3");
- var v2 = of("1.2.4");
- // Different versions may have same hashcode (collision), but
usually different
- // We just verify both produce valid hashcodes
- assertDoesNotThrow(() -> {
- v1.hashCode();
- v2.hashCode();
- });
- }
-
- @Test
- void c04_hashCode_equalsContract() {
- var v1 = of("1.2.3");
- var v2 = of("1.2.3");
- // If two objects are equal, they must have the same hashcode
- if (v1.equals(v2)) {
- assertEquals(v1.hashCode(), v2.hashCode());
+ @ParameterizedTest
+ @MethodSource("hashCodeProvider")
+ void c02_hashCode(String version1, String version2, boolean
checkEquality, boolean checkConsistency, boolean checkDifferent) {
+ var v1 = of(version1);
+ if (checkConsistency) {
+ // Consistency check - same object should return same
hashcode
+ var hashCode1 = v1.hashCode();
+ var hashCode2 = v1.hashCode();
+ assertEquals(hashCode1, hashCode2);
+ } else if (version2 != null) {
+ var v2 = of(version2);
+ if (checkEquality) {
+ // Same versions should have same hashcode
+ assertEquals(v1.hashCode(), v2.hashCode());
+ } else if (checkDifferent) {
+ // Different versions - just verify both
produce valid hashcodes
+ assertDoesNotThrow(() -> {
+ v1.hashCode();
+ v2.hashCode();
+ });
+ } else {
+ // Equals contract - if equal, same hashcode
+ if (v1.equals(v2)) {
+ assertEquals(v1.hashCode(),
v2.hashCode());
+ }
+ }
}
}
- @Test
- void c05_hashCode_differentLengths() {
- var v1 = of("1.2");
- var v2 = of("1.2.0");
- // These are equal according to equals(Version), so should have
same hashcode
- // But hashCode uses Arrays.hashCode which considers length, so
they may differ
- // We just verify both produce valid hashcodes
- assertDoesNotThrow(() -> {
- v1.hashCode();
- v2.hashCode();
- });
- }
-
- @Test
- void c06_hashCode_singlePart() {
- var v1 = of("1");
- var v2 = of("1");
- assertEquals(v1.hashCode(), v2.hashCode());
- }
-
- @Test
- void c07_hashCode_emptyVersion() {
- var v1 = of("");
- var v2 = of("");
- assertEquals(v1.hashCode(), v2.hashCode());
+ static Stream<Arguments> hashCodeProvider() {
+ return Stream.of(
+ Arguments.of("1.2.3", "1.2.3", true, false, false),
// sameVersion
+ Arguments.of("1.2.3", "1.2.4", false, false, true), //
differentVersions
+ Arguments.of("1.2.3", "1.2.3", false, false, false), //
equalsContract
+ Arguments.of("1.2", "1.2.0", false, false, true), //
differentLengths
+ Arguments.of("1", "1", true, false, false),
// singlePart
+ Arguments.of("", "", true, false, false)
// emptyVersion
+ );
}
@Test
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/logging/LogRecord_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/logging/LogRecord_Test.java
index 9aa275372b..a356b5ff26 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/logging/LogRecord_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/logging/LogRecord_Test.java
@@ -19,9 +19,13 @@ package org.apache.juneau.commons.logging;
import static org.junit.jupiter.api.Assertions.*;
import java.util.logging.Level;
+import java.util.stream.Stream;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
/**
* Tests for {@link LogRecord}.
@@ -169,21 +173,27 @@ class LogRecord_Test extends TestBase {
assertTrue(formatted.contains("User logged in"));
}
- @Test void d02_formatted_timestamp() {
+ @ParameterizedTest
+ @MethodSource("formattedProvider")
+ void d02_formatted(String pattern, String expectedPattern) {
var rec = new LogRecord("test.logger", Level.INFO, "Message",
null, null);
- var formatted = rec.formatted("{timestamp}");
- // Should be ISO8601 format
-
assertTrue(formatted.matches("\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}[+-]\\d{4}"));
+ var formatted = rec.formatted(pattern);
+ if (expectedPattern != null) {
+ // Should match expected pattern (e.g., ISO8601 format)
+ assertTrue(formatted.matches(expectedPattern));
+ } else {
+ // Should be formatted date (not null)
+ assertNotNull(formatted);
+ assertFalse(formatted.isEmpty());
+ }
}
- @Test void d03_formatted_date() {
- var rec = new LogRecord("test.logger", Level.INFO, "Message",
null, null);
-
- var formatted = rec.formatted("{date}");
- // Should be formatted date (not null)
- assertNotNull(formatted);
- assertFalse(formatted.isEmpty());
+ static Stream<Arguments> formattedProvider() {
+ return Stream.of(
+ Arguments.of("{timestamp}",
"\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}[+-]\\d{4}"),
+ Arguments.of("{date}", null) // null means just check
not null and not empty
+ );
}
@Test void d04_formatted_classAndMethod() {
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/commons/utils/ResourceBundleUtils_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/commons/utils/ResourceBundleUtils_Test.java
index 034ff79c29..23ab163cde 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/commons/utils/ResourceBundleUtils_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/commons/utils/ResourceBundleUtils_Test.java
@@ -19,9 +19,13 @@ package org.apache.juneau.commons.utils;
import static org.junit.jupiter.api.Assertions.*;
import java.util.*;
+import java.util.stream.Stream;
import org.apache.juneau.*;
import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
/**
* Tests for {@link ResourceBundleUtils}.
@@ -80,18 +84,19 @@ class ResourceBundleUtils_Test extends TestBase {
assertEquals("value1", bundle.getString("key1"));
}
- @Test
- void a06_findBundle_nonexistentBundle() {
+ @ParameterizedTest
+ @MethodSource("findBundleNonexistentProvider")
+ void a06_findBundle_nonexistentBundle(Locale locale) {
var loader = getClass().getClassLoader();
- var bundle =
ResourceBundleUtils.findBundle("nonexistent.Bundle", Locale.getDefault(),
loader);
+ var bundle =
ResourceBundleUtils.findBundle("nonexistent.Bundle", locale, loader);
assertNull(bundle);
}
- @Test
- void a07_findBundle_nonexistentBundle_differentLocale() {
- var loader = getClass().getClassLoader();
- var bundle =
ResourceBundleUtils.findBundle("nonexistent.Bundle", Locale.JAPANESE, loader);
- assertNull(bundle);
+ static Stream<Arguments> findBundleNonexistentProvider() {
+ return Stream.of(
+ Arguments.of(Locale.getDefault()),
+ Arguments.of(Locale.JAPANESE)
+ );
}
@Test