Skip to content

Migrate com.mongodb.client.unified.UnifiedTest and all its descendants to JUnit 5 #1410

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ ext {
awsSdkV1Version = '1.12.337'
mongoCryptVersion = '1.10.0-SNAPSHOT'
projectReactorVersion = '2022.0.0'
junitBomVersion = '5.8.2'
junitBomVersion = '5.10.2'
logbackVersion = '1.3.14'
gitVersion = getGitVersion()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,32 +15,21 @@
*/
package com.mongodb.kotlin.client.coroutine

import com.mongodb.client.unified.UnifiedCrudTest.customSkips
import com.mongodb.client.unified.UnifiedCrudTest.doSkips
import java.io.IOException
import java.net.URISyntaxException
import org.bson.BsonArray
import org.bson.BsonDocument
import org.junit.runners.Parameterized
import org.junit.jupiter.params.provider.Arguments

internal class UnifiedCrudTest(
fileDescription: String?,
testDescription: String,
schemaVersion: String,
runOnRequirements: BsonArray?,
entitiesArray: BsonArray,
initialData: BsonArray,
definition: BsonDocument
) : UnifiedTest(fileDescription, schemaVersion, runOnRequirements, entitiesArray, initialData, definition) {
internal class UnifiedCrudTest() : UnifiedTest() {

init {
customSkips(fileDescription, testDescription)
override fun skips(fileDescription: String, testDescription: String) {
doSkips(fileDescription, testDescription)
}

companion object {
@JvmStatic
@Parameterized.Parameters(name = "{0}: {1}")
@Throws(URISyntaxException::class, IOException::class)
fun data(): Collection<Array<Any?>?>? {
fun data(): Collection<Arguments>? {
return getTestData("unified-test-format/crud")
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,8 @@ import com.mongodb.client.gridfs.GridFSBucket
import com.mongodb.client.unified.UnifiedTest as JUnifiedTest
import com.mongodb.client.vault.ClientEncryption
import com.mongodb.kotlin.client.coroutine.syncadapter.SyncMongoClient
import org.bson.BsonArray
import org.bson.BsonDocument

internal abstract class UnifiedTest(
fileDescription: String?,
schemaVersion: String,
runOnRequirements: BsonArray?,
entitiesArray: BsonArray,
initialData: BsonArray,
definition: BsonDocument
) : JUnifiedTest(fileDescription, schemaVersion, runOnRequirements, entitiesArray, initialData, definition) {
internal abstract class UnifiedTest() : JUnifiedTest() {

override fun createMongoClient(settings: MongoClientSettings): JMongoClient =
SyncMongoClient(MongoClient.create(settings))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,32 +15,21 @@
*/
package com.mongodb.kotlin.client

import com.mongodb.client.unified.UnifiedCrudTest.customSkips
import com.mongodb.client.unified.UnifiedCrudTest.doSkips
import java.io.IOException
import java.net.URISyntaxException
import org.bson.BsonArray
import org.bson.BsonDocument
import org.junit.runners.Parameterized
import org.junit.jupiter.params.provider.Arguments

internal class UnifiedCrudTest(
fileDescription: String?,
testDescription: String,
schemaVersion: String,
runOnRequirements: BsonArray?,
entitiesArray: BsonArray,
initialData: BsonArray,
definition: BsonDocument
) : UnifiedTest(fileDescription, schemaVersion, runOnRequirements, entitiesArray, initialData, definition) {
internal class UnifiedCrudTest() : UnifiedTest() {

init {
customSkips(fileDescription, testDescription)
override fun skips(fileDescription: String, testDescription: String) {
doSkips(fileDescription, testDescription)
}

companion object {
@JvmStatic
@Parameterized.Parameters(name = "{0}: {1}")
@Throws(URISyntaxException::class, IOException::class)
fun data(): Collection<Array<Any?>?>? {
fun data(): Collection<Arguments>? {
return getTestData("unified-test-format/crud")
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,8 @@ import com.mongodb.client.gridfs.GridFSBucket
import com.mongodb.client.unified.UnifiedTest as JUnifiedTest
import com.mongodb.client.vault.ClientEncryption
import com.mongodb.kotlin.client.syncadapter.SyncMongoClient
import org.bson.BsonArray
import org.bson.BsonDocument

internal abstract class UnifiedTest(
fileDescription: String?,
schemaVersion: String,
runOnRequirements: BsonArray?,
entitiesArray: BsonArray,
initialData: BsonArray,
definition: BsonDocument
) : JUnifiedTest(fileDescription, schemaVersion, runOnRequirements, entitiesArray, initialData, definition) {
internal abstract class UnifiedTest() : JUnifiedTest() {

override fun createMongoClient(settings: MongoClientSettings): JMongoClient =
SyncMongoClient(MongoClient.create(settings))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@
import com.mongodb.lang.Nullable;
import org.bson.BsonArray;
import org.bson.BsonDocument;
import org.junit.After;
import org.junit.runners.Parameterized;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.params.provider.Arguments;

import java.io.IOException;
import java.net.URISyntaxException;
Expand All @@ -32,9 +33,9 @@
import static com.mongodb.reactivestreams.client.syncadapter.SyncMongoClient.disableWaitForBatchCursorCreation;
import static com.mongodb.reactivestreams.client.syncadapter.SyncMongoClient.enableSleepAfterCursorOpen;
import static com.mongodb.reactivestreams.client.syncadapter.SyncMongoClient.enableWaitForBatchCursorCreation;
import static org.junit.Assume.assumeFalse;
import static org.junit.jupiter.api.Assumptions.assumeFalse;

public final class ChangeStreamsTest extends UnifiedReactiveStreamsTest {
final class ChangeStreamsTest extends UnifiedReactiveStreamsTest {

private static final List<String> ERROR_REQUIRED_FROM_CHANGE_STREAM_INITIALIZATION_TESTS =
Arrays.asList(
Expand All @@ -54,32 +55,44 @@ public final class ChangeStreamsTest extends UnifiedReactiveStreamsTest {
+ "but instead depend on a server error"
);


public ChangeStreamsTest(@SuppressWarnings("unused") final String fileDescription,
@SuppressWarnings("unused") final String testDescription,
final String schemaVersion, @Nullable final BsonArray runOnRequirements, final BsonArray entities,
final BsonArray initialData, final BsonDocument definition) {
super(schemaVersion, runOnRequirements, entities, initialData, definition);

@Override
protected void skips(final String fileDescription, final String testDescription) {
assumeFalse(ERROR_REQUIRED_FROM_CHANGE_STREAM_INITIALIZATION_TESTS.contains(testDescription));
assumeFalse(EVENT_SENSITIVE_TESTS.contains(testDescription));
}

@BeforeEach
@Override
public void setUp(@Nullable final String fileDescription,
@Nullable final String testDescription,
final String schemaVersion,
@Nullable final BsonArray runOnRequirements,
final BsonArray entitiesArray,
final BsonArray initialData,
final BsonDocument definition) {
super.setUp(
fileDescription,
testDescription,
schemaVersion,
runOnRequirements,
entitiesArray,
initialData,
definition);
enableSleepAfterCursorOpen(256);

if (REQUIRES_BATCH_CURSOR_CREATION_WAITING.contains(testDescription)) {
enableWaitForBatchCursorCreation();
}
}

@After
@AfterEach
@Override
public void cleanUp() {
super.cleanUp();
disableSleep();
disableWaitForBatchCursorCreation();
}

@Parameterized.Parameters(name = "{0}: {1}")
public static Collection<Object[]> data() throws URISyntaxException, IOException {
private static Collection<Arguments> data() throws URISyntaxException, IOException {
return getTestData("unified-test-format/change-streams");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,14 @@

package com.mongodb.reactivestreams.client.unified;

import com.mongodb.lang.Nullable;
import org.bson.BsonArray;
import org.bson.BsonDocument;
import org.junit.runners.Parameterized;
import org.junit.jupiter.params.provider.Arguments;

import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Collection;

public class ClientSideEncryptionTest extends UnifiedReactiveStreamsTest {
public ClientSideEncryptionTest(@SuppressWarnings("unused") final String fileDescription,
@SuppressWarnings("unused") final String testDescription,
final String schemaVersion, @Nullable final BsonArray runOnRequirements, final BsonArray entities,
final BsonArray initialData, final BsonDocument definition) {
super(schemaVersion, runOnRequirements, entities, initialData, definition);
}

@Parameterized.Parameters(name = "{0}: {1}")
public static Collection<Object[]> data() throws URISyntaxException, IOException {
final class ClientSideEncryptionTest extends UnifiedReactiveStreamsTest {
private static Collection<Arguments> data() throws URISyntaxException, IOException {
return getTestData("unified-test-format/client-side-encryption");
}

}

Original file line number Diff line number Diff line change
Expand Up @@ -16,28 +16,21 @@

package com.mongodb.reactivestreams.client.unified;

import com.mongodb.lang.Nullable;
import org.bson.BsonArray;
import org.bson.BsonDocument;
import org.junit.runners.Parameterized;
import org.junit.jupiter.params.provider.Arguments;

import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Collection;

import static org.junit.Assume.assumeFalse;
import static org.junit.jupiter.api.Assumptions.assumeFalse;

public class CollectionManagementTest extends UnifiedReactiveStreamsTest {
public CollectionManagementTest(@SuppressWarnings("unused") final String fileDescription,
@SuppressWarnings("unused") final String testDescription,
final String schemaVersion, @Nullable final BsonArray runOnRequirements, final BsonArray entities,
final BsonArray initialData, final BsonDocument definition) {
super(schemaVersion, runOnRequirements, entities, initialData, definition);
final class CollectionManagementTest extends UnifiedReactiveStreamsTest {
@Override
protected void skips(final String fileDescription, final String testDescription) {
assumeFalse(testDescription.equals("modifyCollection to changeStreamPreAndPostImages enabled"));
}

@Parameterized.Parameters(name = "{0}: {1}")
public static Collection<Object[]> data() throws URISyntaxException, IOException {
private static Collection<Arguments> data() throws URISyntaxException, IOException {
return getTestData("unified-test-format/collection-management");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,30 +16,23 @@

package com.mongodb.reactivestreams.client.unified;

import com.mongodb.lang.Nullable;
import org.bson.BsonArray;
import org.bson.BsonDocument;
import org.junit.runners.Parameterized;
import org.junit.jupiter.params.provider.Arguments;

import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Collection;

import static org.junit.Assume.assumeFalse;
import static org.junit.jupiter.api.Assumptions.assumeFalse;

public class CommandLoggingTest extends UnifiedReactiveStreamsTest {
public CommandLoggingTest(@SuppressWarnings("unused") final String fileDescription,
@SuppressWarnings("unused") final String testDescription,
final String schemaVersion, @Nullable final BsonArray runOnRequirements, final BsonArray entities,
final BsonArray initialData, final BsonDocument definition) {
super(schemaVersion, runOnRequirements, entities, initialData, definition);
final class CommandLoggingTest extends UnifiedReactiveStreamsTest {
@Override
protected void skips(final String fileDescription, final String testDescription) {
// The driver has a hack where getLastError command is executed as part of the handshake in order to get a connectionId
// even when the hello command response doesn't contain it.
assumeFalse(fileDescription.equals("pre-42-server-connection-id"));
}

@Parameterized.Parameters(name = "{0}: {1}")
public static Collection<Object[]> data() throws URISyntaxException, IOException {
private static Collection<Arguments> data() throws URISyntaxException, IOException {
return getTestData("unified-test-format/command-logging");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,30 +16,23 @@

package com.mongodb.reactivestreams.client.unified;

import com.mongodb.lang.Nullable;
import org.bson.BsonArray;
import org.bson.BsonDocument;
import org.junit.runners.Parameterized;
import org.junit.jupiter.params.provider.Arguments;

import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Collection;

import static org.junit.Assume.assumeFalse;
import static org.junit.jupiter.api.Assumptions.assumeFalse;

public class CommandMonitoringTest extends UnifiedReactiveStreamsTest {
public CommandMonitoringTest(@SuppressWarnings("unused") final String fileDescription,
@SuppressWarnings("unused") final String testDescription,
final String schemaVersion, @Nullable final BsonArray runOnRequirements, final BsonArray entities,
final BsonArray initialData, final BsonDocument definition) {
super(schemaVersion, runOnRequirements, entities, initialData, definition);
final class CommandMonitoringTest extends UnifiedReactiveStreamsTest {
@Override
protected void skips(final String fileDescription, final String testDescription) {
// The driver has a hack where getLastError command is executed as part of the handshake in order to get a connectionId
// even when the hello command response doesn't contain it.
assumeFalse(fileDescription.equals("pre-42-server-connection-id"));
}

@Parameterized.Parameters(name = "{0}: {1}")
public static Collection<Object[]> data() throws URISyntaxException, IOException {
private static Collection<Arguments> data() throws URISyntaxException, IOException {
return getTestData("unified-test-format/command-monitoring");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,23 @@

package com.mongodb.reactivestreams.client.unified;

import com.mongodb.lang.Nullable;
import org.bson.BsonArray;
import org.bson.BsonDocument;
import org.junit.runners.Parameterized;
import org.junit.jupiter.params.provider.Arguments;

import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Collection;

import static org.junit.Assume.assumeFalse;
import static org.junit.jupiter.api.Assumptions.assumeFalse;

public class ConnectionPoolLoggingTest extends UnifiedReactiveStreamsTest {


public ConnectionPoolLoggingTest(@SuppressWarnings("unused") final String fileDescription,
@SuppressWarnings("unused") final String testDescription,
final String schemaVersion,
@Nullable final BsonArray runOnRequirements, final BsonArray entities, final BsonArray initialData,
final BsonDocument definition) {
super(schemaVersion, runOnRequirements, entities, initialData, definition);
final class ConnectionPoolLoggingTest extends UnifiedReactiveStreamsTest {
@Override
protected void skips(final String fileDescription, final String testDescription) {
// The implementation of the functionality related to clearing the connection pool before closing the connection
// will be carried out once the specification is finalized and ready.
assumeFalse(testDescription.equals("Connection checkout fails due to error establishing connection"));
}

@Parameterized.Parameters(name = "{0}: {1}")
public static Collection<Object[]> data() throws URISyntaxException, IOException {
private static Collection<Arguments> data() throws URISyntaxException, IOException {
return getTestData("unified-test-format/connection-monitoring-and-pooling/logging");
}
}
Loading