This is an automated email from the ASF dual-hosted git repository.
dongjoon pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/spark-kubernetes-operator.git
The following commit(s) were added to refs/heads/main by this push:
new 7989344 [SPARK-53872] Revisit `JUnit` assert usage in test cases
7989344 is described below
commit 798934429505f3bae2acc015d1e634389d3cbb66
Author: Dongjoon Hyun <[email protected]>
AuthorDate: Fri Oct 10 14:39:54 2025 -0700
[SPARK-53872] Revisit `JUnit` assert usage in test cases
### What changes were proposed in this pull request?
This PR aims to revisit `JUnit` assertion usage in test cases after
upgrading to `JUnit 6`.
- #383
### Why are the changes needed?
There are three cases:
1. Fix wrong usage of `assertEquals`: The first parameter is the expected
value.
```java
- assertEquals(previousGeneration2, 1L);
+ assertEquals(1L, previousGeneration2);
```
2. `assertNull` is better than `assertEquals(null, *)`.
```java
- assertEquals(null, spec1.runtimeVersions.jdkVersion);
- assertEquals(null, spec1.runtimeVersions.scalaVersion);
- assertEquals(null, spec1.runtimeVersions.sparkVersion);
+ assertNull(spec1.runtimeVersions.jdkVersion);
+ assertNull(spec1.runtimeVersions.scalaVersion);
+ assertNull(spec1.runtimeVersions.sparkVersion);
```
3. `assertInstanceOf` is more intuitive than `assertTrue(... instanceof
...)`.
```java
- assertTrue(constructorArgs.get(conf).get(0) instanceof SparkConf);
+ assertInstanceOf(SparkConf.class, constructorArgs.get(conf).get(0));
```
### Does this PR introduce _any_ user-facing change?
No. This is a test case fix and improvement.
### How was this patch tested?
Pass the CIs.
### Was this patch authored or co-authored using generative AI tooling?
No.
Closes #384 from dongjoon-hyun/SPARK-53872.
Authored-by: Dongjoon Hyun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
---
.../org/apache/spark/k8s/operator/spec/ClusterSpecTest.java | 7 ++++---
.../apache/spark/k8s/operator/metrics/MetricsSystemTest.java | 4 ++--
.../operator/metrics/healthcheck/SentinelManagerTest.java | 12 ++++++------
.../metrics/source/KubernetesMetricsInterceptorTest.java | 4 ++--
.../operator/metrics/source/OperatorJosdkMetricsTest.java | 2 +-
.../apache/spark/k8s/operator/probe/ProbeServiceTest.java | 4 ++--
.../spark/k8s/operator/SparkAppSubmissionWorkerTest.java | 6 +++---
7 files changed, 20 insertions(+), 19 deletions(-)
diff --git
a/spark-operator-api/src/test/java/org/apache/spark/k8s/operator/spec/ClusterSpecTest.java
b/spark-operator-api/src/test/java/org/apache/spark/k8s/operator/spec/ClusterSpecTest.java
index b96455a..5a125bd 100644
---
a/spark-operator-api/src/test/java/org/apache/spark/k8s/operator/spec/ClusterSpecTest.java
+++
b/spark-operator-api/src/test/java/org/apache/spark/k8s/operator/spec/ClusterSpecTest.java
@@ -20,6 +20,7 @@
package org.apache.spark.k8s.operator.spec;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
import org.junit.jupiter.api.Test;
@@ -34,9 +35,9 @@ class ClusterSpecTest {
@Test
void testInitSpecWithDefaults() {
ClusterSpec spec1 = new ClusterSpec();
- assertEquals(null, spec1.runtimeVersions.jdkVersion);
- assertEquals(null, spec1.runtimeVersions.scalaVersion);
- assertEquals(null, spec1.runtimeVersions.sparkVersion);
+ assertNull(spec1.runtimeVersions.jdkVersion);
+ assertNull(spec1.runtimeVersions.scalaVersion);
+ assertNull(spec1.runtimeVersions.sparkVersion);
assertEquals(0, spec1.clusterTolerations.instanceConfig.initWorkers);
assertEquals(0, spec1.clusterTolerations.instanceConfig.minWorkers);
assertEquals(0, spec1.clusterTolerations.instanceConfig.maxWorkers);
diff --git
a/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/MetricsSystemTest.java
b/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/MetricsSystemTest.java
index 838ea19..cf10661 100644
---
a/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/MetricsSystemTest.java
+++
b/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/MetricsSystemTest.java
@@ -63,8 +63,8 @@ class MetricsSystemTest {
Sink mockSink = mockSinkOptional.get();
metricsSystem.stop();
MockSink sink = (MockSink) mockSink;
- assertEquals(sink.getPollPeriod(), 10);
- assertEquals(sink.getTimeUnit(), TimeUnit.SECONDS);
+ assertEquals(10, sink.getPollPeriod());
+ assertEquals(TimeUnit.SECONDS, sink.getTimeUnit());
}
@Test
diff --git
a/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/healthcheck/SentinelManagerTest.java
b/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/healthcheck/SentinelManagerTest.java
index 02b6d35..b9e7e06 100644
---
a/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/healthcheck/SentinelManagerTest.java
+++
b/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/healthcheck/SentinelManagerTest.java
@@ -109,7 +109,7 @@ class SentinelManagerTest {
kubernetesClient.resources(SparkApplication.class).inNamespace(DEFAULT).list();
SparkApplication sparkApplication = crList.getItems().get(0);
Long generation = sparkApplication.getMetadata().getGeneration();
- assertEquals(generation, 1L);
+ assertEquals(1L, generation);
// Spark Reconciler Handle Sentinel Resources at the first time
var sentinelManager = new SentinelManager<SparkApplication>();
@@ -120,12 +120,12 @@ class SentinelManagerTest {
Map<String, String> sparkConf2 = new
HashMap<>(sparkApplication2.getSpec().getSparkConf());
long generation2 = sparkApplication2.getMetadata().getGeneration();
- assertEquals(sparkConf2.get(Constants.SENTINEL_RESOURCE_DUMMY_FIELD), "1");
- assertEquals(generation2, 2L);
+ assertEquals("1", sparkConf2.get(Constants.SENTINEL_RESOURCE_DUMMY_FIELD));
+ assertEquals(2L, generation2);
var state2 =
sentinelManager.getSentinelResources().get(ResourceID.fromResource(mockApp));
long previousGeneration2 = state2.previousGeneration;
assertTrue(sentinelManager.allSentinelsAreHealthy());
- assertEquals(previousGeneration2, 1L);
+ assertEquals(1L, previousGeneration2);
Thread.sleep(Duration.ofSeconds(SENTINEL_RESOURCE_RECONCILIATION_DELAY_SECONDS
* 2).toMillis());
List<SparkApplication> crList3 =
@@ -194,8 +194,8 @@ class SentinelManagerTest {
sentinelManager.handleSentinelResourceReconciliation(sparkApplication1,
kubernetesClient);
sentinelManager.handleSentinelResourceReconciliation(sparkApplication2,
kubernetesClient);
assertEquals(
- sentinelManager.getSentinelResources().size(),
2,
+ sentinelManager.getSentinelResources().size(),
"Sentinel Manager should watch on resources in two namespaces");
assertTrue(
sentinelManager.allSentinelsAreHealthy(), "Sentinel Manager should
report healthy");
@@ -206,8 +206,8 @@ class SentinelManagerTest {
"Sentinel Manager should report healthy after one namespace is "
+ "removed from the watch");
assertEquals(
- sentinelManager.getSentinelResources().size(),
1,
+ sentinelManager.getSentinelResources().size(),
"Sentinel Manager should only watch on one namespace");
}
}
diff --git
a/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/source/KubernetesMetricsInterceptorTest.java
b/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/source/KubernetesMetricsInterceptorTest.java
index 6f71b74..49b1d6e 100644
---
a/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/source/KubernetesMetricsInterceptorTest.java
+++
b/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/source/KubernetesMetricsInterceptorTest.java
@@ -94,9 +94,9 @@ class KubernetesMetricsInterceptorTest {
.forEach(
name -> {
Meter metric = (Meter) metrics2.get(name);
- Assertions.assertEquals(metric.getCount(), 1);
+ Assertions.assertEquals(1, metric.getCount());
});
- Assertions.assertEquals(((Meter)
metrics2.get("http.request")).getCount(), 2);
+ Assertions.assertEquals(2, ((Meter)
metrics2.get("http.request")).getCount());
client.resource(sparkApplication).delete();
}
}
diff --git
a/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/source/OperatorJosdkMetricsTest.java
b/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/source/OperatorJosdkMetricsTest.java
index b7f1b8a..b5e7441 100644
---
a/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/source/OperatorJosdkMetricsTest.java
+++
b/spark-operator/src/test/java/org/apache/spark/k8s/operator/metrics/source/OperatorJosdkMetricsTest.java
@@ -76,7 +76,7 @@ class OperatorJosdkMetricsTest {
try {
operatorMetrics.timeControllerExecution(failedExecution);
} catch (Exception e) {
- assertEquals(e.getMessage(), "Foo exception");
+ assertEquals("Foo exception", e.getMessage());
assertEquals(8, metrics.size());
assertTrue(metrics.containsKey("sparkapplication.test-controller.reconcile.failure"));
assertTrue(
diff --git
a/spark-operator/src/test/java/org/apache/spark/k8s/operator/probe/ProbeServiceTest.java
b/spark-operator/src/test/java/org/apache/spark/k8s/operator/probe/ProbeServiceTest.java
index 8afd5ea..f960d7a 100644
---
a/spark-operator/src/test/java/org/apache/spark/k8s/operator/probe/ProbeServiceTest.java
+++
b/spark-operator/src/test/java/org/apache/spark/k8s/operator/probe/ProbeServiceTest.java
@@ -117,7 +117,7 @@ class ProbeServiceTest {
HttpURLConnection connection = (HttpURLConnection) u.openConnection();
connection.setConnectTimeout(100000);
connection.connect();
- assertEquals(connection.getResponseCode(), HTTP_OK, "Health Probe should
return HTTP_OK");
+ assertEquals(HTTP_OK, connection.getResponseCode(), "Health Probe should
return HTTP_OK");
}
private void hitStartedUpEndpoint() throws IOException,
MalformedURLException {
@@ -125,6 +125,6 @@ class ProbeServiceTest {
HttpURLConnection connection = (HttpURLConnection) u.openConnection();
connection.setConnectTimeout(100000);
connection.connect();
- assertEquals(connection.getResponseCode(), HTTP_OK, "operators are not
ready");
+ assertEquals(HTTP_OK, connection.getResponseCode(), "operators are not
ready");
}
}
diff --git
a/spark-submission-worker/src/test/java/org/apache/spark/k8s/operator/SparkAppSubmissionWorkerTest.java
b/spark-submission-worker/src/test/java/org/apache/spark/k8s/operator/SparkAppSubmissionWorkerTest.java
index 4376b28..a1abde1 100644
---
a/spark-submission-worker/src/test/java/org/apache/spark/k8s/operator/SparkAppSubmissionWorkerTest.java
+++
b/spark-submission-worker/src/test/java/org/apache/spark/k8s/operator/SparkAppSubmissionWorkerTest.java
@@ -79,7 +79,7 @@ class SparkAppSubmissionWorkerTest {
assertEquals(6, constructorArgs.get(conf).size());
// validate SparkConf with override
- assertTrue(constructorArgs.get(conf).get(0) instanceof SparkConf);
+ assertInstanceOf(SparkConf.class, constructorArgs.get(conf).get(0));
SparkConf createdConf = (SparkConf) constructorArgs.get(conf).get(0);
assertEquals("bar", createdConf.get("foo"));
assertEquals("5", createdConf.get("spark.executor.instances"));
@@ -90,13 +90,13 @@ class SparkAppSubmissionWorkerTest {
"namespace from CR takes highest precedence");
// validate main resources
- assertTrue(constructorArgs.get(conf).get(2) instanceof
JavaMainAppResource);
+ assertInstanceOf(JavaMainAppResource.class,
constructorArgs.get(conf).get(2));
JavaMainAppResource mainResource = (JavaMainAppResource)
constructorArgs.get(conf).get(2);
assertTrue(mainResource.primaryResource().isEmpty());
assertEquals("foo-class", constructorArgs.get(conf).get(3));
- assertTrue(constructorArgs.get(conf).get(4) instanceof String[]);
+ assertInstanceOf(String[].class, constructorArgs.get(conf).get(4));
String[] capturedArgs = (String[]) constructorArgs.get(conf).get(4);
assertEquals(2, capturedArgs.length);
assertEquals("a", capturedArgs[0]);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]