diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 4af1905cd33..58db1809a76 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -32,7 +32,7 @@ The current development branch targets **Java 17**, **Maven 4**, and the **Mongo - **Java 17** (Temurin) — enforced in `.sdkmanrc` and `pom.xml` - **Maven 4** (wrapper at `./mvnw`) — use the wrapper, not a system Maven - **Kotlin** — compiled alongside Java in the `kotlin/` subproject -- **TestNG** — test framework (not JUnit) +- **JUnit** — test framework - **Testcontainers** — spins up a real `mongo:` Docker container for tests - **SmallRye Config** — drives `MorphiaConfig` via `morphia-config.properties` on the classpath @@ -65,7 +65,7 @@ Use `test-all.sh` for an interactive matrix test across multiple server / driver ### Framework and conventions -- **TestNG** is used; no JUnit. +- **JUnit** is used - Tests that need a running MongoDB instance extend `TestBase` (in `core/src/test/java/dev/morphia/test/`). - `MorphiaTestSetup` (parent of `TestBase`) starts a Testcontainers `MongoDBContainer` in `@BeforeSuite`; tests share a single container per suite run. - Pass `-Dmongodb=local` to point at a local `mongod` on `27017` instead of a container. diff --git a/.github/upgrade-test-pom.xml b/.github/upgrade-test-pom.xml deleted file mode 100644 index 19c264f5e5c..00000000000 --- a/.github/upgrade-test-pom.xml +++ /dev/null @@ -1,93 +0,0 @@ - - 4.1.0 - - com.foo - morphia-upgrade-test - 1.0.0-SNAPSHOT - - morphia upgrade test - https://github.com/MorphiaOrg/morphia - - - UTF-8 - - 3.0.0-SNAPSHOT - morphia-core - 2.0.12 - - - - - sonatype-snapshots - https://oss.sonatype.org/content/repositories/snapshots - - true - - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.12.1 - - 17 - 17 - -proc:none - - - - - - - dev.morphia.morphia - ${morphia.artifactId} - ${morphia.version} - - - org.slf4j - slf4j-api - ${slf4j.version} - - - ch.qos.logback - logback-classic - 1.5.0 - - - org.testng - testng - 7.8.0 - - - com.antwerkz.bottlerocket - bottlerocket - 0.43.0 - - - org.skyscreamer - jsonassert - 1.5.1 - - - org.awaitility - awaitility - 4.2.0 - - - org.testcontainers - mongodb - 1.19.6 - - - com.fasterxml.jackson.core - jackson-databind - 2.16.1 - - - - diff --git a/audits/pom.xml b/audits/pom.xml index b99ed9a59c9..b23d1199b7b 100644 --- a/audits/pom.xml +++ b/audits/pom.xml @@ -52,16 +52,16 @@ ch.qos.logback logback-classic - - - org.testng - testng - com.antwerkz.super-expressive super-expressive 0.3.3 + + org.junit.jupiter + junit-jupiter-api + compile + diff --git a/audits/src/main/kotlin/dev/morphia/audits/RstAuditor.kt b/audits/src/main/kotlin/dev/morphia/audits/RstAuditor.kt index 0fa2ca303b8..d7e41a51dc6 100644 --- a/audits/src/main/kotlin/dev/morphia/audits/RstAuditor.kt +++ b/audits/src/main/kotlin/dev/morphia/audits/RstAuditor.kt @@ -21,6 +21,7 @@ import org.jboss.forge.roaster.model.Visibility.PUBLIC import org.jboss.forge.roaster.model.source.JavaClassSource import org.jboss.forge.roaster.model.source.MethodSource import org.jboss.forge.roaster.model.source.ParameterSource +import org.junit.jupiter.api.Test class RstAuditor(val type: OperatorType) { companion object { @@ -116,11 +117,11 @@ class RstAuditor(val type: OperatorType) { val docRoot = File(DOC_ROOT, "modules/ROOT/pages/${type.docsName()}.adoc") docRoot.writeText( """ - [%header,cols="1,2,3"] - |=== - |Operator|Docs|Test Examples - - + [%header,cols="1,2,3"] + |=== + |Operator|Docs|Test Examples + + """ .trimIndent() ) @@ -240,7 +241,7 @@ class RstAuditor(val type: OperatorType) { method: MethodSource, example: OperatorExample, ) { - val annotation = method.getAnnotation("org.testng.annotations.Test") + val annotation = method.getAnnotation(Test::class.java) if (annotation.getStringValue("testName") == null) { annotation.setStringValue("testName", example.name) } @@ -252,22 +253,24 @@ class RstAuditor(val type: OperatorType) { val text = "test data: ${example.folder.relativeTo(coreTestRoot)}\n\n" method.javaDoc.text = text + example.actionBlock?.lines?.joinToString("\n") - method.addAnnotation("org.testng.annotations.Test").setStringValue("testName", example.name) + method.addAnnotation(Test::class.java).setStringValue("testName", example.name) if (!example.folder.path.contains("aggregation")) { method.setBody( """ - |testQuery((query) -> query.filter( )); - | """ + |testQuery((query) -> query.filter( )); + | + """ .trimMargin() ) } else { method.setBody( """ - |testPipeline(aggregation -> aggregation - | .pipeline( - | - |)); """ + |testPipeline(aggregation -> aggregation + | .pipeline( + | + |)); + """ .trimMargin() ) } diff --git a/audits/src/test/kotlin/dev/morphia/audits/AggregationAuditTest.kt b/audits/src/test/kotlin/dev/morphia/audits/AggregationAuditTest.kt index bb258546c70..324b48e75d0 100644 --- a/audits/src/test/kotlin/dev/morphia/audits/AggregationAuditTest.kt +++ b/audits/src/test/kotlin/dev/morphia/audits/AggregationAuditTest.kt @@ -4,7 +4,7 @@ import dev.morphia.audits.model.Operator import dev.morphia.audits.model.OperatorType.EXPRESSION import dev.morphia.audits.model.OperatorType.STAGE import java.io.File -import org.testng.annotations.Test +import org.junit.jupiter.api.Test class AggregationAuditTest : BaseAuditTest() { diff --git a/audits/src/test/kotlin/dev/morphia/audits/BaseAuditTest.kt b/audits/src/test/kotlin/dev/morphia/audits/BaseAuditTest.kt index 06c835fe0f3..97f6f17c3c6 100644 --- a/audits/src/test/kotlin/dev/morphia/audits/BaseAuditTest.kt +++ b/audits/src/test/kotlin/dev/morphia/audits/BaseAuditTest.kt @@ -2,35 +2,36 @@ package dev.morphia.audits import dev.morphia.audits.model.Results import java.io.File -import org.testng.Assert.assertEquals -import org.testng.Assert.assertTrue +import org.junit.jupiter.api.Assertions +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertTrue open class BaseAuditTest { protected fun validate(results: Results) { - assertEquals( - results.created.size, + Assertions.assertEquals( 0, + results.created.size, "All existing operators should be represented: " + results.created.joinToString("\n\t", prefix = "\n\t") { it.operator }, ) - assertEquals( - results.noExamples.size, + Assertions.assertEquals( 0, + results.noExamples.size, "All existing operators should have examples: " + results.noExamples.joinToString("\n\t", prefix = "\n\t") { "${it.operator.name}: ${it.name}" }, ) - assertEquals( - results.noTest.size, + Assertions.assertEquals( 0, + results.noTest.size, "All existing operators should have test cases: " + results.noTest.joinToString("\n\t", prefix = "\n\t") { "${it.operator}: ${it.testSource.relativeTo(File("../").absoluteFile)}" }, ) val noTags = results.noServerRelease.joinToString("\n", "\n") - assertTrue( + Assertions.assertTrue( noTags.trim().isEmpty(), "Some operators are missing server release tags: ${noTags}", ) diff --git a/audits/src/test/kotlin/dev/morphia/audits/OperationAuditTest.kt b/audits/src/test/kotlin/dev/morphia/audits/OperationAuditTest.kt index 839c6614740..cde31e3612e 100644 --- a/audits/src/test/kotlin/dev/morphia/audits/OperationAuditTest.kt +++ b/audits/src/test/kotlin/dev/morphia/audits/OperationAuditTest.kt @@ -1,6 +1,6 @@ package dev.morphia.audits -import org.testng.annotations.Test +import org.junit.jupiter.api.Test class OperationAuditTest { @Test @@ -33,6 +33,6 @@ class OperationAuditTest { } println("$remaining items to handle") - // assertEquals(created, 0) + // assertEquals(0, created) } } diff --git a/audits/src/test/kotlin/dev/morphia/audits/QueryAuditTest.kt b/audits/src/test/kotlin/dev/morphia/audits/QueryAuditTest.kt index 46949cdf329..446a7d5a030 100644 --- a/audits/src/test/kotlin/dev/morphia/audits/QueryAuditTest.kt +++ b/audits/src/test/kotlin/dev/morphia/audits/QueryAuditTest.kt @@ -4,7 +4,7 @@ import dev.morphia.audits.model.Operator import dev.morphia.audits.model.OperatorType.FILTER import dev.morphia.audits.model.OperatorType.UPDATE import java.io.File -import org.testng.annotations.Test +import org.junit.jupiter.api.Test class QueryAuditTest : BaseAuditTest() { @Test diff --git a/audits/src/test/kotlin/dev/morphia/audits/SinceAuditTest.kt b/audits/src/test/kotlin/dev/morphia/audits/SinceAuditTest.kt index 9ae77e0baf0..c03edb5ae14 100644 --- a/audits/src/test/kotlin/dev/morphia/audits/SinceAuditTest.kt +++ b/audits/src/test/kotlin/dev/morphia/audits/SinceAuditTest.kt @@ -3,7 +3,7 @@ package dev.morphia.audits import dev.morphia.audits.model.MorphiaMethod import dev.morphia.audits.model.State import dev.morphia.audits.model.Version -import org.testng.Assert +import org.junit.jupiter.api.Assertions class SinceAuditTest { fun deprecations() { @@ -15,7 +15,7 @@ class SinceAuditTest { "dev.morphia.query.LegacyQuery#execute()Ldev/morphia/query/internal/MorphiaCursor;"] method as MorphiaMethod - Assert.assertEquals(State.DEPRECATED, method.versions[Version.v2_1_0_SNAPSHOT]) - Assert.assertEquals(State.ABSENT, method.versions[Version.v1_6_0_SNAPSHOT]) + Assertions.assertEquals(method.versions[Version.v2_1_0_SNAPSHOT], State.DEPRECATED) + Assertions.assertEquals(method.versions[Version.v1_6_0_SNAPSHOT], State.ABSENT) } } diff --git a/audits/src/test/kotlin/dev/morphia/audits/rst/ExampleValidator.kt b/audits/src/test/kotlin/dev/morphia/audits/rst/ExampleValidator.kt index 74282cc365f..ee8ba8576a5 100644 --- a/audits/src/test/kotlin/dev/morphia/audits/rst/ExampleValidator.kt +++ b/audits/src/test/kotlin/dev/morphia/audits/rst/ExampleValidator.kt @@ -1,6 +1,6 @@ package dev.morphia.audits.rst -import org.testng.Assert +import org.junit.jupiter.api.Assertions data class ExampleValidator( val data: Boolean = true, @@ -12,12 +12,12 @@ data class ExampleValidator( fun action(example: OperatorExample) { if (action) { - Assert.assertNotNull( + Assertions.assertNotNull( example.actionBlock, "Should have an action block for ${example.name}", ) } else { - Assert.assertNull( + Assertions.assertNull( example.actionBlock, "Should not have an action block for ${example.name}", ) @@ -26,20 +26,26 @@ data class ExampleValidator( fun data(example: OperatorExample) { if (data) { - Assert.assertNotNull(example.dataBlock, "Should have a data block for ${example.name}") + Assertions.assertNotNull( + example.dataBlock, + "Should have a data block for ${example.name}", + ) } else { - Assert.assertNull(example.dataBlock, "Should not have a data block for ${example.name}") + Assertions.assertNull( + example.dataBlock, + "Should not have a data block for ${example.name}", + ) } } fun expected(example: OperatorExample) { if (expected) { - Assert.assertNotNull( + Assertions.assertNotNull( example.expectedBlock, "Should have an expected block for ${example.name}", ) } else { - Assert.assertNull( + Assertions.assertNull( example.expectedBlock, "Should not have an expected block for ${example.name}", ) @@ -48,12 +54,12 @@ data class ExampleValidator( fun index(example: OperatorExample) { if (index) { - Assert.assertNotNull( + Assertions.assertNotNull( example.indexBlock, "Should have a index block for ${example.name}", ) } else { - Assert.assertNull( + Assertions.assertNull( example.indexBlock, "Should not have a index block for ${example.name}", ) @@ -61,6 +67,6 @@ data class ExampleValidator( } fun name(example: OperatorExample, name: String) { - Assert.assertEquals(example.name, name, "Should have the correct name") + Assertions.assertEquals(name, example.name, "Should have the correct name") } } diff --git a/core/pom.xml b/core/pom.xml index c9f9312b04b..6fe11ea950d 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -71,6 +71,7 @@ ${morphia.mapper} + per_class @@ -178,11 +179,6 @@ com.github.spotbugs spotbugs-annotations - - - org.testng - testng - org.skyscreamer jsonassert diff --git a/core/src/test/java/dev/morphia/critter/parser/TestAccessorsMutators.java b/core/src/test/java/dev/morphia/critter/parser/TestAccessorsMutators.java index 6b076c81142..6e220bcb7d9 100644 --- a/core/src/test/java/dev/morphia/critter/parser/TestAccessorsMutators.java +++ b/core/src/test/java/dev/morphia/critter/parser/TestAccessorsMutators.java @@ -1,19 +1,22 @@ package dev.morphia.critter.parser; import java.util.List; +import java.util.stream.Stream; import dev.morphia.critter.Critter; import dev.morphia.critter.CritterClassLoader; import dev.morphia.critter.sources.Example; import org.bson.codecs.pojo.PropertyAccessor; -import org.testng.Assert; -import org.testng.annotations.DataProvider; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; public class TestAccessorsMutators extends BaseCritterTest { private final CritterClassLoader critterClassLoader = new CritterClassLoader(); - // @Test(dataProvider = "classes") + // @ParameterizedTest + @MethodSource("classes") public void testPropertyAccessors(Class type) throws Exception { List> testFields = List.of( List.of("name", String.class, "set externally"), @@ -42,14 +45,13 @@ private void testAccessor( PropertyAccessor accessor = accessorClass.getConstructor().newInstance(); accessor.set(entity, testValue); - Assert.assertEquals(accessor.get(entity), testValue); - Assert.assertTrue( + Assertions.assertEquals(testValue, accessor.get(entity)); + Assertions.assertTrue( entity.toString().contains(testValue.toString()), "Could not find '" + testValue + "` in :" + entity); } - @DataProvider(name = "classes") - public Object[][] names() { - return new Object[][] { { Example.class } }; + static Stream classes() { + return Stream.of(Arguments.of(Example.class)); } } diff --git a/core/src/test/java/dev/morphia/critter/parser/TestEntityModelGenerator.java b/core/src/test/java/dev/morphia/critter/parser/TestEntityModelGenerator.java index 31217a9be81..c2b146167c6 100644 --- a/core/src/test/java/dev/morphia/critter/parser/TestEntityModelGenerator.java +++ b/core/src/test/java/dev/morphia/critter/parser/TestEntityModelGenerator.java @@ -1,17 +1,19 @@ package dev.morphia.critter.parser; import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.stream.Stream; import dev.morphia.critter.ClassfileOutput; import dev.morphia.critter.CritterClassLoader; import dev.morphia.mapping.Mapper; import dev.morphia.mapping.codec.pojo.critter.CritterEntityModel; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.testng.Assert; -import org.testng.annotations.DataProvider; -import org.testng.annotations.NoInjection; public class TestEntityModelGenerator { private static final Logger LOG = LoggerFactory.getLogger(TestEntityModelGenerator.class); @@ -35,15 +37,16 @@ public TestEntityModelGenerator() { control = tmp; } - // @Test(dataProvider = "methods") - public void testEntityModel(String name, @NoInjection Method method) throws Exception { + // @ParameterizedTest + @MethodSource("methods") + public void testEntityModel(String name, Method method) throws Exception { Object expected = method.invoke(control); Object actual = method.invoke(GeneratorTest.entityModel); - Assert.assertEquals(actual, expected, method.getName() + " should return the same value"); + Assertions.assertEquals(expected, actual, method.getName() + " should return the same value"); } - @DataProvider(name = "methods") - public Object[][] methods() { - return GeneratorTest.methodNames(CritterEntityModel.class); + static Stream methods() { + return Arrays.stream(GeneratorTest.methodNames(CritterEntityModel.class)) + .map(row -> Arguments.of(row)); } } diff --git a/core/src/test/java/dev/morphia/critter/parser/TestPropertyModelGenerator.java b/core/src/test/java/dev/morphia/critter/parser/TestPropertyModelGenerator.java index f6b99c4d4dc..70aaf4d3f35 100644 --- a/core/src/test/java/dev/morphia/critter/parser/TestPropertyModelGenerator.java +++ b/core/src/test/java/dev/morphia/critter/parser/TestPropertyModelGenerator.java @@ -3,34 +3,37 @@ import java.lang.reflect.Method; import java.util.Arrays; import java.util.List; +import java.util.stream.Stream; import dev.morphia.critter.CritterClassLoader; import dev.morphia.mapping.codec.pojo.EntityModel; import dev.morphia.mapping.codec.pojo.PropertyModel; import dev.morphia.mapping.codec.pojo.critter.CritterPropertyModel; -import org.testng.Assert; -import org.testng.annotations.DataProvider; -import org.testng.annotations.NoInjection; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; public class TestPropertyModelGenerator extends BaseCritterTest { private final CritterClassLoader critterClassLoader = new CritterClassLoader(); - // @Test(dataProvider = "properties", testName = "") - public void testProperty(String control, String methodName, @NoInjection Method method) throws Exception { + // @ParameterizedTest + @MethodSource("properties") + @DisplayName("") + public void testProperty(String control, String methodName, Method method) throws Exception { CritterPropertyModel propertyModel = getModel(control); System.out.println("exampleModel = [" + control + "], methodName = [" + methodName + "], method = [" + method + "]"); Object expected = method.invoke(control); Object actual = method.invoke(propertyModel); - Assert.assertEquals(actual, expected, method.getName() + " should return the same value"); + Assertions.assertEquals(expected, actual, method.getName() + " should return the same value"); } private CritterPropertyModel getModel(String name) { return (CritterPropertyModel) GeneratorTest.entityModel.getProperty(name); } - @DataProvider(name = "properties") - public Object[][] methods() { + static Stream properties() { Object[][] methods = GeneratorTest.methodNames(CritterPropertyModel.class); return List.of("dev.morphia.critter.sources.ExampleNamePropertyModelTemplate").stream() .map(type -> { @@ -41,12 +44,11 @@ public Object[][] methods() { } }) .flatMap(propertyModel -> Arrays.stream(methods) - .map(method -> new Object[] { propertyModel.getName(), method[0], method[1] })) - .toArray(Object[][]::new); + .map(method -> Arguments.of(propertyModel.getName(), method[0], method[1]))); } - private PropertyModel loadModel(String type) throws Exception { - return (PropertyModel) critterClassLoader + private static PropertyModel loadModel(String type) throws Exception { + return (PropertyModel) new CritterClassLoader() .loadClass(type) .getConstructor(EntityModel.class) .newInstance(GeneratorTest.entityModel); diff --git a/core/src/test/java/dev/morphia/critter/parser/TestVarHandleAccessor.java b/core/src/test/java/dev/morphia/critter/parser/TestVarHandleAccessor.java index b970c50a2e1..6e16bccdc3c 100644 --- a/core/src/test/java/dev/morphia/critter/parser/TestVarHandleAccessor.java +++ b/core/src/test/java/dev/morphia/critter/parser/TestVarHandleAccessor.java @@ -10,16 +10,18 @@ import dev.morphia.critter.sources.Example; import org.bson.codecs.pojo.PropertyAccessor; -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import static dev.morphia.critter.parser.GeneratorsTestHelper.defaultMapper; +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class TestVarHandleAccessor { private CritterClassLoader classLoader; - @BeforeClass + @BeforeAll public void setup() { classLoader = new CritterClassLoader(); new CritterGizmoGenerator(defaultMapper()).generate(Example.class, classLoader, true); @@ -38,9 +40,9 @@ public void testEntityNotModified() { .filter(name -> name.startsWith("__write") && !name.endsWith("Template")) .collect(Collectors.toList()); - Assert.assertTrue(syntheticRead.isEmpty(), + Assertions.assertTrue(syntheticRead.isEmpty(), "Entity class should not have synthetic __read methods but found: " + syntheticRead); - Assert.assertTrue(syntheticWrite.isEmpty(), + Assertions.assertTrue(syntheticWrite.isEmpty(), "Entity class should not have synthetic __write methods but found: " + syntheticWrite); } @@ -49,9 +51,9 @@ public void testStringField() throws Exception { Example entity = new Example(); PropertyAccessor accessor = loadAccessor(Example.class, "name"); - Assert.assertNull(accessor.get(entity)); + Assertions.assertNull(accessor.get(entity)); accessor.set(entity, "hello"); - Assert.assertEquals(accessor.get(entity), "hello"); + Assertions.assertEquals("hello", accessor.get(entity)); } @Test @@ -59,9 +61,9 @@ public void testIntPrimitiveField() throws Exception { Example entity = new Example(); PropertyAccessor accessor = loadAccessor(Example.class, "age"); - Assert.assertEquals(accessor.get(entity), 21); + Assertions.assertEquals(21, accessor.get(entity)); accessor.set(entity, 42); - Assert.assertEquals(accessor.get(entity), 42); + Assertions.assertEquals(42, accessor.get(entity)); } @Test @@ -69,9 +71,9 @@ public void testLongBoxedField() throws Exception { Example entity = new Example(); PropertyAccessor accessor = loadAccessor(Example.class, "salary"); - Assert.assertEquals(accessor.get(entity), 2L); + Assertions.assertEquals(2L, accessor.get(entity)); accessor.set(entity, 100_000L); - Assert.assertEquals(accessor.get(entity), 100_000L); + Assertions.assertEquals(100_000L, accessor.get(entity)); } @Test diff --git a/core/src/test/java/dev/morphia/critter/parser/TypesTest.java b/core/src/test/java/dev/morphia/critter/parser/TypesTest.java index 29006c05ea7..18d195ad667 100644 --- a/core/src/test/java/dev/morphia/critter/parser/TypesTest.java +++ b/core/src/test/java/dev/morphia/critter/parser/TypesTest.java @@ -5,85 +5,86 @@ import java.util.Date; import java.util.Locale; import java.util.UUID; +import java.util.stream.Stream; import dev.morphia.critter.parser.gizmo.GizmoExtensions; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.objectweb.asm.Type; -import org.testng.Assert; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; public class TypesTest { - @DataProvider(name = "types") - public Object[][] typeProvider() { - return new Object[][] { + static Stream types() { + return Stream.of( // Primitive types - { boolean.class }, - { char.class }, - { byte.class }, - { short.class }, - { int.class }, - { float.class }, - { long.class }, - { double.class }, + Arguments.of(boolean.class), + Arguments.of(char.class), + Arguments.of(byte.class), + Arguments.of(short.class), + Arguments.of(int.class), + Arguments.of(float.class), + Arguments.of(long.class), + Arguments.of(double.class), // Object types - { String.class }, - { Locale.class }, - { Date.class }, - { UUID.class }, - { BigDecimal.class }, - { Instant.class }, + Arguments.of(String.class), + Arguments.of(Locale.class), + Arguments.of(Date.class), + Arguments.of(UUID.class), + Arguments.of(BigDecimal.class), + Arguments.of(Instant.class), // Arrays of boxed primitives (Kotlin Array = Java boxed X[]) - { Boolean[].class }, - { Character[].class }, - { Byte[].class }, - { Short[].class }, - { Integer[].class }, - { Float[].class }, - { Long[].class }, - { Double[].class }, + Arguments.of(Boolean[].class), + Arguments.of(Character[].class), + Arguments.of(Byte[].class), + Arguments.of(Short[].class), + Arguments.of(Integer[].class), + Arguments.of(Float[].class), + Arguments.of(Long[].class), + Arguments.of(Double[].class), // Primitive arrays (Kotlin XArray = Java primitive x[]) - { boolean[].class }, - { char[].class }, - { byte[].class }, - { short[].class }, - { int[].class }, - { float[].class }, - { long[].class }, - { double[].class }, + Arguments.of(boolean[].class), + Arguments.of(char[].class), + Arguments.of(byte[].class), + Arguments.of(short[].class), + Arguments.of(int[].class), + Arguments.of(float[].class), + Arguments.of(long[].class), + Arguments.of(double[].class), // 2D primitive arrays (Kotlin Array = Java primitive x[][]) - { boolean[][].class }, - { int[][].class }, + Arguments.of(boolean[][].class), + Arguments.of(int[][].class), // Arrays of objects - { String[].class }, - { Locale[].class }, - { Date[].class }, - { UUID[].class }, - { BigDecimal[].class }, - { Instant[].class }, + Arguments.of(String[].class), + Arguments.of(Locale[].class), + Arguments.of(Date[].class), + Arguments.of(UUID[].class), + Arguments.of(BigDecimal[].class), + Arguments.of(Instant[].class), // Arrays of arrays (2D) - { Boolean[][].class }, - { Integer[][].class }, - { String[][].class }, - { Locale[][].class }, + Arguments.of(Boolean[][].class), + Arguments.of(Integer[][].class), + Arguments.of(String[][].class), + Arguments.of(Locale[][].class), // Arrays of arrays of arrays (3D) - { Integer[][][].class }, - { String[][][].class }, - }; + Arguments.of(Integer[][][].class), + Arguments.of(String[][][].class)); } - @Test(dataProvider = "types") + @ParameterizedTest + @MethodSource("types") public void asClassConversion(Class expected) { Type type = Type.getType(expected); Class actual = GizmoExtensions.asClass(type, Thread.currentThread().getContextClassLoader()); - Assert.assertEquals(actual, expected, "Type " + type.getDescriptor() + " should convert to " + expected.getName()); + Assertions.assertEquals(expected, actual, "Type " + type.getDescriptor() + " should convert to " + expected.getName()); } } diff --git a/core/src/test/java/dev/morphia/critter/parser/gizmo/TestGizmoGeneration.java b/core/src/test/java/dev/morphia/critter/parser/gizmo/TestGizmoGeneration.java index 85dc637ed65..3972fea41d3 100644 --- a/core/src/test/java/dev/morphia/critter/parser/gizmo/TestGizmoGeneration.java +++ b/core/src/test/java/dev/morphia/critter/parser/gizmo/TestGizmoGeneration.java @@ -29,13 +29,13 @@ import dev.morphia.mapping.codec.pojo.TypeData; import dev.morphia.mapping.lifecycle.EntityListenerAdapter; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import org.objectweb.asm.ClassReader; import org.objectweb.asm.Type; import org.objectweb.asm.tree.AnnotationNode; import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.MethodNode; -import org.testng.Assert; -import org.testng.annotations.Test; import io.quarkus.gizmo.ClassCreator; import io.quarkus.gizmo.MethodDescriptor; @@ -55,11 +55,9 @@ public void testMapStringExample() { descriptor(String.class), descriptor(Example.class)); - Assert.assertEquals(descriptor, descString); + Assertions.assertEquals(descString, descriptor); TypeData typeData = PropertyModelGenerator.typeData(descString, Thread.currentThread().getContextClassLoader()).get(0); - Assert.assertEquals( - typeData, - typeDataHelper(java.util.Map.class, typeDataHelper(String.class), typeDataHelper(Example.class))); + Assertions.assertEquals(typeDataHelper(java.util.Map.class, typeDataHelper(String.class), typeDataHelper(Example.class)), typeData); } @Test @@ -71,13 +69,11 @@ public void testListMapStringExample() { java.util.Map.class, descriptor(String.class), descriptor(Example.class))); - Assert.assertEquals(descriptor, descString); + Assertions.assertEquals(descString, descriptor); TypeData typeData = PropertyModelGenerator.typeData(descString, Thread.currentThread().getContextClassLoader()).get(0); - Assert.assertEquals( - typeData, - typeDataHelper(java.util.List.class, - typeDataHelper(java.util.Map.class, typeDataHelper(String.class), typeDataHelper(Example.class)))); + Assertions.assertEquals(typeDataHelper(java.util.List.class, + typeDataHelper(java.util.Map.class, typeDataHelper(String.class), typeDataHelper(Example.class))), typeData); } @Test @@ -87,19 +83,17 @@ public void testMapOfList() { java.util.Map.class, descriptor(String.class), descriptor(java.util.List.class, descriptor(Example.class))); - Assert.assertEquals(descriptor, descString); + Assertions.assertEquals(descString, descriptor); TypeData typeData = PropertyModelGenerator.typeData(descriptor, Thread.currentThread().getContextClassLoader()).get(0); - Assert.assertEquals( - typeData, - typeDataHelper(java.util.Map.class, - typeDataHelper(String.class), - typeDataHelper(java.util.List.class, typeDataHelper(Example.class)))); + Assertions.assertEquals(typeDataHelper(java.util.Map.class, + typeDataHelper(String.class), + typeDataHelper(java.util.List.class, typeDataHelper(Example.class))), typeData); } @Test public void testPrimitiveArray() { TypeData typeData = PropertyModelGenerator.typeData("[I", Thread.currentThread().getContextClassLoader()).get(0); - Assert.assertTrue(typeData.isArray()); + Assertions.assertTrue(typeData.isArray()); } @Test @@ -150,33 +144,28 @@ public void testGizmo() throws Exception { } private void validate(EntityModel model) { - Assert.assertEquals( - model.getAnnotation(EntityListeners.class), - EntityListenersBuilder.entityListenersBuilder().value(EntityListenerAdapter.class).build()); - Assert.assertEquals( - model.getAnnotation(Entity.class), - EntityBuilder.entityBuilder().value("examples").build()); - Assert.assertEquals( - model.getAnnotation(Indexes.class), - IndexesBuilder.indexesBuilder() - .value(IndexBuilder.indexBuilder() - .fields(FieldBuilder.fieldBuilder().value("name").weight(42).build()) - .options(IndexOptionsBuilder.indexOptionsBuilder() - .partialFilter("partial filter") - .collation(CollationBuilder.collationBuilder().caseFirst(LOWER).build()) - .build()) + Assertions.assertEquals(EntityListenersBuilder.entityListenersBuilder().value(EntityListenerAdapter.class).build(), + model.getAnnotation(EntityListeners.class)); + Assertions.assertEquals(EntityBuilder.entityBuilder().value("examples").build(), model.getAnnotation(Entity.class)); + Assertions.assertEquals(IndexesBuilder.indexesBuilder() + .value(IndexBuilder.indexBuilder() + .fields(FieldBuilder.fieldBuilder().value("name").weight(42).build()) + .options(IndexOptionsBuilder.indexOptionsBuilder() + .partialFilter("partial filter") + .collation(CollationBuilder.collationBuilder().caseFirst(LOWER).build()) .build()) - .build()); - Assert.assertEquals(model.collectionName(), "examples"); - Assert.assertEquals(model.discriminator(), "Example"); - Assert.assertEquals(model.discriminatorKey(), "_t"); - Assert.assertEquals(model.getType().getName(), Example.class.getName()); - Assert.assertFalse(model.getProperties().isEmpty(), "Should have properties"); - Assert.assertNotNull(model.getIdProperty(), "Should have an ID property"); - Assert.assertFalse(model.isAbstract(), "Should not be abstract"); - Assert.assertFalse(model.isInterface(), "Should not be an interface"); - Assert.assertTrue(model.useDiscriminator(), "Should use the discriminator"); - Assert.assertTrue(model.classHierarchy().isEmpty(), "Should not have a class hierarchy"); + .build()) + .build(), model.getAnnotation(Indexes.class)); + Assertions.assertEquals("examples", model.collectionName()); + Assertions.assertEquals("Example", model.discriminator()); + Assertions.assertEquals("_t", model.discriminatorKey()); + Assertions.assertEquals(Example.class.getName(), model.getType().getName()); + Assertions.assertFalse(model.getProperties().isEmpty(), "Should have properties"); + Assertions.assertNotNull(model.getIdProperty(), "Should have an ID property"); + Assertions.assertFalse(model.isAbstract(), "Should not be abstract"); + Assertions.assertFalse(model.isInterface(), "Should not be an interface"); + Assertions.assertTrue(model.useDiscriminator(), "Should use the discriminator"); + Assertions.assertTrue(model.classHierarchy().isEmpty(), "Should not have a class hierarchy"); } private void invokeAll(Class type, Class klass) { @@ -184,7 +173,7 @@ private void invokeAll(Class type, Class klass) { try { instance = klass.getConstructors()[0].newInstance(new Object[] { null }); } catch (Exception e) { - Assert.fail("Could not instantiate " + klass.getName() + ": " + e.getMessage()); + Assertions.fail("Could not instantiate " + klass.getName() + ": " + e.getMessage()); return; } List results = Arrays.stream(type.getDeclaredMethods()) @@ -205,7 +194,7 @@ private void invokeAll(Class type, Class klass) { .collect(Collectors.toList()); if (!results.isEmpty()) { - Assert.fail("Missing methods from " + type.getName() + ": \n" + String.join("\n", results)); + Assertions.fail("Missing methods from " + type.getName() + ": \n" + String.join("\n", results)); } } @@ -252,7 +241,7 @@ public void testConstructors() throws Exception { Object instance = critterClassLoader.loadClass(className) .getConstructor(String.class) .newInstance("This is my name"); - Assert.assertNotNull(instance); + Assertions.assertNotNull(instance); } @Test @@ -273,36 +262,36 @@ public void testMethodBasedAccessors() throws Exception { .collect(Collectors.toList()); List methodNames = methodNodes.stream().map(n -> n.name).collect(Collectors.toList()); - Assert.assertTrue(methodNames.contains("getId"), "Should find getId method"); - Assert.assertTrue(methodNames.contains("getCount"), "Should find getCount method"); - Assert.assertTrue(methodNames.contains("getScore"), "Should find getScore method"); - Assert.assertTrue(methodNames.contains("getComputedValue"), "Should find getComputedValue method"); - Assert.assertEquals(4, methodNodes.size(), "Should find exactly 4 annotated getter methods"); + Assertions.assertTrue(methodNames.contains("getId"), "Should find getId method"); + Assertions.assertTrue(methodNames.contains("getCount"), "Should find getCount method"); + Assertions.assertTrue(methodNames.contains("getScore"), "Should find getScore method"); + Assertions.assertTrue(methodNames.contains("getComputedValue"), "Should find getComputedValue method"); + Assertions.assertEquals(methodNodes.size(), 4, "Should find exactly 4 annotated getter methods"); byte[] bytecode = new AddMethodAccessorMethods(MethodExample.class, methodNodes).emit(); classLoader.register(MethodExample.class.getName(), bytecode); Class modifiedClass = classLoader.loadClass(MethodExample.class.getName()); - Assert.assertNotNull(modifiedClass.getMethod("__readId"), "Should have __readId method"); - Assert.assertNotNull(modifiedClass.getMethod("__readCount"), "Should have __readCount method"); - Assert.assertNotNull(modifiedClass.getMethod("__readScore"), "Should have __readScore method"); - Assert.assertNotNull(modifiedClass.getMethod("__readComputedValue"), "Should have __readComputedValue method"); + Assertions.assertNotNull(modifiedClass.getMethod("__readId"), "Should have __readId method"); + Assertions.assertNotNull(modifiedClass.getMethod("__readCount"), "Should have __readCount method"); + Assertions.assertNotNull(modifiedClass.getMethod("__readScore"), "Should have __readScore method"); + Assertions.assertNotNull(modifiedClass.getMethod("__readComputedValue"), "Should have __readComputedValue method"); - Assert.assertNotNull(modifiedClass.getMethod("__writeId", org.bson.types.ObjectId.class), "Should have __writeId method"); - Assert.assertNotNull(modifiedClass.getMethod("__writeCount", long.class), "Should have __writeCount method"); - Assert.assertNotNull(modifiedClass.getMethod("__writeScore", double.class), "Should have __writeScore method"); + Assertions.assertNotNull(modifiedClass.getMethod("__writeId", org.bson.types.ObjectId.class), "Should have __writeId method"); + Assertions.assertNotNull(modifiedClass.getMethod("__writeCount", long.class), "Should have __writeCount method"); + Assertions.assertNotNull(modifiedClass.getMethod("__writeScore", double.class), "Should have __writeScore method"); Object instance = modifiedClass.getConstructor().newInstance(); Method writeComputedMethod = modifiedClass.getMethod("__writeComputedValue", String.class); try { writeComputedMethod.invoke(instance, "test value"); - Assert.fail("Should throw UnsupportedOperationException for read-only property"); + Assertions.fail("Should throw UnsupportedOperationException for read-only property"); } catch (InvocationTargetException e) { - Assert.assertTrue(e.getCause() instanceof UnsupportedOperationException, + Assertions.assertTrue(e.getCause() instanceof UnsupportedOperationException, "Should throw UnsupportedOperationException, got: " + e.getCause()); - Assert.assertTrue( + Assertions.assertTrue( e.getCause().getMessage() != null && e.getCause().getMessage().contains("read-only"), "Exception message should mention read-only"); } diff --git a/core/src/test/java/dev/morphia/mapping/TestCritterMapper.java b/core/src/test/java/dev/morphia/mapping/TestCritterMapper.java index cccd5ec430b..9640689138d 100644 --- a/core/src/test/java/dev/morphia/mapping/TestCritterMapper.java +++ b/core/src/test/java/dev/morphia/mapping/TestCritterMapper.java @@ -13,15 +13,8 @@ import dev.morphia.mapping.codec.pojo.EntityModel; import dev.morphia.mapping.codec.pojo.critter.CritterEntityModel; -import org.testng.annotations.Test; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNotSame; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertSame; -import static org.testng.Assert.assertTrue; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class TestCritterMapper { @@ -33,8 +26,8 @@ private CritterMapper mapper() { public void testRuntimeGenerationProducesCritterEntityModel() { CritterMapper mapper = mapper(); EntityModel model = mapper.mapEntity(CritterMapperTestEntity.class); - assertNotNull(model); - assertTrue(model instanceof CritterEntityModel, + Assertions.assertNotNull(model); + Assertions.assertTrue(model instanceof CritterEntityModel, "Expected CritterEntityModel but got: " + model.getClass().getName()); } @@ -42,8 +35,8 @@ public void testRuntimeGenerationProducesCritterEntityModel() { public void testCollectionNameFromAnnotation() { CritterMapper mapper = mapper(); EntityModel model = mapper.mapEntity(CritterMapperTestEntity.class); - assertNotNull(model); - assertEquals(model.collectionName(), "critter_test"); + Assertions.assertNotNull(model); + Assertions.assertEquals("critter_test", model.collectionName()); } @Test @@ -51,23 +44,23 @@ public void testMappedEntityCached() { CritterMapper mapper = mapper(); EntityModel first = mapper.mapEntity(CritterMapperTestEntity.class); EntityModel second = mapper.mapEntity(CritterMapperTestEntity.class); - assertNotNull(first); - assertSame(first, second, "mapEntity should return the same cached model on repeated calls"); + Assertions.assertNotNull(first); + Assertions.assertSame(first, second, "mapEntity should return the same cached model on repeated calls"); } @Test public void testCopySharesCritterModels() { CritterMapper original = mapper(); EntityModel model = original.mapEntity(CritterMapperTestEntity.class); - assertNotNull(model); - assertTrue(model instanceof CritterEntityModel, "Original model must be a CritterEntityModel"); + Assertions.assertNotNull(model); + Assertions.assertTrue(model instanceof CritterEntityModel, "Original model must be a CritterEntityModel"); CritterMapper copy = (CritterMapper) original.copy(); EntityModel copiedModel = copy.getEntityModel(CritterMapperTestEntity.class); - assertNotNull(copiedModel, "copy() must carry over already-mapped entities"); - assertTrue(copiedModel instanceof CritterEntityModel, "Copied model must remain a CritterEntityModel"); - assertNotSame(model, copiedModel, "copy() creates independent model instances for isolation"); + Assertions.assertNotNull(copiedModel, "copy() must carry over already-mapped entities"); + Assertions.assertTrue(copiedModel instanceof CritterEntityModel, "Copied model must remain a CritterEntityModel"); + Assertions.assertNotSame(copiedModel, model, "copy() creates independent model instances for isolation"); } @Test @@ -75,22 +68,22 @@ public void testCopyHasIndependentDiscriminatorLookup() { CritterMapper original = mapper(); original.mapEntity(CritterMapperTestEntity.class); CritterMapper copy = (CritterMapper) original.copy(); - assertNotNull(copy.getEntityModel(CritterMapperTestEntity.class)); - assertNotSame(original.getDiscriminatorLookup(), copy.getDiscriminatorLookup()); + Assertions.assertNotNull(copy.getEntityModel(CritterMapperTestEntity.class)); + Assertions.assertNotSame(copy.getDiscriminatorLookup(), original.getDiscriminatorLookup()); } @Test public void testNullTypeReturnNull() { CritterMapper mapper = mapper(); EntityModel model = mapper.mapEntity(null); - assertNull(model); + Assertions.assertNull(model); } @Test public void testNonEntityClassReturnNull() { CritterMapper mapper = mapper(); EntityModel model = mapper.mapEntity(String.class); - assertNull(model); + Assertions.assertNull(model); } @Test @@ -110,8 +103,8 @@ public Class loadClass(String name) throws ClassNotFoundException { CritterMapper mapper = new CritterMapper(MorphiaConfig.load().mapper(MapperType.CRITTER), failingLoader); EntityModel model = mapper.mapEntity(CritterMapperTestEntity.class); - assertNotNull(model, "Should fall back to reflection and return a non-null model"); - assertFalse(model instanceof CritterEntityModel, + Assertions.assertNotNull(model, "Should fall back to reflection and return a non-null model"); + Assertions.assertFalse(model instanceof CritterEntityModel, "Fallback model should be a plain EntityModel, not CritterEntityModel"); } @@ -142,7 +135,7 @@ public void testConcurrentMappingProducesSingleModel() throws Exception { } EntityModel first = results.get(0); for (EntityModel result : results) { - assertSame(result, first, "All threads should see the same registered model"); + Assertions.assertSame(first, result, "All threads should see the same registered model"); } } @@ -155,22 +148,21 @@ public void testConcurrentMappingProducesSingleModel() throws Exception { public void testSessionDatastoreCopyPattern() { CritterMapper original = mapper(); EntityModel model = original.mapEntity(CritterMapperTestEntity.class); - assertNotNull(model); - assertTrue(model instanceof CritterEntityModel); + Assertions.assertNotNull(model); + Assertions.assertTrue(model instanceof CritterEntityModel); // Simulate what new MorphiaDatastore(datastore) does — calls mapper.copy() Mapper sessionMapper = original.copy(); - assertTrue(sessionMapper instanceof CritterMapper, + Assertions.assertTrue(sessionMapper instanceof CritterMapper, "copy() must return a CritterMapper for the session datastore"); - assertTrue(sessionMapper.isMapped(CritterMapperTestEntity.class), + Assertions.assertTrue(sessionMapper.isMapped(CritterMapperTestEntity.class), "Session copy must preserve already-mapped entities"); EntityModel sessionModel = sessionMapper.getEntityModel(CritterMapperTestEntity.class); - assertNotNull(sessionModel, "Session copy must preserve already-mapped entities"); - assertTrue(sessionModel instanceof CritterEntityModel, + Assertions.assertNotNull(sessionModel, "Session copy must preserve already-mapped entities"); + Assertions.assertTrue(sessionModel instanceof CritterEntityModel, "Session copy must produce CritterEntityModel instances, not reflection fallbacks"); - assertNotSame(model, sessionModel, - "Session copy creates independent model instances for isolation"); + Assertions.assertNotSame(sessionModel, model, "Session copy creates independent model instances for isolation"); } /** @@ -186,10 +178,10 @@ public void testRegisterWorksForImportedModels() { EntityModel imported = new EntityModel(mapper, CritterMapperTestEntity.class); EntityModel registered = mapper.register(imported); - assertNotNull(registered); - assertTrue(mapper.isMapped(CritterMapperTestEntity.class), + Assertions.assertNotNull(registered); + Assertions.assertTrue(mapper.isMapped(CritterMapperTestEntity.class), "register() must make the entity discoverable via isMapped()"); - assertSame(registered, mapper.getEntityModel(CritterMapperTestEntity.class), + Assertions.assertSame(mapper.getEntityModel(CritterMapperTestEntity.class), registered, "register() must make the model retrievable, as importModels() relies on it"); } } diff --git a/core/src/test/java/dev/morphia/test/CoverageTest.java b/core/src/test/java/dev/morphia/test/CoverageTest.java index e8767b1c1d0..6637ca24c40 100644 --- a/core/src/test/java/dev/morphia/test/CoverageTest.java +++ b/core/src/test/java/dev/morphia/test/CoverageTest.java @@ -8,10 +8,10 @@ import dev.morphia.mapping.NamingStrategy; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static java.util.Arrays.stream; -import static org.testng.Assert.fail; public abstract class CoverageTest extends TestBase { public abstract List locations(); @@ -25,7 +25,7 @@ public void noMissingTestCases() { }); if (message.length() != 0) { - fail("\n" + message); + Assertions.fail("\n" + message); } } diff --git a/core/src/test/java/dev/morphia/test/MorphiaTestSetup.java b/core/src/test/java/dev/morphia/test/MorphiaTestSetup.java index 54a9420d784..6f1752bd772 100644 --- a/core/src/test/java/dev/morphia/test/MorphiaTestSetup.java +++ b/core/src/test/java/dev/morphia/test/MorphiaTestSetup.java @@ -18,9 +18,6 @@ import org.slf4j.LoggerFactory; import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.utility.DockerImageName; -import org.testng.SkipException; -import org.testng.annotations.AfterSuite; -import org.testng.annotations.BeforeSuite; import static dev.morphia.test.TestBase.TEST_DB_NAME; import static java.lang.String.format; @@ -44,7 +41,6 @@ public MorphiaTestSetup(MorphiaConfig config) { morphiaConfig = config; } - @BeforeSuite public MorphiaContainer getMorphiaContainer() { if (morphiaContainer == null) { morphiaContainer = new MorphiaContainer(getMongoHolder().getMongoClient(), morphiaConfig); @@ -85,14 +81,13 @@ private static MongoHolder initMongoDbContainer(boolean sharded) { return new MongoHolder(mongoDBContainer, connectionString); } - @AfterSuite public void stopContainer() { morphiaContainer = null; } protected void assumeTrue(boolean condition, String message) { if (!condition) { - throw new SkipException(message); + org.junit.jupiter.api.Assumptions.assumeTrue(false, message); } } diff --git a/core/src/test/java/dev/morphia/test/MorphiaVersionTest.java b/core/src/test/java/dev/morphia/test/MorphiaVersionTest.java index 7a7b48ae9e8..cd4fb70affa 100644 --- a/core/src/test/java/dev/morphia/test/MorphiaVersionTest.java +++ b/core/src/test/java/dev/morphia/test/MorphiaVersionTest.java @@ -7,12 +7,12 @@ import org.apache.maven.model.Model; import org.apache.maven.model.io.xpp3.MavenXpp3Reader; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import org.semver4j.Semver; -import org.testng.annotations.Test; import static dev.morphia.test.TestBase.GIT_ROOT; import static java.lang.String.format; -import static org.testng.Assert.assertEquals; public class MorphiaVersionTest { @Test @@ -23,6 +23,6 @@ public void testVersion() throws Exception { var version = Semver.parse(model.getVersion()); String minorVersion = format("%s%s", version.getMajor(), version.getMinor()); //noinspection MisorderedAssertEqualsArguments - assertEquals(MorphiaVersion30.class.getSimpleName().replaceAll("\\D", ""), minorVersion); + Assertions.assertEquals(minorVersion, MorphiaVersion30.class.getSimpleName().replaceAll("\\D", "")); } } \ No newline at end of file diff --git a/core/src/test/java/dev/morphia/test/OptionsTest.java b/core/src/test/java/dev/morphia/test/OptionsTest.java index e3195319923..3e74f37cbd2 100644 --- a/core/src/test/java/dev/morphia/test/OptionsTest.java +++ b/core/src/test/java/dev/morphia/test/OptionsTest.java @@ -28,8 +28,8 @@ import org.bson.BsonValue; import org.bson.Document; import org.bson.conversions.Bson; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; @SuppressWarnings("SameParameterValue") public class OptionsTest extends TestBase { @@ -117,11 +117,11 @@ private void beanScan(Class driver, Class morphia, List filtered) private void checkOverride(Class driverType, Class morphiaType, Method method) throws NoSuchMethodException { Class[] parameterTypes = method.getParameterTypes(); Method morphiaMethod = morphiaType.getMethod(method.getName(), parameterTypes); - Assert.assertTrue(!method.getReturnType().equals(driverType) + Assertions.assertTrue(!method.getReturnType().equals(driverType) || morphiaMethod.getReturnType().equals(morphiaType), method.toString()); if (parameterTypes.equals(new Class[] { Bson.class })) { - Assert.assertTrue(!method.getReturnType().equals(driverType) + Assertions.assertTrue(!method.getReturnType().equals(driverType) || morphiaType.getMethod(method.getName(), Document.class) .getReturnType().equals(morphiaType), method.toString()); @@ -173,7 +173,7 @@ private boolean getter(Method method) { private void scan(Class driverType, Class morphiaType, List> localFields) { try { Method[] methods = driverType.getDeclaredMethods(); - Assert.assertEquals(driverType.equals(morphiaType.getSuperclass()), !Modifier.isFinal(driverType.getModifiers()), + Assertions.assertEquals(!Modifier.isFinal(driverType.getModifiers()), driverType.equals(morphiaType.getSuperclass()), "Options class should be a subclass"); for (Method method : methods) { if (method.getAnnotation(Deprecated.class) == null @@ -189,13 +189,13 @@ private void scan(Class driverType, Class morphiaType, List> loca name = name.substring(0, 1).toLowerCase() + name.substring(1); Field field = morphiaType.getDeclaredField(name); - Assert.assertEquals(localField, field.getType(), localField.getName()); + Assertions.assertEquals(field.getType(), localField, localField.getName()); Method declaredMethod = morphiaType.getDeclaredMethod(name); - Assert.assertEquals(localField, declaredMethod.getReturnType(), declaredMethod.toString()); + Assertions.assertEquals(declaredMethod.getReturnType(), localField, declaredMethod.toString()); declaredMethod = morphiaType.getDeclaredMethod(name, localField); - Assert.assertEquals(morphiaType, declaredMethod.getReturnType(), declaredMethod.toString()); + Assertions.assertEquals(declaredMethod.getReturnType(), morphiaType, declaredMethod.toString()); } } catch (ReflectiveOperationException e) { throw new RuntimeException(e.getMessage(), e); diff --git a/core/src/test/java/dev/morphia/test/TemplatedTestBase.java b/core/src/test/java/dev/morphia/test/TemplatedTestBase.java index 39b232eb85b..6c9e169c3a4 100644 --- a/core/src/test/java/dev/morphia/test/TemplatedTestBase.java +++ b/core/src/test/java/dev/morphia/test/TemplatedTestBase.java @@ -8,7 +8,6 @@ import java.io.StringReader; import java.lang.reflect.Method; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.function.Function; @@ -21,7 +20,6 @@ import dev.morphia.aggregation.Aggregation; import dev.morphia.aggregation.AggregationImpl; import dev.morphia.mapping.codec.Conversions; -import dev.morphia.query.FindOptions; import dev.morphia.query.MorphiaQuery; import dev.morphia.query.Operations; import dev.morphia.query.Query; @@ -33,10 +31,10 @@ import org.bson.json.JsonParseException; import org.bson.json.JsonWriterSettings; import org.jetbrains.annotations.NotNull; -import org.json.JSONException; -import org.skyscreamer.jsonassert.JSONAssert; -import org.testng.annotations.AfterClass; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static dev.morphia.aggregation.AggregationOptions.aggregationOptions; import static java.lang.Character.toLowerCase; @@ -47,10 +45,8 @@ import static java.util.stream.Collectors.joining; import static java.util.stream.Collectors.toList; import static org.bson.json.JsonWriterSettings.builder; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.fail; +@ExtendWith(TestCoverageExtension.class) public abstract class TemplatedTestBase extends TestBase { public static final JsonWriterSettings JSON_WRITER_SETTINGS = builder() .indent(true) @@ -85,41 +81,6 @@ private static List unwrapArray(List resource) { return resource; } - @AfterClass - public void testCoverage() { - var type = getClass(); - var methods = stream(type.getDeclaredMethods()) - .filter(m -> m.getName().startsWith("testExample")) - .map(m -> { - String name = m.getName().substring(4); - return toLowerCase(name.charAt(0)) + name.substring(1); - }) - .toList(); - String path = type.getPackageName(); - String simpleName = type.getSimpleName().substring(4); - var operatorName = toLowerCase(simpleName.charAt(0)) + simpleName.substring(1); - var resourceFolder = TemplatedTestBase.rootToCore("src/test/resources/%s/%s".formatted(path.replace('.', '/'), operatorName)); - - if (!resourceFolder.exists()) { - throw new IllegalStateException("%s does not exist inside %s".formatted(resourceFolder, - new File(".").getAbsolutePath())); - } - List list = Arrays.stream(resourceFolder.list()) - .map(s -> new File(resourceFolder, s)) - .toList(); - - List examples = list.stream() - .filter(d -> new File(d, "action.json").exists()) - .map(File::getName) - .toList(); - var missing = examples.stream() - .filter(example -> !methods.contains(example)) - .collect(joining(", ")); - if (!missing.isEmpty()) { - fail("Missing test cases for $%s: %s".formatted(operatorName, missing)); - } - } - @NotNull public static File rootToCore(String path) { return new File(CORE_ROOT, path); @@ -178,7 +139,7 @@ protected List loadJson(String name, String type, boolean failOnMissin InputStream stream = getClass().getResourceAsStream(name); if (stream == null) { if (failOnMissing) { - fail(format("missing " + type + " file: src/test/resources/%s/%s", + Assertions.fail(format("missing " + type + " file: src/test/resources/%s/%s", getClass().getPackageName().replace('.', '/'), name)); } } else { @@ -245,7 +206,7 @@ public void testUpdate(ActionTestOptions options, Query query = function.apply(getDs().find(EXAMPLE_TEST_COLLECTION, Document.class) .disableValidation()); - List actual = runUpdate(options, resourceName, query, options.findOptions(), operators); + List actual = runUpdate(options, resourceName, query, operators); checkExpected(options, resourceName, actual); } @@ -292,7 +253,7 @@ private IndexOptions indexOptions(Document document) { protected void loadIndex(String resourceName, String databaseName, String collectionName) { MongoCollection collection = getDatabase(databaseName).getCollection(collectionName); List documents = loadJson("%s/%s/index.json".formatted(prefix(), resourceName), "index", false); - documents.forEach(document -> assertNotNull(collection.createIndex(document))); + documents.forEach(document -> Assertions.assertNotNull(collection.createIndex(document))); } protected Document loadQuery(String pipelineName) { @@ -302,7 +263,7 @@ protected Document loadQuery(String pipelineName) { protected List loadResource(String pipelineName) { InputStream stream = getClass().getResourceAsStream(pipelineName); if (stream == null) { - fail(format("missing action file: src/test/resources/%s/%s", getClass().getPackageName().replace('.', '/'), + Assertions.fail(format("missing action file: src/test/resources/%s/%s", getClass().getPackageName().replace('.', '/'), pipelineName)); } return new BufferedReader(new InputStreamReader(stream)) @@ -315,7 +276,7 @@ protected String loadTestName(String resourceName) { InputStream stream = getClass().getResourceAsStream(name); if (stream == null) { - fail(format("missing name file: %s", name)); + Assertions.fail(format("missing name file: %s", name)); } try (var reader = new BufferedReader(new InputStreamReader(stream))) { @@ -332,17 +293,8 @@ protected List runPipeline(ActionTestOptions options, String pipelineT if (!options.skipActionCheck()) { List target = loadAction(pipelineName); - try { - String expected = toJson(pipeline); - String actual = toJson(target); - toFile("actual", pipeline); - toFile("expected", target); - - JSONAssert.assertEquals("Should generate the same pipeline", actual, expected, false); - } catch (JSONException e) { - throw new RuntimeException(e); - } + assertDocumentListEquals("Should generate the same pipeline", target, pipeline, false); } if (!options.skipDataCheck()) { @@ -359,7 +311,7 @@ protected List runQuery(ActionTestOptions testOptions, String pipeline if (!testOptions.skipActionCheck()) { Document target = loadQuery(resourceName); - assertEquals(toJson(document), toJson(target), "Should generate the same query document"); + assertDocumentEquals("Should generate the same query document", target, document); } if (!testOptions.skipDataCheck()) { @@ -373,14 +325,14 @@ protected List runQuery(ActionTestOptions testOptions, String pipeline @SuppressWarnings({ "rawtypes" }) protected List runUpdate(ActionTestOptions testOptions, String pipelineTemplate, Query query, - FindOptions options, UpdateOperator... operators) { + UpdateOperator... operators) { String resourceName = format("%s/%s/action.json", prefix(), pipelineTemplate); Document document = ((MorphiaQuery) query).toDocument(); checkAction(testOptions, resourceName, document, operators); if (!testOptions.skipDataCheck()) { - var resource = loadResource(resourceName).stream().collect(joining()); + var resource = String.join("", loadResource(resourceName)); query.update(testOptions.updateOptions().multi(resource.contains("updateMany")), operators); try (var cursor = query.iterator()) { return cursor.toList(); @@ -396,20 +348,20 @@ private void checkAction(ActionTestOptions testOptions, UpdateOperator... operators) { if (!testOptions.skipActionCheck()) { List action = loadAction(resourceName); - assertEquals(toJson(document), toJson(action.get(0)), "Should generate the same query document"); + assertDocumentEquals("Should generate the same query document", action.get(0), document); Operations operations = new Operations(getDs(), null, asList(operators), false); Document updates = operations.toDocument(getDs()); - assertEquals(toJson(updates), toJson(action.get(1)), "Should generate the same update document"); + assertDocumentEquals("Should generate the same update document", action.get(1), updates); } } protected void validateTestName(String resourceName) { Method method = findTestMethod(); - Test test = method.getAnnotation(Test.class); - assertEquals( - test.testName(), loadTestName(resourceName), - "%s#%s does not have a name configured on the test.".formatted(method.getDeclaringClass().getName(), - method.getName())); + DisplayName displayName = method.getAnnotation(DisplayName.class); + String testName = displayName != null ? displayName.value() : ""; + Assertions.assertEquals(loadTestName(resourceName), testName, + "%s#%s does not have a @DisplayName configured on the test.".formatted( + method.getDeclaringClass().getName(), method.getName())); } private boolean balanced(String input) { @@ -436,7 +388,7 @@ private void checkExpected(ActionTestOptions options, String resourceName, List< toFile("actual", actual); toFile("expected", expected); - JSONAssert.assertEquals(toJson(expected), toJson(actual), options.orderMatters()); + assertDocumentListEquals(expected, actual, options.orderMatters()); } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); } diff --git a/core/src/test/java/dev/morphia/test/TestArrayUpdates.java b/core/src/test/java/dev/morphia/test/TestArrayUpdates.java index 641f6fb9130..fc977746892 100644 --- a/core/src/test/java/dev/morphia/test/TestArrayUpdates.java +++ b/core/src/test/java/dev/morphia/test/TestArrayUpdates.java @@ -6,14 +6,13 @@ import dev.morphia.test.models.Grade; import dev.morphia.test.models.Student; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.filters.Filters.lt; import static dev.morphia.query.updates.UpdateOperators.inc; import static java.util.Collections.singletonMap; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; public class TestArrayUpdates extends TestBase { @@ -31,8 +30,8 @@ public void testUpdatesWithArrayFilters() { .filter(eq("_id", 1L), eq("grades.marks", 90)); - assertNotNull(grade80.iterator().tryNext()); - assertNotNull(grade90.iterator().tryNext()); + Assertions.assertNotNull(grade80.iterator().tryNext()); + Assertions.assertNotNull(grade90.iterator().tryNext()); Query student = datastore.find(Student.class).filter(eq("_id", 1L)); @@ -40,22 +39,22 @@ public void testUpdatesWithArrayFilters() { .arrayFilter(lt("elem.marks", 90)), inc("grades.$[elem].marks", 5)); - assertNull(grade80.iterator().tryNext()); - assertNotNull(grade90.iterator().tryNext()); + Assertions.assertNull(grade80.iterator().tryNext()); + Assertions.assertNotNull(grade90.iterator().tryNext()); - assertNotNull(datastore.find(Student.class) + Assertions.assertNotNull(datastore.find(Student.class) .filter(eq("_id", 1L), eq("grades.marks", 85)) .iterator() .tryNext()); - assertNotNull(grade90.iterator().tryNext()); + Assertions.assertNotNull(grade90.iterator().tryNext()); student.update(new UpdateOptions() .arrayFilter(lt("elem.marks", 90).not()), inc("grades.$[elem].marks", 5)); - assertNull(grade90.iterator().tryNext()); - assertNotNull(datastore.find(Student.class) + Assertions.assertNull(grade90.iterator().tryNext()); + Assertions.assertNotNull(datastore.find(Student.class) .filter(eq("_id", 1L), eq("grades.marks", 95)) .iterator() diff --git a/core/src/test/java/dev/morphia/test/TestBase.java b/core/src/test/java/dev/morphia/test/TestBase.java index 9495a3995cd..3ccf3384981 100644 --- a/core/src/test/java/dev/morphia/test/TestBase.java +++ b/core/src/test/java/dev/morphia/test/TestBase.java @@ -12,6 +12,7 @@ import java.util.List; import java.util.Map; import java.util.function.Supplier; +import java.util.stream.Stream; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; @@ -35,19 +36,19 @@ import org.bson.codecs.configuration.CodecProvider; import org.bson.codecs.configuration.CodecRegistry; import org.jetbrains.annotations.NotNull; +import org.json.JSONException; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.params.provider.Arguments; +import org.skyscreamer.jsonassert.JSONAssert; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.testng.Assert; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.DataProvider; import static dev.morphia.internal.MorphiaInternals.proxyClassesPresent; import static java.lang.String.format; import static java.nio.file.Files.lines; import static java.util.stream.Collectors.joining; import static java.util.stream.Collectors.toList; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.fail; public abstract class TestBase extends MorphiaTestSetup { private static final Logger LOG = LoggerFactory.getLogger(TestBase.class); @@ -68,12 +69,10 @@ public abstract class TestBase extends MorphiaTestSetup { LOG.info("Running tests using driver version " + MorphiaInternals.getDriverVersion()); } - @DataProvider(name = "mapperTypes") - public static Object[][] mapperTypes() { - return new Object[][] { - { MapperType.REFLECTION }, - { MapperType.CRITTER } - }; + public static Stream mapperTypes() { + return Stream.of( + Arguments.of(MapperType.REFLECTION), + Arguments.of(MapperType.CRITTER)); } public TestBase() { @@ -83,7 +82,72 @@ public TestBase(MorphiaConfig config) { super(config); } - @BeforeMethod + public void assertDocumentEquals(String message, Document expected, Document actual) { + assertDocumentEquals(message, expected, actual, true); + } + + public void assertDocumentEquals(String message, Document expected, Document actual, boolean strict) { + try { + JSONAssert.assertEquals(message, toJson(expected), toJson(actual), strict); + } catch (JSONException e) { + throw new RuntimeException(e); + } + } + + /* + * public void assertDocumentEquals(Document expected, Object actual) { + * if (actual instanceof Document actualDocument) { + * assertDocumentEquals(expected, actualDocument); + * } else { + * LOG.warn("Comparing Document to unexpected type: " + actual.getClass()); + * Assertions.assertEquals(expected, actual); + * } + * } + */ + + public void assertDocumentEquals(Document expected, Document actual) { + assertDocumentEquals(expected, actual, true); + } + + public void assertDocumentEquals(Document expected, Document actual, boolean strict) { + try { + JSONAssert.assertEquals(toJson(expected), toJson(actual), strict); + } catch (JSONException e) { + throw new RuntimeException(e); + } + } + + public void assertDocumentListEquals(List expected, Object actual) { + assertDocumentListEquals(expected, actual, true); + } + + @SuppressWarnings("unchecked") + public void assertDocumentListEquals(List expected, Object actual, boolean strict) { + if (actual instanceof List actualDocuments) { + try { + JSONAssert.assertEquals(toJson(expected), toJson((List) actualDocuments), strict); + } catch (JSONException e) { + throw new RuntimeException(e); + } + } else { + Assertions.assertEquals(expected, actual); + } + } + + @SuppressWarnings("unchecked") + public void assertDocumentListEquals(String message, List expected, Object actual, boolean strict) { + if (actual instanceof List actualDocuments) { + try { + JSONAssert.assertEquals(message, toJson(expected), toJson((List) actualDocuments), strict); + } catch (JSONException e) { + throw new RuntimeException(e); + } + } else { + Assertions.assertEquals(expected, actual, message); + } + } + + @BeforeEach public void beforeEach() { cleanup(); } @@ -142,7 +206,7 @@ public void installData() { .collect(toList())); } } catch (Exception e) { - e.printStackTrace(); + LOG.error(e.getMessage(), e); } assumeTrue(file.exists(), "Failed to process media files"); } @@ -159,9 +223,9 @@ public static T walk(Map map, List steps) { protected void assertCapped(Class type, Integer max) { Document result = getOptions(type); - Assert.assertTrue(result.getBoolean("capped")); - assertEquals(result.get("max"), max); - assertEquals(result.get("size"), 1048576); + Assertions.assertTrue(result.getBoolean("capped")); + Assertions.assertEquals(max, result.get("max")); + Assertions.assertEquals(1048576, result.get("size")); } protected void assertDocumentEquals(Object actual, Object expected) { @@ -172,7 +236,7 @@ protected void assertDocumentEquals(Object actual, Object expected, String messa try { assertDocumentEquals("", actual, expected); } catch (AssertionError error) { - fail(message); + Assertions.fail(message); } } @@ -180,12 +244,12 @@ protected void assertLazy(Supplier messageSupplier, Runnable assertion) try { assertion.run(); } catch (AssertionError error) { - fail(messageSupplier.get(), error); + Assertions.fail(messageSupplier.get(), error); } } protected void assertListEquals(Collection actual, Collection expected) { - assertEquals(actual.size(), expected.size()); + Assertions.assertEquals(expected.size(), actual.size()); expected.forEach( d -> assertTrueLazy(actual.contains(coerceToLong(d)), () -> { String actualString = actual.stream() @@ -200,7 +264,7 @@ protected void assertListEquals(Collection actual, Collection expected) { public void assertTrueLazy(boolean condition, Supplier messageSupplier) { if (!condition) { - fail(messageSupplier.get()); + Assertions.fail(messageSupplier.get()); } } @@ -270,7 +334,7 @@ protected void insert(String collectionName, List list) { collection.deleteMany(new Document()); if (!list.isEmpty()) { InsertManyResult insertManyResult = collection.insertMany(list); - assertEquals(insertManyResult.getInsertedIds().size(), list.size()); + Assertions.assertEquals(list.size(), insertManyResult.getInsertedIds().size()); } } @@ -361,12 +425,13 @@ private void assertDocumentEquals(String path, Object actual, Object expected) { } } if (!found) { - fail("mismatch found at %s.\n\tactual = %s,\n\texpected = %s".formatted(newPath, actual, expected)); + Assertions.fail("mismatch found at %s.\n\tactual = %s,\n\texpected = %s".formatted(newPath, actual, expected)); } } } else { - assertEquals(coerceToLong(actual), coerceToLong(expected), format("mismatch found at %s:%n%s vs %s", path, expected, actual)); + Assertions.assertEquals(coerceToLong(expected), coerceToLong(actual), + format("mismatch found at %s:%n%s vs %s", path, expected, actual)); } } @@ -382,7 +447,7 @@ public static Object coerceToLong(Object object) { private void assertSameNullity(String path, Object expected, Object actual) { if (expected == null && actual != null || actual == null && expected != null) { - assertEquals(actual, expected, format("mismatch found at %s:%n%s vs %s", path, expected, actual)); + Assertions.assertEquals(expected, actual, format("mismatch found at %s:%n%s vs %s", path, expected, actual)); } } @@ -391,12 +456,13 @@ private void assertSameType(String path, Object actual, Object expected) { return; } if (!expected.getClass().equals(actual.getClass())) { - assertEquals(actual, expected, format("mismatch found at %s:%n%s vs %s", path, expected, actual)); + Assertions.assertEquals(expected, actual, format("mismatch found at %s:%n%s vs %s", path, expected, actual)); } } public static class ZDTCodecProvider implements CodecProvider { @Override + @SuppressWarnings("unchecked") public Codec get(Class clazz, CodecRegistry registry) { if (clazz.equals(ZonedDateTime.class)) { return (Codec) new ZonedDateTimeCodec(); diff --git a/core/src/test/java/dev/morphia/test/TestCoverageExtension.java b/core/src/test/java/dev/morphia/test/TestCoverageExtension.java new file mode 100644 index 00000000000..dd10ad457d4 --- /dev/null +++ b/core/src/test/java/dev/morphia/test/TestCoverageExtension.java @@ -0,0 +1,51 @@ +package dev.morphia.test; + +import java.io.File; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.extension.AfterAllCallback; +import org.junit.jupiter.api.extension.ExtensionContext; + +import static java.lang.Character.toLowerCase; +import static java.util.Arrays.stream; + +public class TestCoverageExtension implements AfterAllCallback { + + @Override + public void afterAll(ExtensionContext context) { + Class type = context.getRequiredTestClass(); + var methods = stream(type.getDeclaredMethods()) + .filter(m -> m.getName().startsWith("testExample")) + .map(m -> { + String name = m.getName().substring(4); + return toLowerCase(name.charAt(0)) + name.substring(1); + }) + .toList(); + String path = type.getPackageName(); + String simpleName = type.getSimpleName().substring(4); + var operatorName = toLowerCase(simpleName.charAt(0)) + simpleName.substring(1); + var resourceFolder = TemplatedTestBase.rootToCore( + "src/test/resources/%s/%s".formatted(path.replace('.', '/'), operatorName)); + + if (!resourceFolder.exists() || methods.isEmpty()) { + return; + } + List list = Arrays.stream(resourceFolder.list()) + .map(s -> new File(resourceFolder, s)) + .toList(); + + List examples = list.stream() + .filter(d -> new File(d, "action.json").exists() || new File(d, "expected.json").exists()) + .map(File::getName) + .toList(); + var missing = examples.stream() + .filter(example -> !methods.contains(example)) + .collect(Collectors.joining(", ")); + if (!missing.isEmpty()) { + Assertions.fail("Missing test cases for $%s: %s".formatted(operatorName, missing)); + } + } +} diff --git a/core/src/test/java/dev/morphia/test/TestDatastore.java b/core/src/test/java/dev/morphia/test/TestDatastore.java index b1910b6d742..e9db795aed3 100644 --- a/core/src/test/java/dev/morphia/test/TestDatastore.java +++ b/core/src/test/java/dev/morphia/test/TestDatastore.java @@ -58,7 +58,8 @@ import org.bson.Document; import org.bson.codecs.EncoderContext; import org.bson.types.ObjectId; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static com.mongodb.client.model.CollationStrength.SECONDARY; import static com.mongodb.client.model.ReturnDocument.AFTER; @@ -69,12 +70,6 @@ import static java.util.Arrays.asList; import static java.util.Collections.emptyList; import static java.util.List.of; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNotSame; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertThrows; -import static org.testng.Assert.assertTrue; @SuppressWarnings({ "rawtypes", "ConstantConditions" }) public class TestDatastore extends TestBase { @@ -89,17 +84,17 @@ public TestDatastore() { @Test public void testDatastoreClones() { withConfig(buildConfig(MultipleDSEntity.class), () -> { - assertEquals(getMapper().getMappedEntities().size(), 1); + Assertions.assertEquals(1, getMapper().getMappedEntities().size()); MorphiaDatastore copied = new MorphiaDatastore(getDs()); EntityModel model = getMapper().getEntityModel(MultipleDSEntity.class); EntityModel copiedModel = copied.getMapper().getEntityModel(MultipleDSEntity.class); - assertNotSame(model, copiedModel); - assertNotSame(model.getProperty("_id"), copiedModel.getProperty("_id")); - assertNotSame(model.getProperty("name"), copiedModel.getProperty("name")); - assertNotSame(model.getProperty("count"), copiedModel.getProperty("count")); + Assertions.assertNotSame(copiedModel, model); + Assertions.assertNotSame(copiedModel.getProperty("_id"), model.getProperty("_id")); + Assertions.assertNotSame(copiedModel.getProperty("name"), model.getProperty("name")); + Assertions.assertNotSame(copiedModel.getProperty("count"), model.getProperty("count")); }); } @@ -114,7 +109,7 @@ public void testAlternateCollections() { new FindOptions().collection(alternateName)) .filter(eq("_id", book.id)) .first(); - assertEquals(first, book); + Assertions.assertEquals(book, first); getDs().find(Book.class) .delete(new DeleteOptions() @@ -123,7 +118,7 @@ public void testAlternateCollections() { .find(Book.class) .filter(eq("_id", book.id)) .count(new CountOptions().collection(alternateName)); - assertEquals(count, 0); + Assertions.assertEquals(0, count); book = new Book(); User user = new User(); @@ -134,10 +129,9 @@ public void testAlternateCollections() { .projection(new Document("_id", 1)) .into(new ArrayList<>()); - assertEquals(list.stream() + Assertions.assertEquals(of(book.id, user.getId()), list.stream() .map(d -> d.getObjectId("_id")) - .collect(Collectors.toList()), - of(book.id, user.getId())); + .collect(Collectors.toList())); getDs().find(Book.class) .delete(new DeleteOptions() @@ -153,7 +147,7 @@ public void testAlternateCollections() { .returnDocument(AFTER), inc("copies", 10)); - assertEquals(modify.copies, 10); + Assertions.assertEquals(10, modify.copies); getDs().find(Book.class, new FindOptions().collection(alternateName)) .update(new UpdateOptions() @@ -162,14 +156,14 @@ public void testAlternateCollections() { book = getDs().find(Book.class, new FindOptions().collection(alternateName)).first(); - assertEquals(book.copies, 42); + Assertions.assertEquals(42, book.copies); Book delete = getDs().find(Book.class) .filter(eq("_id", book.id)) .findAndDelete(new FindAndDeleteOptions() .collection(alternateName)); - assertEquals(delete, book); + Assertions.assertEquals(book, delete); } @Test @@ -178,15 +172,15 @@ public void testBulkInsert() { MongoCollection population = getDs().getCollection(Population.class); this.getDs().insert(asList(new TestEntity(), new TestEntity(), new TestEntity(), new TestEntity(), new TestEntity()), new InsertManyOptions().writeConcern(WriteConcern.ACKNOWLEDGED)); - assertEquals(testEntity.countDocuments(), 5); + Assertions.assertEquals(5, testEntity.countDocuments()); testEntity.drop(); population.drop(); this.getDs().insert(asList(new TestEntity(), new TestEntity(), new Population(), new Population(), new Population()), new InsertManyOptions() .writeConcern(WriteConcern.ACKNOWLEDGED)); - assertEquals(testEntity.countDocuments(), 2); - assertEquals(population.countDocuments(), 3); + Assertions.assertEquals(2, testEntity.countDocuments()); + Assertions.assertEquals(3, population.countDocuments()); } @Test @@ -197,27 +191,27 @@ public void testCappedEntity() { Query query = getDs().find(CurrentStatus.class); getDs().save(new CurrentStatus("All Good")); - assertEquals(query.count(), 1); + Assertions.assertEquals(1, query.count()); getDs().save(new CurrentStatus("Kinda Bad")); - assertEquals(query.count(), 1); + Assertions.assertEquals(1, query.count()); - assertTrue(query.iterator() + Assertions.assertTrue(query.iterator() .next().message.contains("Bad")); getDs().save(new CurrentStatus("Kinda Bad2")); - assertEquals(query.count(), 1); + Assertions.assertEquals(1, query.count()); getDs().save(new CurrentStatus("Kinda Bad3")); - assertEquals(query.count(), 1); + Assertions.assertEquals(1, query.count()); getDs().save(new CurrentStatus("Kinda Bad4")); - assertEquals(query.count(), 1); + Assertions.assertEquals(1, query.count()); } @Test public void testCollectionNames() { - assertEquals(getMapper().getEntityModel(FacebookUser.class).collectionName(), "facebook_users"); + Assertions.assertEquals("facebook_users", getMapper().getEntityModel(FacebookUser.class).collectionName()); } @Test @@ -225,11 +219,11 @@ public void testCustomCodecProvider() { getDs().save(new User("Christopher Turk", LocalDate.of(1974, Month.JUNE, 22))); withConfig(buildConfig() .codecProvider(new AlwaysFailingCodecProvider()), () -> { - assertThrows(QueryException.class, + Assertions.assertThrows(QueryException.class, () -> getDs().save(new User("John \"J.D.\" Dorian", LocalDate.of(1974, Month.APRIL, 6)))); - assertThrows(QueryException.class, () -> getDs().find(User.class).first()); + Assertions.assertThrows(QueryException.class, () -> getDs().find(User.class).first()); - assertThrows(QueryException.class, () -> getDs().getCodecRegistry() + Assertions.assertThrows(QueryException.class, () -> getDs().getCodecRegistry() .get(String.class) .encode(new DocumentWriter(getMapper().getConfig()), "this should fail", EncoderContext.builder().build())); }); @@ -242,14 +236,14 @@ public void testDeleteWithCollation() { Query query = getDs().find(FacebookUser.class) .filter(eq("username", "john doe")); - assertEquals(query.delete().getDeletedCount(), 1); + Assertions.assertEquals(1, query.delete().getDeletedCount()); - assertEquals(query.delete(new DeleteOptions() + Assertions.assertEquals(1, query.delete(new DeleteOptions() .collation(Collation.builder() .locale("en") .collationStrength(SECONDARY) .build())) - .getDeletedCount(), 1); + .getDeletedCount()); } @Test @@ -258,18 +252,18 @@ public void testDeletes() { getDs().save(new City()); } DeleteResult delete = getDs().find(City.class).delete(); - assertEquals(delete.getDeletedCount(), 1, "Should only delete 1"); + Assertions.assertEquals(1, delete.getDeletedCount(), "Should only delete 1"); City first = getDs().find(City.class).first(); delete = getDs().delete(first); - assertEquals(delete.getDeletedCount(), 1, "Should only delete 1"); + Assertions.assertEquals(1, delete.getDeletedCount(), "Should only delete 1"); first = getDs().find(City.class).first(); delete = getDs().delete(first, new DeleteOptions().multi(true)); - assertEquals(delete.getDeletedCount(), 1, "Should only delete 1"); + Assertions.assertEquals(1, delete.getDeletedCount(), "Should only delete 1"); delete = getDs().find(City.class).delete(new DeleteOptions().multi(true)); - assertTrue(delete.getDeletedCount() > 1, "Should the rest"); + Assertions.assertTrue(delete.getDeletedCount() > 1, "Should the rest"); } @Test @@ -282,7 +276,7 @@ public void testDoesNotExistAfterDelete() { getDs().find(FacebookUser.class).findAndDelete(); // then - assertNull(getDs().find(FacebookUser.class) + Assertions.assertNull(getDs().find(FacebookUser.class) .filter(eq("_id", key)) .first(), "Shouldn't exist after delete"); } @@ -302,14 +296,14 @@ public void testEmbedded() { borg.setAddress(address); getDs().save(borg); - assertEquals(getDs().find(Hotel.class).count(), 1); - assertNotNull(borg.getId()); + Assertions.assertEquals(1, getDs().find(Hotel.class).count()); + Assertions.assertNotNull(borg.getId()); final Hotel hotelLoaded = getDs().find(Hotel.class) .filter(eq("_id", borg.getId())) .first(); - assertEquals(borg.getName(), hotelLoaded.getName()); - assertEquals(borg.getAddress().getPostCode(), hotelLoaded.getAddress().getPostCode()); + Assertions.assertEquals(hotelLoaded.getName(), borg.getName()); + Assertions.assertEquals(hotelLoaded.getAddress().getPostCode(), borg.getAddress().getPostCode()); } @Test @@ -319,21 +313,21 @@ public void testFindAndDeleteWithCollation() { Query query = getDs().find(FacebookUser.class) .filter(eq("username", "john doe")); - assertNotNull(query.findAndDelete()); - assertNull(query.findAndDelete()); + Assertions.assertNotNull(query.findAndDelete()); + Assertions.assertNull(query.findAndDelete()); FindAndDeleteOptions options = new FindAndDeleteOptions() .collation(Collation.builder() .locale("en") .collationStrength(SECONDARY) .build()); - assertNotNull(query.findAndDelete(options)); - assertNull(query.iterator().tryNext()); + Assertions.assertNotNull(query.findAndDelete(options)); + Assertions.assertNull(query.iterator().tryNext()); } @Test public void testFindAndDeleteWithNoQueryMatch() { - assertNull(getDs().find(FacebookUser.class) + Assertions.assertNull(getDs().find(FacebookUser.class) .filter(eq("username", "David S. Pumpkins")) .findAndDelete()); } @@ -347,16 +341,16 @@ public void testFindAndModify() { .filter(eq("username", "john doe")); FacebookUser modified = query.modify(inc("loginCount")); - assertEquals(modified.loginCount, 0); - assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 1)).first().loginCount, 0); - assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 2)).first().loginCount, 1); + Assertions.assertEquals(0, modified.loginCount); + Assertions.assertEquals(0, getDs().find(FacebookUser.class).filter(eq("id", 1)).first().loginCount); + Assertions.assertEquals(1, getDs().find(FacebookUser.class).filter(eq("id", 2)).first().loginCount); modified = query.modify(new ModifyOptions().returnDocument(AFTER), inc("loginCount")); - assertEquals(modified.loginCount, 2); - assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 1)).first().loginCount, 0); - assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 2)).first().loginCount, 2); + Assertions.assertEquals(2, modified.loginCount); + Assertions.assertEquals(0, getDs().find(FacebookUser.class).filter(eq("id", 1)).first().loginCount); + Assertions.assertEquals(2, getDs().find(FacebookUser.class).filter(eq("id", 2)).first().loginCount); - assertNull(getDs().find(FacebookUser.class) + Assertions.assertNull(getDs().find(FacebookUser.class) .filter(eq("id", 3L), eq("username", "Jon Snow")) .modify(new ModifyOptions() @@ -365,8 +359,8 @@ public void testFindAndModify() { inc("loginCount", 4))); FacebookUser user = getDs().find(FacebookUser.class).filter(eq("id", 3)).first(); - assertEquals(user.loginCount, 4); - assertEquals(user.username, "Jon Snow"); + Assertions.assertEquals(4, user.loginCount); + Assertions.assertEquals("Jon Snow", user.username); FacebookUser results = getDs().find(FacebookUser.class) .filter(eq("id", 4L), @@ -375,12 +369,12 @@ public void testFindAndModify() { .returnDocument(AFTER) .upsert(true), inc("loginCount")); - assertEquals(results.loginCount, 1); - assertEquals(results.username, "Ron Swanson"); + Assertions.assertEquals(1, results.loginCount); + Assertions.assertEquals("Ron Swanson", results.username); user = getDs().find(FacebookUser.class).filter(eq("id", 4)).iterator().next(); - assertEquals(user.loginCount, 1); - assertEquals(user.username, "Ron Swanson"); + Assertions.assertEquals(1, user.loginCount); + Assertions.assertEquals("Ron Swanson", user.username); } @Test @@ -392,11 +386,11 @@ public void testFindAndModifyWithOptions() { .filter(eq("username", "john doe")) .modify(inc("loginCount")); - assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 1)).iterator() - .next().loginCount, 0); - assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 2)).iterator() - .next().loginCount, 1); - assertEquals(result.loginCount, 0); + Assertions.assertEquals(0, getDs().find(FacebookUser.class).filter(eq("id", 1)).iterator() + .next().loginCount); + Assertions.assertEquals(1, getDs().find(FacebookUser.class).filter(eq("id", 2)).iterator() + .next().loginCount); + Assertions.assertEquals(0, result.loginCount); result = getDs().find(FacebookUser.class) .filter(eq("username", "john doe")) @@ -407,11 +401,11 @@ public void testFindAndModifyWithOptions() { .collationStrength(SECONDARY) .build()), inc("loginCount")); - assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 1)).iterator() - .next().loginCount, 1); - assertEquals(result.loginCount, 0); - assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 2)).iterator() - .next().loginCount, 1); + Assertions.assertEquals(1, getDs().find(FacebookUser.class).filter(eq("id", 1)).iterator() + .next().loginCount); + Assertions.assertEquals(0, result.loginCount); + Assertions.assertEquals(1, getDs().find(FacebookUser.class).filter(eq("id", 2)).iterator() + .next().loginCount); result = getDs().find(FacebookUser.class) .filter(eq("id", 3L), @@ -421,11 +415,11 @@ public void testFindAndModifyWithOptions() { .upsert(true), inc("loginCount")); - assertNull(result); + Assertions.assertNull(result); FacebookUser user = getDs().find(FacebookUser.class).filter(eq("id", 3)).iterator() .next(); - assertEquals(user.loginCount, 1); - assertEquals(user.username, "Jon Snow"); + Assertions.assertEquals(1, user.loginCount); + Assertions.assertEquals("Jon Snow", user.username); result = getDs().find(FacebookUser.class) .filter(eq("id", 4L), @@ -435,30 +429,30 @@ public void testFindAndModifyWithOptions() { .upsert(true), inc("loginCount")); - assertNotNull(result); + Assertions.assertNotNull(result); user = getDs().find(FacebookUser.class).filter(eq("id", 4)).iterator() .next(); - assertEquals(result.loginCount, 1); - assertEquals(result.username, "Ron Swanson"); - assertEquals(user.loginCount, 1); - assertEquals(user.username, "Ron Swanson"); + Assertions.assertEquals(1, result.loginCount); + Assertions.assertEquals("Ron Swanson", result.username); + Assertions.assertEquals(1, user.loginCount); + Assertions.assertEquals("Ron Swanson", user.username); } @Test public void testIdUpdatedOnSave() { final Rectangle rect = new Rectangle(10, 10); getDs().save(rect); - assertNotNull(rect.getId()); + Assertions.assertNotNull(rect.getId()); } @Test public void testInsert() { MongoCollection collection = getDs().getCollection(TestEntity.class); this.getDs().insert(new TestEntity()); - assertEquals(collection.countDocuments(), 1); + Assertions.assertEquals(1, collection.countDocuments()); this.getDs().insert(new TestEntity(), new InsertOneOptions() .writeConcern(WriteConcern.ACKNOWLEDGED)); - assertEquals(collection.countDocuments(), 2); + Assertions.assertEquals(2, collection.countDocuments()); } @Test @@ -466,17 +460,17 @@ public void testReplace() { User bob = new User("bob", LocalDate.now()); User linda = new User("linda", LocalDate.now()); - assertThrows(MissingIdException.class, () -> this.getDs().replace(bob)); + Assertions.assertThrows(MissingIdException.class, () -> this.getDs().replace(bob)); - assertThrows(MissingIdException.class, () -> this.getDs().replace(List.of(bob, linda))); + Assertions.assertThrows(MissingIdException.class, () -> this.getDs().replace(List.of(bob, linda))); this.getDs().insert(bob); - assertEquals(getDs().find(User.class).count(), 1); + Assertions.assertEquals(1, getDs().find(User.class).count()); this.getDs().insert(linda); bob.setLikes(List.of("burgers")); getDs().replace(bob); - assertEquals(getDs().find(User.class).first().getLikes(), List.of("burgers")); + Assertions.assertEquals(List.of("burgers"), getDs().find(User.class).first().getLikes()); bob.setLikes(List.of("burgers", "linda")); linda.setLikes(List.of("bob", "tina", "gene", "louise")); @@ -484,9 +478,9 @@ public void testReplace() { for (User user : getDs().find(User.class)) { if (user.name.equals("bob")) { - assertEquals(user.getLikes(), List.of("burgers", "linda")); + Assertions.assertEquals(List.of("burgers", "linda"), user.getLikes()); } else { - assertEquals(user.getLikes(), List.of("bob", "tina", "gene", "louise")); + Assertions.assertEquals(List.of("bob", "tina", "gene", "louise"), user.getLikes()); } } } @@ -502,37 +496,37 @@ public void testInsertEmpty() { public void testLifecycle() { final LifecycleTestObj life1 = new LifecycleTestObj(); getDs().save(life1); - assertTrue(LifecycleListener.foundDatastore); - assertTrue(life1.prePersist); - assertTrue(life1.prePersistWithParam); - assertTrue(life1.prePersistWithParamAndReturn); - assertTrue(life1.postPersist); - assertTrue(life1.postPersistWithParam); + Assertions.assertTrue(LifecycleListener.foundDatastore); + Assertions.assertTrue(life1.prePersist); + Assertions.assertTrue(life1.prePersistWithParam); + Assertions.assertTrue(life1.prePersistWithParamAndReturn); + Assertions.assertTrue(life1.postPersist); + Assertions.assertTrue(life1.postPersistWithParam); final Datastore datastore = getDs(); final LifecycleTestObj loaded = datastore.find(LifecycleTestObj.class) .filter(eq("_id", life1.id)) .first(); - assertTrue(loaded.preLoad); - assertTrue(loaded.preLoadWithParam); - assertTrue(loaded.postLoad); - assertTrue(loaded.postLoadWithParam); + Assertions.assertTrue(loaded.preLoad); + Assertions.assertTrue(loaded.preLoadWithParam); + Assertions.assertTrue(loaded.postLoad); + Assertions.assertTrue(loaded.postLoadWithParam); } @Test public void testLifecycleListeners() { final LifecycleTestObj life1 = new LifecycleTestObj(); getDs().save(life1); - assertTrue(LifecycleListener.prePersist); - assertTrue(LifecycleListener.prePersistWithEntity); + Assertions.assertTrue(LifecycleListener.prePersist); + Assertions.assertTrue(LifecycleListener.prePersistWithEntity); } @Test public void testModifyWithBadPaths() { Query query = getDs().find(LifecycleTestObj.class); - assertThrows(ValidationException.class, () -> query.modify(inc("some.field", 2))); + Assertions.assertThrows(ValidationException.class, () -> query.modify(inc("some.field", 2))); query.first(); } @@ -541,24 +535,24 @@ public void testModifyWithBadPaths() { public void testRefresh() { FacebookUser steve = getDs().save(new FacebookUser(1, "Steve")); - assertEquals(steve.loginCount, 0); + Assertions.assertEquals(0, steve.loginCount); UpdateResult loginCount = getDs().find(FacebookUser.class) .update(inc("loginCount", 10)); - assertEquals(loginCount.getModifiedCount(), 1); + Assertions.assertEquals(1, loginCount.getModifiedCount()); getDs().refresh(steve); - assertEquals(steve.loginCount, 10); + Assertions.assertEquals(10, steve.loginCount); loginCount = getDs().find(FacebookUser.class) .update( set("username", "Mark"), set("loginCount", 1)); - assertEquals(loginCount.getModifiedCount(), 1); + Assertions.assertEquals(1, loginCount.getModifiedCount()); getDs().refresh(steve); - assertEquals(steve.loginCount, 1); - assertEquals(steve.username, "Mark"); + Assertions.assertEquals(1, steve.loginCount); + Assertions.assertEquals("Mark", steve.username); } @@ -567,9 +561,9 @@ public void testSaveWithNoID() { Grade grade = new Grade(); grade.marks = 80; - assertThrows(MappingException.class, () -> getDs().save(grade)); + Assertions.assertThrows(MappingException.class, () -> getDs().save(grade)); - assertThrows(MappingException.class, () -> getDs().save(of(grade, grade))); + Assertions.assertThrows(MappingException.class, () -> getDs().save(of(grade, grade))); } @@ -583,10 +577,10 @@ public void testUpdateWithCollation() { UpdateResult results = query.update(inc("loginCount")); - assertEquals(results.getModifiedCount(), 1); - assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 1)).iterator().next().loginCount, 0); - assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 2)).iterator() - .next().loginCount, 1); + Assertions.assertEquals(1, results.getModifiedCount()); + Assertions.assertEquals(0, getDs().find(FacebookUser.class).filter(eq("id", 1)).iterator().next().loginCount); + Assertions.assertEquals(1, getDs().find(FacebookUser.class).filter(eq("id", 2)).iterator() + .next().loginCount); results = query.update(new UpdateOptions() .multi(true) @@ -595,11 +589,11 @@ public void testUpdateWithCollation() { .collationStrength(SECONDARY) .build()), inc("loginCount")); - assertEquals(results.getModifiedCount(), 2); - assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 1)).iterator() - .next().loginCount, 1); - assertEquals(getDs().find(FacebookUser.class).filter(eq("id", 2)).iterator() - .next().loginCount, 2); + Assertions.assertEquals(2, results.getModifiedCount()); + Assertions.assertEquals(1, getDs().find(FacebookUser.class).filter(eq("id", 1)).iterator() + .next().loginCount); + Assertions.assertEquals(2, getDs().find(FacebookUser.class).filter(eq("id", 2)).iterator() + .next().loginCount); } private static class LifecycleListener implements EntityListener { diff --git a/core/src/test/java/dev/morphia/test/TestDatastoreMerge.java b/core/src/test/java/dev/morphia/test/TestDatastoreMerge.java index 11c56677b7d..a26c32ab21d 100644 --- a/core/src/test/java/dev/morphia/test/TestDatastoreMerge.java +++ b/core/src/test/java/dev/morphia/test/TestDatastoreMerge.java @@ -11,12 +11,11 @@ import dev.morphia.query.filters.Filters; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.set; -import static org.testng.Assert.assertNotNull; public class TestDatastoreMerge extends TestBase { @@ -29,15 +28,15 @@ public void merge() { ds.save(test1); Test2 test2 = ds.find(Test2.class).first(); - assertNotNull(test2.id); + Assertions.assertNotNull(test2.id); test2.blarg = "barfoo"; long version = test2.version; ds.merge(test2); - Assert.assertEquals(version + 1, test2.version); + Assertions.assertEquals(test2.version, version + 1); test1 = ds.find(Test1.class).filter(eq("_id", test1.id)).first(); - assertNotNull(test1.name); + Assertions.assertNotNull(test1.name); } @Test @@ -48,7 +47,7 @@ public void testMerge() { te.position = 1; getDs().save(te); - Assert.assertEquals(getDs().find(te.getClass()).count(), 1); + Assertions.assertEquals(1, getDs().find(te.getClass()).count()); //only update the position field with merge, normally save would override the whole object. final Merger te2 = new Merger(); @@ -56,9 +55,9 @@ public void testMerge() { te2.position = 5; Merger merge = getDs().merge(te2); - Assert.assertEquals(te.name, merge.name); - Assert.assertEquals(te.foo, merge.foo); - Assert.assertEquals(te2.position, merge.position); + Assertions.assertEquals(merge.name, te.name); + Assertions.assertEquals(merge.foo, te.foo); + Assertions.assertEquals(merge.position, te2.position); } @Test @@ -69,7 +68,7 @@ public void testMergeWithUnset() { te.position = 1; getDs().save(te); - Assert.assertEquals(getDs().find(te.getClass()).count(), 1); + Assertions.assertEquals(1, getDs().find(te.getClass()).count()); //only update the position field with merge, normally save would override the whole object. final Merger te2 = new Merger(); @@ -77,10 +76,10 @@ public void testMergeWithUnset() { te2.position = 5; Merger merge = getDs().merge(te2, new InsertOneOptions().unsetMissing(true)); - Assert.assertNull(merge.name); - Assert.assertNull(merge.foo); - Assert.assertEquals(te2.id, merge.id); - Assert.assertEquals(te2.position, merge.position); + Assertions.assertNull(merge.name); + Assertions.assertNull(merge.foo); + Assertions.assertEquals(merge.id, te2.id); + Assertions.assertEquals(merge.position, te2.position); } @Test @@ -99,7 +98,7 @@ public void testMergeWithUnsetAndLoadOnly() { LoadOnlyEntity updatedEntity1 = ds.find(LoadOnlyEntity.class) .filter(Filters.eq("_id", entity.id)) .first(); - assertNotNull(updatedEntity1.loadOnlyValue); // PASSES + Assertions.assertNotNull(updatedEntity1.loadOnlyValue); // PASSES // Updates the name value using the datastore's "merge()" method: entity.name = "TestB"; @@ -107,7 +106,7 @@ public void testMergeWithUnsetAndLoadOnly() { LoadOnlyEntity updatedEntity2 = ds.find(LoadOnlyEntity.class) .filter(Filters.eq("_id", entity.id)) .first(); - assertNotNull(updatedEntity2.loadOnlyValue); // FAILS + Assertions.assertNotNull(updatedEntity2.loadOnlyValue); // FAILS } @Entity diff --git a/core/src/test/java/dev/morphia/test/TestDiscriminatorLookup.java b/core/src/test/java/dev/morphia/test/TestDiscriminatorLookup.java index a25fc6763ca..5be2d64a135 100644 --- a/core/src/test/java/dev/morphia/test/TestDiscriminatorLookup.java +++ b/core/src/test/java/dev/morphia/test/TestDiscriminatorLookup.java @@ -3,10 +3,8 @@ import dev.morphia.annotations.Entity; import dev.morphia.test.models.TestEntity; -import org.testng.annotations.Test; - -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class TestDiscriminatorLookup extends TestBase { @@ -20,8 +18,8 @@ public void testLookup() { }); final SomeEntity entity = getDs().find(SomeEntity.class).first(); - assertNotNull(entity); - assertTrue(Shape.Square.class.isInstance(entity.getShape())); + Assertions.assertNotNull(entity); + Assertions.assertTrue(Shape.Square.class.isInstance(entity.getShape())); } @Entity diff --git a/core/src/test/java/dev/morphia/test/TestDocumentValidation.java b/core/src/test/java/dev/morphia/test/TestDocumentValidation.java index 516c0099241..377314be700 100644 --- a/core/src/test/java/dev/morphia/test/TestDocumentValidation.java +++ b/core/src/test/java/dev/morphia/test/TestDocumentValidation.java @@ -43,9 +43,8 @@ import org.bson.Document; import org.bson.json.JsonWriterSettings; -import org.testng.Assert; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.annotations.internal.ValidationBuilder.validationBuilder; import static dev.morphia.query.filters.Filters.eq; @@ -53,10 +52,6 @@ import static dev.morphia.query.updates.UpdateOperators.unset; import static java.util.Arrays.asList; import static org.bson.Document.parse; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertTrue; -import static org.testng.Assert.fail; public class TestDocumentValidation extends TestBase { public TestDocumentValidation() { @@ -64,21 +59,16 @@ public TestDocumentValidation() { .applyDocumentValidations(true)); } - @BeforeMethod - public void checkVersion() { - checkMinDriverVersion("4.3.0"); - } - @Test public void createValidation() { getDs().enableDocumentValidation(); - assertEquals(parse(DocumentValidation.class.getAnnotation(Validation.class).value()), getValidator()); + Assertions.assertEquals(getValidator(), parse(DocumentValidation.class.getAnnotation(Validation.class).value())); try { getDs().save(new DocumentValidation("John", 1, new Date())); - fail("Document should have failed validation"); + Assertions.fail("Document should have failed validation"); } catch (MongoWriteException e) { - assertTrue(e.getMessage().contains("Document failed validation")); + Assertions.assertTrue(e.getMessage().contains("Document failed validation")); } getDs().save(new DocumentValidation("Harold", 100, new Date())); @@ -95,7 +85,7 @@ public void findAndModify() { try { query.modify(options, set("number", 5)); - fail("Document validation should have complained"); + Assertions.fail("Document validation should have complained"); } catch (MongoCommandException e) { // expected } @@ -103,7 +93,7 @@ public void findAndModify() { options.bypassDocumentValidation(true); query.modify(options, set("number", 5)); - Assert.assertNotNull(query.filter(eq("number", 5)) + Assertions.assertNotNull(query.filter(eq("number", 5)) .iterator() .next()); } @@ -112,7 +102,7 @@ public void findAndModify() { public void insert() { try { getDs().insert(new DocumentValidation("Harold", 8, new Date())); - fail("Document validation should have complained"); + Assertions.fail("Document validation should have complained"); } catch (MongoWriteException e) { // expected } @@ -122,7 +112,7 @@ public void insert() { Query query = getDs().find(DocumentValidation.class) .filter(eq("number", 8)); - Assert.assertNotNull(query.iterator().tryNext()); + Assertions.assertNotNull(query.iterator().tryNext()); List list = asList(new DocumentValidation("Harold", 8, new Date()), new DocumentValidation("John", 8, new Date()), @@ -132,7 +122,7 @@ public void insert() { try { getDs().insert(list); - fail("Document validation should have complained"); + Assertions.fail("Document validation should have complained"); } catch (MongoBulkWriteException e) { // expected } @@ -140,7 +130,7 @@ public void insert() { getDs().insert(list, new InsertManyOptions() .bypassDocumentValidation(true)); - assertTrue(query.filter(eq("number", 8)).iterator().hasNext()); + Assertions.assertTrue(query.filter(eq("number", 8)).iterator().hasNext()); } @Test @@ -151,7 +141,7 @@ public void jsonSchemaValidation() { parse("{ '_id': 2, 'name': 'Ivan', 'city': 'Vancouver' }"))); getDs().applyDocumentValidations(); - Assert.assertThrows(MongoWriteException.class, + Assertions.assertThrows(MongoWriteException.class, () -> getDs().find(Contact.class) .filter(eq("_id", 1)) .update(set("age", 42))); @@ -168,31 +158,31 @@ public void overwriteValidation() { Document validator = parse("{ \"jelly\" : { \"$ne\" : \"rhubarb\" } }"); MongoDatabase database = addValidation(validator); - assertEquals(validator, getValidator()); + Assertions.assertEquals(getValidator(), validator); Document rhubarb = new Document("jelly", "rhubarb").append("number", 20); database.getCollection("validation").insertOne(new Document("jelly", "grape")); try { database.getCollection("validation").insertOne(rhubarb); - fail("Document should have failed validation"); + Assertions.fail("Document should have failed validation"); } catch (MongoWriteException e) { - assertTrue(e.getMessage().contains("Document failed validation")); + Assertions.assertTrue(e.getMessage().contains("Document failed validation")); } getDs().applyDocumentValidations(); - assertEquals(parse(DocumentValidation.class.getAnnotation(Validation.class).value()), getValidator()); + Assertions.assertEquals(getValidator(), parse(DocumentValidation.class.getAnnotation(Validation.class).value())); try { database.getCollection("validation").insertOne(rhubarb); } catch (MongoWriteException e) { - assertFalse(e.getMessage().contains("Document failed validation")); + Assertions.assertFalse(e.getMessage().contains("Document failed validation")); } try { getDs().save(new DocumentValidation("John", 1, new Date())); - fail("Document should have failed validation"); + Assertions.fail("Document should have failed validation"); } catch (MongoWriteException e) { - assertTrue(e.getMessage().contains("Document failed validation")); + Assertions.assertTrue(e.getMessage().contains("Document failed validation")); } }); } @@ -201,7 +191,7 @@ public void overwriteValidation() { public void save() { try { getDs().save(new DocumentValidation("Harold", 8, new Date())); - fail("Document validation should have complained"); + Assertions.fail("Document validation should have complained"); } catch (MongoWriteException e) { // expected } @@ -211,7 +201,7 @@ public void save() { Query query = getDs().find(DocumentValidation.class) .filter(eq("number", 8)); - Assert.assertNotNull(query.iterator().tryNext()); + Assertions.assertNotNull(query.iterator().tryNext()); List list = asList(new DocumentValidation("Harold", 8, new Date()), new DocumentValidation("Harold", 8, new Date()), @@ -220,14 +210,14 @@ public void save() { new DocumentValidation("Harold", 8, new Date())); try { getDs().save(list); - fail("Document validation should have complained"); + Assertions.fail("Document validation should have complained"); } catch (MongoBulkWriteException e) { // expected } getDs().save(list, new InsertManyOptions().bypassDocumentValidation(true)); - assertTrue(query.filter(eq("number", 8)).iterator().hasNext()); + Assertions.assertTrue(query.filter(eq("number", 8)).iterator().hasNext()); } @Test @@ -237,13 +227,13 @@ public void testBypassDocumentValidation() { try { getDs().save(user); - fail("Document validation should have rejected the document"); + Assertions.fail("Document validation should have rejected the document"); } catch (MongoWriteException ignored) { } getDs().save(user, new InsertOneOptions().bypassDocumentValidation(true)); - assertEquals(getDs().find(User.class).count(), 1); + Assertions.assertEquals(1, getDs().find(User.class).count()); } @Test @@ -256,7 +246,7 @@ public void update() { .bypassDocumentValidation(false); try { query.update(options, set("number", 5)); - fail("Document validation should have complained"); + Assertions.fail("Document validation should have complained"); } catch (MongoWriteException e) { // expected } @@ -264,7 +254,7 @@ public void update() { options.bypassDocumentValidation(true); query.update(options, set("number", 5)); - Assert.assertNotNull(query.filter(eq("number", 5)).iterator() + Assertions.assertNotNull(query.filter(eq("number", 5)).iterator() .tryNext()); } @@ -300,7 +290,7 @@ private void checkValidation(Document validator, EntityModel model, ValidationLe Document validation = getValidation(); for (String key : expected.keySet()) { - assertEquals(expected.get(key), validation.get(key)); + Assertions.assertEquals(validation.get(key), expected.get(key)); } } @@ -312,7 +302,7 @@ private Document getValidation() { Document cursor = (Document) document.get("cursor"); List firstBatch = (List) cursor.get("firstBatch"); - assertFalse(firstBatch.isEmpty(), cursor.toJson(JsonWriterSettings.builder().indent(true).build())); + Assertions.assertFalse(firstBatch.isEmpty(), cursor.toJson(JsonWriterSettings.builder().indent(true).build())); return (Document) firstBatch.get(0).get("options"); } diff --git a/core/src/test/java/dev/morphia/test/TestTransactions.java b/core/src/test/java/dev/morphia/test/TestTransactions.java index 5031e9f40f1..3d4a147e42d 100644 --- a/core/src/test/java/dev/morphia/test/TestTransactions.java +++ b/core/src/test/java/dev/morphia/test/TestTransactions.java @@ -21,21 +21,18 @@ import dev.morphia.transactions.MorphiaSession; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static com.mongodb.ClientSessionOptions.builder; import static com.mongodb.WriteConcern.MAJORITY; import static dev.morphia.query.updates.UpdateOperators.inc; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; -//@Tags(@Tag("transactions")) +/*@Tags(@Tag("transactions"))*/ public class TestTransactions extends dev.morphia.test.TemplatedTestBase { - @BeforeMethod + @BeforeEach public void before() { checkForReplicaSet(); getDs().save(new Rectangle(1, 1)); @@ -44,11 +41,6 @@ public void before() { getDs().find(User.class).findAndDelete(); } - @AfterClass - @Override - public void testCoverage() { - } - @Test public void delete() { Rectangle rectangle = new Rectangle(1, 1); @@ -61,13 +53,13 @@ public void delete() { .build()) .build(), session -> { - assertNotNull(datastore.find(Rectangle.class).first()); - assertNotNull(session.find(Rectangle.class).first()); + Assertions.assertNotNull(datastore.find(Rectangle.class).first()); + Assertions.assertNotNull(session.find(Rectangle.class).first()); session.delete(rectangle); - assertNotNull(datastore.find(Rectangle.class).first()); - assertNull(session.find(Rectangle.class).first()); + Assertions.assertNotNull(datastore.find(Rectangle.class).first()); + Assertions.assertNull(session.find(Rectangle.class).first()); return null; }); @@ -80,13 +72,13 @@ public void insert() { getDs().withTransaction(session -> { session.insert(rectangle); - assertNull(getDs().find(Rectangle.class).first()); - assertEquals(session.find(Rectangle.class).count(), 1); + Assertions.assertNull(getDs().find(Rectangle.class).first()); + Assertions.assertEquals(1, session.find(Rectangle.class).count()); return null; }); - assertNotNull(getDs().find(Rectangle.class).first()); + Assertions.assertNotNull(getDs().find(Rectangle.class).first()); } @Test @@ -97,13 +89,13 @@ public void insertList() { getDs().withTransaction(session -> { session.insert(rectangles); - assertNull(getDs().find(Rectangle.class).first()); - assertEquals(session.find(Rectangle.class).iterator().toList(), rectangles); + Assertions.assertNull(getDs().find(Rectangle.class).first()); + Assertions.assertEquals(rectangles, session.find(Rectangle.class).iterator().toList()); return null; }); - assertEquals(getDs().find(Rectangle.class).count(), 2); + Assertions.assertEquals(2, getDs().find(Rectangle.class).count()); } @Test @@ -119,10 +111,10 @@ public void manual() { session.save(new User("transactions", LocalDate.now())); - assertNull(getDs().find(Rectangle.class).first()); - assertNull(getDs().find(User.class).first()); - assertNotNull(session.find(Rectangle.class).first()); - assertNotNull(session.find(User.class).first()); + Assertions.assertNull(getDs().find(Rectangle.class).first()); + Assertions.assertNull(getDs().find(User.class).first()); + Assertions.assertNotNull(session.find(Rectangle.class).first()); + Assertions.assertNotNull(session.find(User.class).first()); session.commitTransaction(); success = true; @@ -137,8 +129,8 @@ public void manual() { } } - assertNotNull(getDs().find(Rectangle.class).first()); - assertNotNull(getDs().find(User.class).first()); + Assertions.assertNotNull(getDs().find(Rectangle.class).first()); + Assertions.assertNotNull(getDs().find(User.class).first()); } @Test @@ -146,26 +138,27 @@ public void merge() { Rectangle rectangle = new Rectangle(1, 1); getDs().save(rectangle); - assertEquals(getDs().find(Rectangle.class).count(), 1); + Assertions.assertEquals(1, getDs().find(Rectangle.class).count()); getDs().withTransaction(session -> { - assertEquals(getDs().find(Rectangle.class).first(), new Rectangle(1, 1)); - assertEquals(session.find(Rectangle.class).first(), new Rectangle(1, 1)); + Assertions.assertEquals(new Rectangle(1, 1), getDs().find(Rectangle.class).first()); + Assertions.assertEquals(new Rectangle(1, 1), session.find(Rectangle.class).first()); rectangle.setWidth(20); session.merge(rectangle); - assertEquals(getDs().find(Rectangle.class).first().getWidth(), 1, 0.5); - assertEquals(session.find(Rectangle.class).first().getWidth(), 20, 0.5); + Assertions.assertEquals(1, getDs().find(Rectangle.class).first().getWidth(), 0.5); + Assertions.assertEquals(20, session.find(Rectangle.class).first().getWidth(), 0.5); return null; }); - assertEquals(getDs().find(Rectangle.class).first().getWidth(), 20, 0.5); + Assertions.assertEquals(20, getDs().find(Rectangle.class).first().getWidth(), 0.5); } - @Test(testName = "transactional aggregations") + @Test + @DisplayName("transactional aggregations") public void aggregation() { getDs().withTransaction(session -> { testPipeline( @@ -189,20 +182,20 @@ public void modify() { getDs().withTransaction(session -> { session.save(rectangle); - assertNull(getDs().find(Rectangle.class).first()); + Assertions.assertNull(getDs().find(Rectangle.class).first()); Rectangle modified = session.find(Rectangle.class) .modify(inc("width", 13)); - assertNull(getDs().find(Rectangle.class).first()); - assertEquals(rectangle.getWidth(), modified.getWidth(), 0.5); - assertEquals(rectangle.getWidth() + 13, session.find(Rectangle.class) - .first().getWidth(), 0.5); + Assertions.assertNull(getDs().find(Rectangle.class).first()); + Assertions.assertEquals(modified.getWidth(), rectangle.getWidth(), 0.5); + Assertions.assertEquals(session.find(Rectangle.class) + .first().getWidth(), rectangle.getWidth() + 13, 0.5); return null; }); - assertEquals(getDs().find(Rectangle.class).first().getWidth(), rectangle.getWidth() + 13, 0.5); + Assertions.assertEquals(rectangle.getWidth() + 13, getDs().find(Rectangle.class).first().getWidth(), 0.5); } @Test @@ -212,18 +205,18 @@ public void remove() { getDs().withTransaction(session -> { - assertNotNull(getDs().find(Rectangle.class).first()); - assertNotNull(session.find(Rectangle.class).first()); + Assertions.assertNotNull(getDs().find(Rectangle.class).first()); + Assertions.assertNotNull(session.find(Rectangle.class).first()); session.find(Rectangle.class) .delete(); - assertNotNull(getDs().find(Rectangle.class).first()); - assertNull(session.find(Rectangle.class).first()); + Assertions.assertNotNull(getDs().find(Rectangle.class).first()); + Assertions.assertNull(session.find(Rectangle.class).first()); return null; }); - assertNull(getDs().find(Rectangle.class).first()); + Assertions.assertNull(getDs().find(Rectangle.class).first()); } @Test @@ -233,19 +226,19 @@ public void save() { getDs().withTransaction(session -> { session.save(rectangle); - assertNull(getDs().find(Rectangle.class).first()); - assertNotNull(session.find(Rectangle.class).first()); + Assertions.assertNull(getDs().find(Rectangle.class).first()); + Assertions.assertNotNull(session.find(Rectangle.class).first()); rectangle.setWidth(42); session.save(rectangle); - assertNull(getDs().find(Rectangle.class).first()); - assertEquals(session.find(Rectangle.class).first().getWidth(), 42, 0.5); + Assertions.assertNull(getDs().find(Rectangle.class).first()); + Assertions.assertEquals(42, session.find(Rectangle.class).first().getWidth(), 0.5); return null; }); - assertNotNull(getDs().find(Rectangle.class).first()); + Assertions.assertNotNull(getDs().find(Rectangle.class).first()); } @Test @@ -256,13 +249,13 @@ public void saveList() { getDs().withTransaction(session -> { session.save(rectangles); - assertNull(getDs().find(Rectangle.class).first()); - assertEquals(session.find(Rectangle.class).count(), 2); + Assertions.assertNull(getDs().find(Rectangle.class).first()); + Assertions.assertEquals(2, session.find(Rectangle.class).count()); return null; }); - assertEquals(getDs().find(Rectangle.class).count(), 2); + Assertions.assertEquals(2, getDs().find(Rectangle.class).count()); } @Test @@ -281,7 +274,7 @@ public void testTransactions() { var list = session.find(Employee.class).iterator().toList(); - assertEquals(list.size(), 1); + Assertions.assertEquals(1, list.size()); return null; }); @@ -294,18 +287,18 @@ public void update() { getDs().withTransaction(session -> { session.save(rectangle); - assertNull(getDs().find(Rectangle.class).first()); + Assertions.assertNull(getDs().find(Rectangle.class).first()); session.find(Rectangle.class) .update(inc("width", 13)); - assertEquals(session.find(Rectangle.class).first().getWidth(), rectangle.getWidth() + 13, 0.5); + Assertions.assertEquals(rectangle.getWidth() + 13, session.find(Rectangle.class).first().getWidth(), 0.5); - assertNull(getDs().find(Rectangle.class).first()); + Assertions.assertNull(getDs().find(Rectangle.class).first()); return null; }); - assertEquals(getDs().find(Rectangle.class).first().getWidth(), rectangle.getWidth() + 13, 0.5); + Assertions.assertEquals(rectangle.getWidth() + 13, getDs().find(Rectangle.class).first().getWidth(), 0.5); } @Test @@ -325,9 +318,9 @@ public void testFetchAfterTransactionalDelete() { root = getDs().find(RootEntity.class).filter(Filters.eq("_id", rootId)).first(); final DeleteResult deleteResult = getDs().withTransaction((session) -> session.find(RootEntity.class).delete()); - Assert.assertEquals(deleteResult.getDeletedCount(), 1); + Assertions.assertEquals(1, deleteResult.getDeletedCount()); - Assert.assertEquals(root.getR().getId(), refId); + Assertions.assertEquals(refId, root.getR().getId()); } @Entity diff --git a/core/src/test/java/dev/morphia/test/TestUUIDs.java b/core/src/test/java/dev/morphia/test/TestUUIDs.java index 253154a2471..6a2272edf7f 100644 --- a/core/src/test/java/dev/morphia/test/TestUUIDs.java +++ b/core/src/test/java/dev/morphia/test/TestUUIDs.java @@ -10,12 +10,10 @@ import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; public class TestUUIDs extends TestBase { @@ -31,10 +29,10 @@ public void testUUID() { final ContainsUUID loaded = getDs().find(ContainsUUID.class) .iterator() .next(); - assertNotNull(loaded); - assertNotNull(loaded.id); - assertNotNull(loaded.uuid); - assertEquals(before, loaded.uuid); + Assertions.assertNotNull(loaded); + Assertions.assertNotNull(loaded.id); + Assertions.assertNotNull(loaded.uuid); + Assertions.assertEquals(loaded.uuid, before); } @Test @@ -43,9 +41,9 @@ public void testUuidId() { final UUID before = uuidId.id; getDs().save(uuidId); final ContainsUuidId loaded = getDs().find(ContainsUuidId.class).filter(eq("_id", before)).first(); - assertNotNull(loaded); - assertNotNull(loaded.id); - assertEquals(before, loaded.id); + Assertions.assertNotNull(loaded); + Assertions.assertNotNull(loaded.id); + Assertions.assertEquals(loaded.id, before); } @Test @@ -54,8 +52,8 @@ void checkLifecycleForUuid() { getDs().save(example); ContainsUuidId loaded = getDs().find(ContainsUuidId.class).first(); - Assert.assertEquals(loaded.id, example.id); - Assert.assertTrue(loaded.preload); + Assertions.assertEquals(example.id, loaded.id); + Assertions.assertTrue(loaded.preload); } @Entity(useDiscriminator = false) diff --git a/core/src/test/java/dev/morphia/test/TestUpdateOperations.java b/core/src/test/java/dev/morphia/test/TestUpdateOperations.java index 392a847d8e0..da99fc50e91 100644 --- a/core/src/test/java/dev/morphia/test/TestUpdateOperations.java +++ b/core/src/test/java/dev/morphia/test/TestUpdateOperations.java @@ -50,8 +50,10 @@ import org.hamcrest.CoreMatchers; import org.hamcrest.MatcherAssert; import org.jetbrains.annotations.NotNull; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.addToSet; @@ -80,10 +82,6 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.hasItem; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertThrows; -import static org.testng.Assert.assertTrue; @SuppressWarnings({ "ConstantConditions", "unused" }) public class TestUpdateOperations extends TestBase { @@ -116,7 +114,7 @@ public void retainsClassName() { .next(); } - @Test(description = "see https://github.com/MorphiaOrg/morphia/issues/2472 for details") + @Test public void testUpdateWithDocumentConversion() { getDs().find(Hotel.class).filter(eq("_id", ObjectId.get())) .disableValidation() @@ -191,7 +189,7 @@ public void testInsertUpdate() { public void testInvalidPathsInUpdates() { Consumer test = (datastore) -> { Query query = getDs().find(CappedPic.class); - assertThrows(ValidationException.class, () -> query.update(max("bad.name", 12))); + Assertions.assertThrows(ValidationException.class, () -> query.update(max("bad.name", 12))); query.first(); }; @@ -205,7 +203,7 @@ public void testInvalidPathsInUpdates() { public void testInvalidPathsInModify() { Consumer test = (datastore) -> { Query query = getDs().find(CappedPic.class); - assertThrows(ValidationException.class, () -> query.modify(new ModifyOptions(), max("bad.name", 12))); + Assertions.assertThrows(ValidationException.class, () -> query.modify(new ModifyOptions(), max("bad.name", 12))); query.first(); }; @@ -228,9 +226,9 @@ public void testPolymorphicUpsert() { assertInserted(query.update(new UpdateOptions().upsert(true), setOnInsert(Map.of("radius", originalValue)))); Shape first = ds.find(Shape.class).first(); - assertNotNull(first); - assertTrue(first instanceof Circle); - assertEquals(((Circle) first).getRadius(), originalValue); + Assertions.assertNotNull(first); + Assertions.assertTrue(first instanceof Circle); + Assertions.assertEquals(originalValue, ((Circle) first).getRadius()); }); } @@ -248,7 +246,7 @@ public void testUpdateRef() { Query query = getDs().find(ContainsPic.class) .filter(eq("name", cp.getName())); UpdateResult result = query.update(set("pic", pic)); - assertEquals(result.getModifiedCount(), 1); + Assertions.assertEquals(1, result.getModifiedCount()); //test reading the object. final ContainsPic cp2 = getDs().find(ContainsPic.class).iterator() @@ -280,15 +278,17 @@ public void testUpdateWithDifferentType() { final UpdateResult res = query.update(inc("val", 1.1D)); assertUpdated(res); - assertEquals(query.iterator() - .next().val, 22); + Assertions.assertEquals(22, query.iterator() + .next().val); } - @Test(expectedExceptions = ValidationException.class) + @Test public void testValidationBadFieldName() { - Query query = getDs().find(Circle.class) - .filter(eq("radius", 0)); - query.update(inc("rad", 1D)); + Assertions.assertThrows(ValidationException.class, () -> { + Query query = getDs().find(Circle.class) + .filter(eq("radius", 0)); + query.update(inc("rad", 1D)); + }); } @Test @@ -302,7 +302,7 @@ public void testValidation() { Document shapes = getDs().find("shapes", Document.class) .first(); - assertTrue(shapes.containsKey("rad")); + Assertions.assertTrue(shapes.containsKey("rad")); } @Test @@ -327,16 +327,16 @@ public void testUpsert() { new FindOptions() .logQuery()) .filter(eq("values", new Integer[] { 4, 5, 7, 6 })); - assertNotNull(query.first(), query.getLoggedQuery()); + Assertions.assertNotNull(query.first(), query.getLoggedQuery()); } private void assertInserted(UpdateResult res) { - assertNotNull(res.getUpsertedId()); - assertEquals(res.getModifiedCount(), 0); + Assertions.assertNotNull(res.getUpsertedId()); + Assertions.assertEquals(0, res.getModifiedCount()); } private void assertUpdated(UpdateResult res) { - assertEquals(1, res.getModifiedCount()); + Assertions.assertEquals(res.getModifiedCount(), 1); } private void doUpdates(ContainsIntArray updated, ContainsIntArray control, UpdateResult result, Integer[] target) { @@ -350,7 +350,7 @@ private void doUpdates(ContainsIntArray updated, ContainsIntArray control, Updat .first().values, is(new Integer[] { 1, 2, 3 })); - assertEquals(result.getMatchedCount(), 1); + Assertions.assertEquals(1, result.getMatchedCount()); assertThat(getDs().find(ContainsIntArray.class) .filter(eq("_id", updated.id)) .first().values, @@ -573,7 +573,6 @@ private static class TestMapWithEnumKey { } - @DataProvider private static Iterator paths() { List list = new ArrayList<>(); @@ -584,7 +583,7 @@ private static Iterator paths() { .filter(m -> !m.getName().equals("$jacocoInit") && !(m.getName().equals("set") && m.getParameterCount() == 1)) .toList(); - assertEquals(list.size(), expected.size(), "Should have checks for all UpdateOperators methods"); + Assertions.assertEquals(expected.size(), list.size(), "Should have checks for all UpdateOperators methods"); list.addAll(prepParams("s", "s")); list.addAll(prepParams("address.street", "addr.address_street")); @@ -634,7 +633,8 @@ private static List prepParams(String updateName, String mapp public record TranslationParams(String updateName, String mappedName, UpdateOperator operator) { } - @Test(dataProvider = "paths") + @ParameterizedTest + @MethodSource("paths") public void testPathTranslations(TestUpdateOperations.TranslationParams params) { CodecRegistry registry = getDs().getCodecRegistry(); Operations value = new Operations(getDs(), getMapper().getEntityModel(Hotel.class), List.of(params.operator), true); @@ -643,7 +643,7 @@ public void testPathTranslations(TestUpdateOperations.TranslationParams params) String format = format("\"%s\"", params.mappedName); boolean contains = json.contains(format); - assertTrue(contains, format("failed to find '%s' in:%n%s", format, json)); + Assertions.assertTrue(contains, format("failed to find '%s' in:%n%s", format, json)); } private Document toDocument(Class type, UpdateOperator update) { diff --git a/core/src/test/java/dev/morphia/test/TestVersioning.java b/core/src/test/java/dev/morphia/test/TestVersioning.java index f2c99849583..b3fe7c86268 100644 --- a/core/src/test/java/dev/morphia/test/TestVersioning.java +++ b/core/src/test/java/dev/morphia/test/TestVersioning.java @@ -34,18 +34,14 @@ import dev.morphia.test.models.versioned.VersionedChildEntity; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.inc; import static dev.morphia.query.updates.UpdateOperators.set; import static java.util.Arrays.asList; import static java.util.List.of; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertThrows; -import static org.testng.Assert.assertTrue; public class TestVersioning extends TestBase { public TestVersioning() { @@ -62,23 +58,23 @@ public void testBulkUpdate() { datastore.save(entity); entity = datastore.find(Versioned.class).filter(eq("_id", entity.getId())).first(); - assertEquals(entity.getName(), "Value 1"); - assertEquals(entity.getVersion().longValue(), 1); + Assertions.assertEquals("Value 1", entity.getName()); + Assertions.assertEquals(1, entity.getVersion().longValue()); entity.setName("Value 2"); datastore.save(entity); entity = datastore.find(Versioned.class).filter(eq("_id", entity.getId())).first(); - assertEquals(entity.getName(), "Value 2"); - assertEquals(entity.getVersion().longValue(), 2); + Assertions.assertEquals("Value 2", entity.getName()); + Assertions.assertEquals(2, entity.getVersion().longValue()); Query query = datastore.find(Versioned.class); query.filter(eq("id", entity.getId())); query.update(set("name", "Value 3")); entity = datastore.find(Versioned.class).filter(eq("_id", entity.getId())).first(); - assertEquals(entity.getName(), "Value 3"); - assertEquals(entity.getVersion().longValue(), 3); + Assertions.assertEquals("Value 3", entity.getName()); + Assertions.assertEquals(3, entity.getVersion().longValue()); } @Test @@ -88,8 +84,8 @@ public void testCanMapAPackageContainingAVersionedAbstractBaseClass() { for (EntityModel entityModel : entities) { list.add(entityModel.getType()); } - assertTrue(list.contains(VersionedChildEntity.class)); - assertTrue(list.contains(AbstractVersionedBase.class)); + Assertions.assertTrue(list.contains(VersionedChildEntity.class)); + Assertions.assertTrue(list.contains(AbstractVersionedBase.class)); } @Test @@ -97,7 +93,7 @@ public void testAlternateFailures() { withTestConfig(buildConfig() .applyIndexes(true), List.of(Country.class), () -> { - assertThrows(MongoWriteException.class, () -> { + Assertions.assertThrows(MongoWriteException.class, () -> { getDs().save(new Country("USA")); getDs().save(new Country("Sweden")); @@ -135,23 +131,23 @@ public void testCanMapAnEntityWithAnAbstractVersionedParent() { for (EntityModel entityModel : mappedEntities) { list.add(entityModel.getType()); } - assertTrue(list.contains(VersionedChildEntity.class)); - assertTrue(list.contains(AbstractVersionedBase.class)); + Assertions.assertTrue(list.contains(VersionedChildEntity.class)); + Assertions.assertTrue(list.contains(AbstractVersionedBase.class)); } @Test public void testConcurrentModification() { - assertThrows(VersionMismatchException.class, () -> { + Assertions.assertThrows(VersionMismatchException.class, () -> { final VersionedType a = new VersionedType(); - assertEquals(a.version, 0); + Assertions.assertEquals(0, a.version); getDs().save(a); - assertEquals(a.version, 1); + Assertions.assertEquals(1, a.version); Query query = getDs().find(VersionedType.class) .filter(eq("_id", a.getId())); getDs().save(query.iterator().next()); - assertEquals(query.iterator().next().version, 2); + Assertions.assertEquals(2, query.iterator().next().version); getDs().save(a); }); @@ -171,9 +167,9 @@ public void testFindAndModify() { .upsert(true), set("name", "Value 3")); - assertEquals(entity.getName(), "Value 3"); - assertEquals(entity.getVersion().longValue(), 1); - assertNotNull(entity.getId()); + Assertions.assertEquals("Value 3", entity.getName()); + Assertions.assertEquals(1, entity.getVersion().longValue()); + Assertions.assertNotNull(entity.getId()); } @Test @@ -182,8 +178,8 @@ public void testIncVersionNotOverridingOtherInc() { version1.setCount(0); getDs().save(version1); - assertEquals(version1.getVersion(), Long.valueOf(1)); - assertEquals(version1.getCount(), 0); + Assertions.assertEquals(Long.valueOf(1), version1.getVersion()); + Assertions.assertEquals(0, version1.getCount()); Query query = getDs().find(Versioned.class); query.filter(eq("_id", version1.getId())); @@ -193,8 +189,8 @@ public void testIncVersionNotOverridingOtherInc() { .filter(eq("_id", version1.getId())) .first(); - assertEquals(version2.getVersion(), Long.valueOf(2)); - assertEquals(version2.getCount(), 1); + Assertions.assertEquals(Long.valueOf(2), version2.getVersion()); + Assertions.assertEquals(1, version2.getCount()); } @Test @@ -205,7 +201,7 @@ public void testInittedPrimitive() { InittedPrimitive first = getDs().find(InittedPrimitive.class) .first(); - assertEquals(first.hubba, Primitive.hubba); + Assertions.assertEquals(Primitive.hubba, first.hubba); } @Test @@ -216,9 +212,9 @@ public void testInittedWrapper() { InittedWrapper first = getDs().find(InittedWrapper.class) .first(); - assertEquals(first.hubba, wrapper.hubba); + Assertions.assertEquals(wrapper.hubba, first.hubba); - assertThrows(VersionMismatchException.class, () -> { + Assertions.assertThrows(VersionMismatchException.class, () -> { InittedWrapper hasId = new InittedWrapper(); hasId.id = new ObjectId(); getDs().save(hasId); @@ -228,14 +224,14 @@ public void testInittedWrapper() { @Test public void testInvalidVersionUse() { withConfig(buildConfig(InvalidVersionUse.class), () -> { - assertThrows(ConstraintViolationException.class, () -> getMapper().getEntityModel(InvalidVersionUse.class)); + Assertions.assertThrows(ConstraintViolationException.class, () -> getMapper().getEntityModel(InvalidVersionUse.class)); }); } @Test public void testManuallyIdentified() { - assertThrows(MongoWriteException.class, () -> { + Assertions.assertThrows(MongoWriteException.class, () -> { final NamedVersion entity1 = new NamedVersion(); final NamedVersion entity2 = new NamedVersion(); @@ -251,9 +247,9 @@ public void testManuallyIdentified() { @Test public void testMerge() { - assertThrows(VersionMismatchException.class, () -> { + Assertions.assertThrows(VersionMismatchException.class, () -> { final NamedVersion a = new NamedVersion(); - Assert.assertNull(a.v); + Assertions.assertNull(a.v); getDs().save(a); a.text = " foosdfds "; @@ -270,9 +266,9 @@ public void testMerge() { public void testMethodMapping() { withConfig(buildConfig(MethodMappedUser.class).propertyDiscovery(PropertyDiscovery.METHODS), () -> { MethodMappedUser user = new MethodMappedUser(); - assertEquals(user.getVersion(), null); + Assertions.assertEquals(null, user.getVersion()); getDs().save(user); - assertEquals(user.getVersion(), Long.valueOf(1L)); + Assertions.assertEquals(Long.valueOf(1L), user.getVersion()); }); } @@ -289,11 +285,11 @@ public void testMultiSaves() { for (int i = 0, loadedSize = loaded.size(); i < loadedSize; i++) { final VersionedType type = loaded.get(i); - assertEquals(type.id, initial.get(i).id); - assertEquals(type.version, initial.get(i).version + 1); + Assertions.assertEquals(initial.get(i).id, type.id); + Assertions.assertEquals(initial.get(i).version + 1, type.version); } - assertThrows(VersionMismatchException.class, () -> getDs().save(initial)); + Assertions.assertThrows(VersionMismatchException.class, () -> getDs().save(initial)); } @Test @@ -304,12 +300,12 @@ public void testPrimitive() { Primitive first = getDs().find(Primitive.class) .first(); - assertEquals(first.hubba, Primitive.hubba); + Assertions.assertEquals(Primitive.hubba, first.hubba); } @Test public void testThrowsExceptionWhenTryingToSaveAnOldVersion() { - assertThrows(VersionMismatchException.class, () -> { + Assertions.assertThrows(VersionMismatchException.class, () -> { getDs().find(Versioned.class).delete(new DeleteOptions().multi(true)); // given final Versioned version1 = new Versioned(); @@ -330,7 +326,7 @@ public void testUpdate() { UpdateResult results = ds.find(VersionedType.class) .update(set("text", "some new value")); - assertEquals(results.getModifiedCount(), 1); + Assertions.assertEquals(1, results.getModifiedCount()); List postUpdate = ds.find(VersionedType.class, new FindOptions() .sort(Sort.ascending("_id"))) @@ -340,7 +336,7 @@ public void testUpdate() { for (int i = 0, postUpdateSize = postUpdate.size(); i < postUpdateSize; i++) { final VersionedType versionedType = postUpdate.get(i); - assertEquals(versionedType.version, initial.get(i).version + 1); + Assertions.assertEquals(initial.get(i).version + 1, versionedType.version); } } @@ -357,13 +353,13 @@ public void testUpdatesToVersionedFileAreReflectedInTheDatastore() { this.getDs().merge(version1Updated); final Versioned versionedEntityFromDs = this.getDs().find(Versioned.class).filter(eq("_id", version1.getId())).first(); - assertEquals(version1Updated.getName(), versionedEntityFromDs.getName()); + Assertions.assertEquals(versionedEntityFromDs.getName(), version1Updated.getName()); } @Test public void testVersionFieldNameContribution() { final PropertyModel mappedFieldByJavaField = getMapper().getEntityModel(NamedVersion.class).getProperty("v"); - assertEquals(mappedFieldByJavaField.getMappedName(), "v"); + Assertions.assertEquals("v", mappedFieldByJavaField.getMappedName()); } @Test @@ -373,18 +369,18 @@ public void testVersionInHashcode() { final VersionInHashcode model = new VersionInHashcode(); model.data = "whatever"; getDs().save(model); - Assert.assertNotNull(model.version); + Assertions.assertNotNull(model.version); } @Test public void testVersionNumbersIncrementWithEachSave() { final Versioned version1 = new Versioned(); getDs().save(version1); - assertEquals(version1.getVersion(), Long.valueOf(1)); + Assertions.assertEquals(Long.valueOf(1), version1.getVersion()); final Versioned version2 = getDs().find(Versioned.class).filter(eq("_id", version1.getId())).first(); getDs().save(version2); - assertEquals(version2.getVersion(), Long.valueOf(2)); + Assertions.assertEquals(Long.valueOf(2), version2.getVersion()); } @Test @@ -392,7 +388,7 @@ public void testVersionedInserts() { List list = asList(new Versioned(), new Versioned(), new Versioned(), new Versioned(), new Versioned()); getDs().insert(list); for (Versioned versioned : list) { - assertNotNull(versioned.getVersion()); + Assertions.assertNotNull(versioned.getVersion()); } } @@ -409,23 +405,23 @@ public void testVersionedUpsert() { query.update(new UpdateOptions().upsert(true), set("name", "Value 3")); entity = datastore.find(Versioned.class).iterator().tryNext(); - assertEquals(entity.getName(), "Value 3"); - assertEquals(entity.getVersion().longValue(), 1); + Assertions.assertEquals("Value 3", entity.getName()); + Assertions.assertEquals(1, entity.getVersion().longValue()); } @Test public void testVersions() { final VersionedType a = new VersionedType(); - assertEquals(a.version, 0); + Assertions.assertEquals(0, a.version); getDs().save(a); - assertEquals(a.version, 1); + Assertions.assertEquals(1, a.version); final long version1 = a.version; getDs().save(a); - assertEquals(a.version, 2); + Assertions.assertEquals(2, a.version); final long version2 = a.version; - Assert.assertNotEquals(version1, version2); + Assertions.assertNotEquals(version2, version1); } @Test @@ -436,7 +432,7 @@ public void testWrapper() { Wrapper first = getDs().find(Wrapper.class) .first(); - assertEquals(first.hubba, wrapper.hubba); + Assertions.assertEquals(wrapper.hubba, first.hubba); } private static class InittedPrimitive extends TestEntity { diff --git a/core/src/test/java/dev/morphia/test/aggregation/TestCollation.java b/core/src/test/java/dev/morphia/test/aggregation/TestCollation.java index d5a424ee7ef..30b562154e1 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/TestCollation.java +++ b/core/src/test/java/dev/morphia/test/aggregation/TestCollation.java @@ -9,14 +9,14 @@ import dev.morphia.test.TestBase; import dev.morphia.test.models.User; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static com.mongodb.client.model.CollationStrength.SECONDARY; import static dev.morphia.aggregation.AggregationOptions.aggregationOptions; import static dev.morphia.aggregation.stages.Match.match; import static dev.morphia.query.filters.Filters.eq; import static java.util.Arrays.asList; -import static org.testng.Assert.assertEquals; public class TestCollation extends TestBase { @Test @@ -26,7 +26,7 @@ public void testCollation() { Aggregation pipeline = getDs() .aggregate(User.class) .pipeline(match(eq("name", "john doe"))); - assertEquals(count(pipeline.iterator()), 1); + Assertions.assertEquals(1, count(pipeline.iterator())); AggregationOptions options = aggregationOptions() .collation(Collation.builder() @@ -36,8 +36,7 @@ public void testCollation() { pipeline = getDs() .aggregate(User.class, options) .pipeline(match(eq("name", "john doe"))); - assertEquals(count(pipeline.iterator()), - 2); + Assertions.assertEquals(2, count(pipeline.iterator())); } } diff --git a/core/src/test/java/dev/morphia/test/aggregation/TestDocsExamples.java b/core/src/test/java/dev/morphia/test/aggregation/TestDocsExamples.java index 709c65fd79d..26da0d7b146 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/TestDocsExamples.java +++ b/core/src/test/java/dev/morphia/test/aggregation/TestDocsExamples.java @@ -5,7 +5,7 @@ import dev.morphia.test.aggregation.model.Author; import dev.morphia.test.aggregation.model.Book; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Test; import static com.mongodb.client.model.MergeOptions.WhenMatched.REPLACE; import static com.mongodb.client.model.MergeOptions.WhenNotMatched.INSERT; diff --git a/core/src/test/java/dev/morphia/test/aggregation/ZipCodeDataSetTest.java b/core/src/test/java/dev/morphia/test/aggregation/ZipCodeDataSetTest.java index 3d820b58556..ece677f9619 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/ZipCodeDataSetTest.java +++ b/core/src/test/java/dev/morphia/test/aggregation/ZipCodeDataSetTest.java @@ -12,10 +12,11 @@ import dev.morphia.test.models.Population; import dev.morphia.test.models.State; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.testng.annotations.Ignore; -import org.testng.annotations.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.avg; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.first; @@ -27,8 +28,6 @@ import static dev.morphia.aggregation.stages.Projection.project; import static dev.morphia.aggregation.stages.Sort.sort; import static dev.morphia.query.filters.Filters.gte; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; /** * These tests recreate the example zip code data set aggregations as found in the official documentation. @@ -36,7 +35,7 @@ * @mongodb.driver.manual tutorial/aggregation-zip-code-data-set/ Aggregation with the Zip Code Data Set */ @SuppressWarnings({ "rawtypes", "unchecked" }) -@Ignore +@Disabled public class ZipCodeDataSetTest extends TestBase { private static final Logger LOG = LoggerFactory.getLogger(ZipCodeDataSetTest.class); @@ -101,11 +100,11 @@ public void smallestAndLargestCities() { State state = states.get("SD"); - assertEquals(state.getBiggest().getName(), "SIOUX FALLS"); - assertEquals(state.getBiggest().getPopulation().longValue(), 102046); + Assertions.assertEquals("SIOUX FALLS", state.getBiggest().getName()); + Assertions.assertEquals(102046, state.getBiggest().getPopulation().longValue()); - assertEquals(state.getSmallest().getName(), "ZEONA"); - assertEquals(state.getSmallest().getPopulation().longValue(), 8); + Assertions.assertEquals("ZEONA", state.getSmallest().getName()); + Assertions.assertEquals(8, state.getSmallest().getPopulation().longValue()); } } @@ -114,11 +113,11 @@ private void validate(Aggregation cursor, String state, long value) for (Population population : cursor) { if (population.getState().equals(state)) { found = true; - assertEquals(population.getPopulation(), Long.valueOf(value)); + Assertions.assertEquals(Long.valueOf(value), population.getPopulation()); } LOG.debug("population = " + population); } - assertTrue(found, "Should have found " + state); + Assertions.assertTrue(found, "Should have found " + state); } } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAbs.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAbs.java index 5c44cb522db..3b313dbf450 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAbs.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAbs.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.abs; import static dev.morphia.aggregation.expressions.MathExpressions.subtract; @@ -13,7 +14,8 @@ public class TestAbs extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/abs/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(aggregation -> aggregation .pipeline(project().include("delta", abs(subtract("$startTemp", "$endTemp"))))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAccumulator.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAccumulator.java index c7009b21132..6fb5318f1a1 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAccumulator.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAccumulator.java @@ -6,7 +6,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.accumulator; @@ -15,7 +16,8 @@ public class TestAccumulator extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/accumulator/example1 * */ - @Test(testName = "Use ``$accumulator`` to Implement the ``$avg`` Operator") + @Test + @DisplayName("Use ``$accumulator`` to Implement the ``$avg`` Operator") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false).skipActionCheck(true), aggregation -> aggregation.pipeline(Group.group(Group.id("$author")).field("avgCopies", accumulator(""" @@ -44,7 +46,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/accumulator/example2 * */ - @Test(testName = "Use ``initArgs`` to Vary the Initial State by Group") + @Test + @DisplayName("Use ``initArgs`` to Vary the Initial State by Group") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false).skipActionCheck(true), aggregation -> aggregation .pipeline(Group.group(Group.id().field("city", "$city")).field("restaurants", accumulator(""" diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAcos.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAcos.java index bd2d49ad17f..9bda6cf0083 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAcos.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAcos.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.divide; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.acos; @@ -14,7 +15,8 @@ public class TestAcos extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/acos/example1 * */ - @Test(testName = "main :: Inverse Cosine of Value in Degrees") + @Test + @DisplayName("main :: Inverse Cosine of Value in Degrees") public void testExample1() { testPipeline(aggregation -> aggregation .pipeline(addFields().field("angle_a", radiansToDegrees(acos(divide("$side_b", "$hypotenuse")))))); @@ -25,7 +27,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/acos/example2 * */ - @Test(testName = "main :: Inverse Cosine of Value in Radians") + @Test + @DisplayName("main :: Inverse Cosine of Value in Radians") public void testExample2() { testPipeline(aggregation -> aggregation .pipeline(addFields().field("angle_a", acos(divide("$side_b", "$hypotenuse"))))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAcosh.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAcosh.java index 9d70d4a51ff..2b8466e5736 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAcosh.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAcosh.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.acosh; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.radiansToDegrees; @@ -13,7 +14,8 @@ public class TestAcosh extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/acosh/example1 * */ - @Test(testName = "main :: Inverse Hyperbolic Cosine in Degrees") + @Test + @DisplayName("main :: Inverse Hyperbolic Cosine in Degrees") public void testExample1() { testPipeline(aggregation -> aggregation .pipeline(addFields().field("y-coordinate", radiansToDegrees(acosh("$x-coordinate"))))); @@ -24,7 +26,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/acosh/example2 * */ - @Test(testName = "main :: Inverse Hyperbolic Cosine in Radians") + @Test + @DisplayName("main :: Inverse Hyperbolic Cosine in Radians") public void testExample2() { testPipeline(aggregation -> aggregation.pipeline(addFields().field("y-coordinate", acosh("$x-coordinate")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAdd.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAdd.java index 42747be5ea9..b48269a48d4 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAdd.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAdd.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.add; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestAdd extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/add/example1 * */ - @Test(testName = "Add Numbers") + @Test + @DisplayName("Add Numbers") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item").include("total", add("$price", "$fee")))); @@ -22,7 +24,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/add/example2 * */ - @Test(testName = "Perform Addition on a Date") + @Test + @DisplayName("Perform Addition on a Date") public void testExample2() { testPipeline(aggregation -> aggregation .pipeline(project().include("item", 1).include("billing_date", add("$date", 259200000)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAddToSet.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAddToSet.java index 66646c837a4..d050da5f8a9 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAddToSet.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAddToSet.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.addToSet; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfYear; @@ -19,7 +20,8 @@ public class TestAddToSet extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/addToSet/example1 * */ - @Test(testName = "Use in ``$group`` Stage") + @Test + @DisplayName("Use in ``$group`` Stage") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), aggregation -> aggregation @@ -34,7 +36,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/addToSet/example2 * */ - @Test(testName = "Use in ``$setWindowFields`` Stage") + @Test + @DisplayName("Use in ``$setWindowFields`` Stage") public void testExample2() { if (1 == 1) return; diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAllElementsTrue.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAllElementsTrue.java index 16bfc16cfa5..a2f73c1b63c 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAllElementsTrue.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAllElementsTrue.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.SetExpressions.allElementsTrue; @@ -13,7 +14,8 @@ public class TestAllElementsTrue extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/allElementsTrue/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), aggregation -> aggregation.pipeline(Projection .project().suppressId().include("responses").include("isAllTrue", allElementsTrue("$responses")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAnd.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAnd.java index fa1aaa1ca7e..517961e063b 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAnd.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAnd.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.BooleanExpressions.and; import static dev.morphia.aggregation.expressions.ComparisonExpressions.gt; @@ -14,7 +15,8 @@ public class TestAnd extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/and/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(aggregation -> aggregation.pipeline( project().include("item").include("qty").include("result", and(gt("$qty", 100), lt("$qty", 250))))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAnyElementTrue.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAnyElementTrue.java index 029e07921c4..49b1ad71686 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAnyElementTrue.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAnyElementTrue.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.SetExpressions.anyElementTrue; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestAnyElementTrue extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/anyElementTrue/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(aggregation -> aggregation.pipeline( project().suppressId().include("responses").include("isAnyTrue", anyElementTrue("$responses")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestArrayElemAt.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestArrayElemAt.java index 01e4446f8c9..09b7453e62f 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestArrayElemAt.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestArrayElemAt.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.elementAt; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestArrayElemAt extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/arrayElemAt/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("name") .include("first", elementAt("$favorites", 0)).include("last", elementAt("$favorites", -1)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestArrayToObject.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestArrayToObject.java index a1d81c06e26..e9081e288d3 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestArrayToObject.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestArrayToObject.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; @@ -18,7 +19,8 @@ public class TestArrayToObject extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/arrayToObject/example1 * */ - @Test(testName = "``$arrayToObject`` Example") + @Test + @DisplayName("``$arrayToObject`` Example") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item").include("dimensions", arrayToObject("$dimensions")))); @@ -28,7 +30,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/arrayToObject/example2 * */ - @Test(testName = "``$objectToArray`` + ``$arrayToObject`` Example") + @Test + @DisplayName("``$objectToArray`` + ``$arrayToObject`` Example") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(addFields().field("instock", objectToArray("$instock")), addFields().field("instock", diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAsin.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAsin.java index b566c84cf4a..beb7128adb7 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAsin.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAsin.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.divide; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.asin; @@ -14,7 +15,8 @@ public class TestAsin extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/asin/example1 * */ - @Test(testName = "main :: Inverse Sine of Value in Degrees") + @Test + @DisplayName("main :: Inverse Sine of Value in Degrees") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("angle_a", radiansToDegrees(asin(divide("$side_a", "$hypotenuse")))))); @@ -24,7 +26,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/asin/example2 * */ - @Test(testName = "main :: Inverse Sine of Value in Radians") + @Test + @DisplayName("main :: Inverse Sine of Value in Radians") public void testExample2() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("angle_a", asin(divide("$side_a", "$hypotenuse"))))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAsinh.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAsinh.java index adea3711b59..f431f0a6f98 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAsinh.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAsinh.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.asinh; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.radiansToDegrees; @@ -13,7 +14,8 @@ public class TestAsinh extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/asinh/example1 * */ - @Test(testName = "main :: Inverse Hyperbolic Sine in Degrees") + @Test + @DisplayName("main :: Inverse Hyperbolic Sine in Degrees") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("y-coordinate", radiansToDegrees(asinh("$x-coordinate"))))); @@ -23,7 +25,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/asinh/example2 * */ - @Test(testName = "main :: Inverse Hyperbolic Sine in Radians") + @Test + @DisplayName("main :: Inverse Hyperbolic Sine in Radians") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(addFields().field("y-coordinate", asinh("$x-coordinate")))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAtan.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAtan.java index 3c4d84caedd..548d2a0473c 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAtan.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAtan.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.divide; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.atan; @@ -14,7 +15,8 @@ public class TestAtan extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/atan/example1 * */ - @Test(testName = "main :: Inverse Tangent of Value in Degrees") + @Test + @DisplayName("main :: Inverse Tangent of Value in Degrees") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("angle_a", radiansToDegrees(atan(divide("$side_b", "$side_a")))))); @@ -24,7 +26,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/atan/example2 * */ - @Test(testName = "main :: Inverse Tangent of Value in Radians") + @Test + @DisplayName("main :: Inverse Tangent of Value in Radians") public void testExample2() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("angle_a", atan(divide("$side_b", "$side_a"))))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAtan2.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAtan2.java index 33a5244fb63..adf4bf769c5 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAtan2.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAtan2.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.atan2; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.radiansToDegrees; @@ -13,7 +14,8 @@ public class TestAtan2 extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/atan2/example1 * */ - @Test(testName = "main :: Inverse Tangent of Value in Degrees") + @Test + @DisplayName("main :: Inverse Tangent of Value in Degrees") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("angle_a", radiansToDegrees(atan2("$side_b", "$side_a"))))); @@ -23,7 +25,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/atan2/example2 * */ - @Test(testName = "main :: Inverse Tangent of Value in Radians") + @Test + @DisplayName("main :: Inverse Tangent of Value in Radians") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(addFields().field("angle_a", atan2("$side_b", "$side_a")))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAtanh.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAtanh.java index d69a73c3fb7..9778c177c01 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAtanh.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAtanh.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.atanh; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.radiansToDegrees; @@ -13,7 +14,8 @@ public class TestAtanh extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/atanh/example1 * */ - @Test(testName = "main :: Inverse Hyperbolic Tangent in Degrees") + @Test + @DisplayName("main :: Inverse Hyperbolic Tangent in Degrees") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("y-coordinate", radiansToDegrees(atanh("$x-coordinate"))))); @@ -23,7 +25,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/atanh/example2 * */ - @Test(testName = "main :: Inverse Hyperbolic Tangent in Radians") + @Test + @DisplayName("main :: Inverse Hyperbolic Tangent in Radians") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(addFields().field("y-coordinate", atanh("$x-coordinate")))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAvg.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAvg.java index bf41f7831ce..a6e4c68f983 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAvg.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestAvg.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.avg; import static dev.morphia.aggregation.expressions.MathExpressions.multiply; @@ -16,7 +17,8 @@ public class TestAvg extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/avg/example1 * */ - @Test(testName = "Use in ``$group`` Stage") + @Test + @DisplayName("Use in ``$group`` Stage") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), aggregation -> aggregation.pipeline(group(id("$item")) .field("avgAmount", avg(multiply("$price", "$quantity"))).field("avgQuantity", avg("$quantity")))); @@ -27,7 +29,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/avg/example2 * */ - @Test(testName = "Use in ``$project`` Stage") + @Test + @DisplayName("Use in ``$project`` Stage") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), aggregation -> aggregation.pipeline(project().include("quizAvg", avg("$quizzes")) @@ -39,7 +42,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/avg/example3 * */ - @Test(testName = "Use in ``$setWindowFields`` Stage") + @Test + @DisplayName("Use in ``$setWindowFields`` Stage") public void testExample3() { // this has an include and throws off the parser /* diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBinarySize.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBinarySize.java index 3b6ca840909..225c6f0d747 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBinarySize.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBinarySize.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DataSizeExpressions.binarySize; import static dev.morphia.aggregation.stages.Limit.limit; @@ -14,7 +15,8 @@ public class TestBinarySize extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/binarySize/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("name", "$name").include("imageSize", binarySize("$binary")))); @@ -24,7 +26,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/binarySize/example2 * */ - @Test(testName = "Find Largest Binary Data") + @Test + @DisplayName("Find Largest Binary Data") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline( project().include("name", "$name").include("imageSize", binarySize("$binary")), diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitAnd.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitAnd.java index fd55f75327b..906efb2a331 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitAnd.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitAnd.java @@ -5,7 +5,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.bitAnd; import static dev.morphia.aggregation.stages.Projection.project; @@ -15,7 +16,8 @@ public class TestBitAnd extends TemplatedTestBase { /** * test data: dev/morphia/test/aggregation/expressions/bitAnd/example1 */ - @Test(testName = "Bitwise ``AND`` with Two Integers ") + @Test + @DisplayName("Bitwise ``AND`` with Two Integers ") public void testExample1() { testPipeline(new ActionTestOptions().serverVersion("7.0.0"), aggregation -> aggregation.pipeline(project().include("result", bitAnd("$a", "$b")))); @@ -25,7 +27,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/bitAnd/example2 * */ - @Test(testName = "Bitwise ``AND`` with a Long and Integer ") + @Test + @DisplayName("Bitwise ``AND`` with a Long and Integer ") public void testExample2() throws FileNotFoundException { testPipeline(new ActionTestOptions().serverVersion("7.0.0"), aggregation -> aggregation.pipeline(project().include("result", bitAnd("$a", 63L)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitNot.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitNot.java index 543fe764f7f..ad3097cfa2f 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitNot.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitNot.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.bitNot; import static dev.morphia.aggregation.stages.Projection.project; @@ -14,7 +15,8 @@ public class TestBitNot extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/bitNot/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().serverVersion("6.3.0"), aggregation -> aggregation.pipeline(project().include("result", bitNot("$a")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitOr.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitOr.java index ec7c8463a5b..c6e86817cbb 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitOr.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitOr.java @@ -3,7 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.bitOr; import static dev.morphia.aggregation.stages.Projection.project; @@ -13,7 +15,8 @@ public class TestBitOr extends TemplatedTestBase { /** * test data: dev/morphia/test/aggregation/expressions/bitOr/example1 */ - @Test(testName = "Bitwise ``OR`` with Two Integers ") + @Test + @DisplayName("Bitwise ``OR`` with Two Integers ") public void testExample1() { testPipeline(new ActionTestOptions().serverVersion("6.3.0"), aggregation -> aggregation.pipeline(project().include("result", bitOr("$a", "$b")))); @@ -23,7 +26,9 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/bitOr/example2 * */ - @Test(testName = "Bitwise ``OR`` with a Long and Integer ", enabled = false, description = "this is getting odd unexpected results from the server") + @Disabled("this is getting odd unexpected results from the server") + @Test + @DisplayName("Bitwise ``OR`` with a Long and Integer ") public void testExample2() { testPipeline(new ActionTestOptions().serverVersion("6.3.0").removeIds(true).orderMatters(false), aggregation -> aggregation.pipeline(project().include("result", bitOr("$a", 63L)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitXor.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitXor.java index 9d9aa27bf98..25386ef80f8 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitXor.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBitXor.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.bitXor; import static dev.morphia.aggregation.stages.Projection.project; @@ -14,7 +15,8 @@ public class TestBitXor extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/bitXor/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().serverVersion("6.3.0"), aggregation -> aggregation.pipeline(project().include("result", bitXor("$a", "$b")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBottom.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBottom.java index 9357ba857cd..5c236b99cd3 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBottom.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBottom.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.bottom; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; @@ -18,7 +19,8 @@ public class TestBottom extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/bottom/example1 * */ - @Test(testName = "Find the Bottom ``Score``") + @Test + @DisplayName("Find the Bottom ``Score``") public void testExample1() { checkMinServerVersion("5.2.0"); testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( @@ -30,7 +32,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/bottom/example2 * */ - @Test(testName = "Finding the Bottom ``Score`` Across Multiple Games") + @Test + @DisplayName("Finding the Bottom ``Score`` Across Multiple Games") public void testExample2() { checkMinServerVersion("5.2.0"); testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBottomN.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBottomN.java index e46d85a2dc1..4a09ce4b78d 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBottomN.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBottomN.java @@ -4,8 +4,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.bottomN; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; @@ -19,7 +20,7 @@ public class TestBottomN extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.2.0"); } @@ -28,7 +29,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/bottomN/example1 * */ - @Test(testName = "Find the Three Lowest ``Scores``") + @Test + @DisplayName("Find the Three Lowest ``Scores``") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( match(Filters.eq("gameId", "G1")), @@ -39,7 +41,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/bottomN/example2 * */ - @Test(testName = "Finding the Three Lowest Score Documents Across Multiple Games") + @Test + @DisplayName("Finding the Three Lowest Score Documents Across Multiple Games") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( group(id("$gameId")).field("playerId", bottomN(3, array("$playerId", "$score"), descending("score"))))); @@ -49,7 +52,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/bottomN/example3 * */ - @Test(testName = "Computing ``n`` Based on the Group Key for ``$group``") + @Test + @DisplayName("Computing ``n`` Based on the Group Key for ``$group``") public void testExample3() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(group(id(document("gameId", "$gameId"))).field("gamescores", diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBsonSize.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBsonSize.java index 496b2d13637..e83cbd480db 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBsonSize.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestBsonSize.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; import static dev.morphia.aggregation.expressions.DataSizeExpressions.bsonSize; @@ -18,7 +19,8 @@ public class TestBsonSize extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/bsonSize/example1 * */ - @Test(testName = "Return Sizes of Documents") + @Test + @DisplayName("Return Sizes of Documents") public void testExample1() { testPipeline( aggregation -> aggregation.pipeline(project().include("name").include("object_size", bsonSize(ROOT)))); @@ -29,7 +31,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/bsonSize/example2 * */ - @Test(testName = "Return Combined Size of All Documents in a Collection") + @Test + @DisplayName("Return Combined Size of All Documents in a Collection") public void testExample2() { testPipeline(aggregation -> aggregation .pipeline(group(id(null)).field("combined_object_size", sum(bsonSize(ROOT))))); @@ -40,7 +43,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/bsonSize/example3 * */ - @Test(testName = "Return Document with Largest Specified Field") + @Test + @DisplayName("Return Document with Largest Specified Field") public void testExample3() { testPipeline(aggregation -> aggregation.pipeline( project().include("name", "$name").include("task_object_size", bsonSize("$$CURRENT")), diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCeil.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCeil.java index 3deb7203d17..135255f2910 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCeil.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCeil.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.ceil; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestCeil extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/ceil/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("value").include("ceilingValue", ceil("$value")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCmp.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCmp.java index 9bd43e83aeb..08537b0fd91 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCmp.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCmp.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.cmp; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestCmp extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/cmp/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().suppressId().include("item").include("qty").include("cmpTo250", cmp("$qty", 250)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestConcat.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestConcat.java index 1350fbe4350..4630117aad9 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestConcat.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestConcat.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.concat; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestConcat extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/concat/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("itemDescription", concat("$item", " - ", "$description")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestConcatArrays.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestConcatArrays.java index 03e044a20fd..af1c6a485ce 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestConcatArrays.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestConcatArrays.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.concatArrays; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestConcatArrays extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/concatArrays/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("items", concatArrays("$instock", "$ordered")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCond.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCond.java index ffc91875d47..0b908e34b7b 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCond.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCond.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.gte; import static dev.morphia.aggregation.expressions.ConditionalExpressions.condition; @@ -13,7 +14,8 @@ public class TestCond extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/cond/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(aggregation -> aggregation .pipeline(project().include("item").include("discount", condition(gte("$qty", 250), 30, 20)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestConvert.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestConvert.java index faf683ecbab..fa1a0289107 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestConvert.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestConvert.java @@ -3,7 +3,8 @@ import dev.morphia.aggregation.expressions.StringExpressions; import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.eq; import static dev.morphia.aggregation.expressions.ConditionalExpressions.switchExpression; @@ -21,7 +22,8 @@ public class TestConvert extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/convert/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline( addFields().field("convertedPrice", convert("$price", DECIMAL).onError("Error").onNull(0.0)) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCos.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCos.java index 880e2adb588..487edf64e88 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCos.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCos.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.multiply; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.cos; @@ -14,7 +15,8 @@ public class TestCos extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/cos/example1 * */ - @Test(testName = "main :: Cosine of Value in Degrees") + @Test + @DisplayName("main :: Cosine of Value in Degrees") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("side_a", multiply(cos(degreesToRadians("$angle_a")), "$hypotenuse")))); @@ -24,7 +26,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/cos/example2 * */ - @Test(testName = "main :: Cosine of Value in Radians") + @Test + @DisplayName("main :: Cosine of Value in Radians") public void testExample2() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("side_b", multiply(cos("$angle_a"), "$hypotenuse")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCosh.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCosh.java index ae7a19d4fcf..8a591dd7ba6 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCosh.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCosh.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.cosh; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.degreesToRadians; @@ -14,7 +15,8 @@ public class TestCosh extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/cosh/example1 * */ - @Test(testName = "main :: Hyperbolic Cosine in Degrees") + @Test + @DisplayName("main :: Hyperbolic Cosine in Degrees") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation .pipeline(addFields().field("cosh_output", cosh(degreesToRadians("$angle"))))); @@ -24,7 +26,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/cosh/example2 * */ - @Test(testName = "main :: Hyperbolic Cosine in Radians") + @Test + @DisplayName("main :: Hyperbolic Cosine in Radians") public void testExample2() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation.pipeline(addFields().field("cosh_output", cosh("$angle")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCount.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCount.java index fb960cef2b0..135803fb2fc 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCount.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCount.java @@ -5,8 +5,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.Group.group; import static dev.morphia.aggregation.stages.SetWindowFields.Output.output; @@ -15,7 +16,7 @@ public class TestCount extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -24,7 +25,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/count/example1 * */ - @Test(testName = "Use in ``$group`` Stage") + @Test + @DisplayName("Use in ``$group`` Stage") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), aggregation -> aggregation.pipeline( group(Group.id("$state")).field("countNumberOfDocumentsForState", AccumulatorExpressions.count()))); @@ -35,7 +37,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/count/example2 * */ - @Test(testName = "Use in ``$setWindowFields`` Stage") + @Test + @DisplayName("Use in ``$setWindowFields`` Stage") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), aggregation -> aggregation.pipeline(setWindowFields().partitionBy(("$state")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCovariancePop.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCovariancePop.java index cae3b52788e..7b39e70cb9e 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCovariancePop.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCovariancePop.java @@ -2,8 +2,9 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.year; import static dev.morphia.aggregation.expressions.WindowExpressions.covariancePop; @@ -13,7 +14,7 @@ public class TestCovariancePop extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -22,7 +23,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/covariancePop/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(setWindowFields().partitionBy("$state").sortBy(ascending("orderDate")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCovarianceSamp.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCovarianceSamp.java index 814d885baee..deb6e70e0c3 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCovarianceSamp.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestCovarianceSamp.java @@ -2,8 +2,9 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.year; import static dev.morphia.aggregation.expressions.WindowExpressions.covarianceSamp; @@ -13,7 +14,7 @@ public class TestCovarianceSamp extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -22,7 +23,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/covarianceSamp/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(setWindowFields().partitionBy("$state").sortBy(ascending("orderDate")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateAdd.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateAdd.java index 2542d1c020c..031bd72e8d4 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateAdd.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateAdd.java @@ -4,8 +4,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.gt; import static dev.morphia.aggregation.expressions.DateExpressions.dateAdd; @@ -17,7 +18,7 @@ public class TestDateAdd extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -26,7 +27,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/dateAdd/example1 * */ - @Test(testName = "Add a Future Date") + @Test + @DisplayName("Add a Future Date") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true), aggregation -> aggregation.pipeline( @@ -39,7 +41,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/dateAdd/example2 * */ - @Test(testName = "Filter on a Date Range") + @Test + @DisplayName("Filter on a Date Range") public void testExample2() { testPipeline(aggregation -> aggregation.pipeline( match(expr(gt("$deliveryDate", dateAdd("$purchaseDate", 5, TimeUnit.DAY)))), @@ -56,7 +59,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/dateAdd/example3 * */ - @Test(testName = "Adjust for Daylight Savings Time") + @Test + @DisplayName("Adjust for Daylight Savings Time") public void testExample3() { testPipeline(aggregation -> aggregation.pipeline(project().suppressId().include("location") .include("start", dateToString().date("$login").format("%Y-%m-%d %H:%M")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateDiff.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateDiff.java index 985f411e454..b069785b508 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateDiff.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateDiff.java @@ -3,8 +3,9 @@ import dev.morphia.aggregation.expressions.TimeUnit; import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.avg; import static dev.morphia.aggregation.expressions.DateExpressions.dateDiff; @@ -21,7 +22,7 @@ public class TestDateDiff extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -30,7 +31,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/dateDiff/example1 * */ - @Test(testName = "Elapsed Time") + @Test + @DisplayName("Elapsed Time") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline( group(id(null)).field("averageTime", avg(dateDiff("$purchased", "$delivered", TimeUnit.DAY))), @@ -43,7 +45,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/dateDiff/example2 * */ - @Test(testName = "Result Precision") + @Test + @DisplayName("Result Precision") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(project().suppressId().include("start", "$start") .include("end", "$end").include("years", dateDiff("$start", "$end", YEAR)) @@ -55,7 +58,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/dateDiff/example3 * */ - @Test(testName = "Weeks Per Month") + @Test + @DisplayName("Weeks Per Month") public void testExample3() { testPipeline((aggregation) -> aggregation .pipeline(project().suppressId().include("wks_default", dateDiff("$start", "$end", WEEK)) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateFromParts.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateFromParts.java index 8273aa13f85..96c21219eca 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateFromParts.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateFromParts.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dateFromParts; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestDateFromParts extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/dateFromParts/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("date", dateFromParts().year(2017).month(2).day(8).hour(12)) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateFromString.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateFromString.java index 02b39c679e4..8197f238fd6 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateFromString.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateFromString.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dateFromString; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestDateFromString extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/dateFromString/example1 * */ - @Test(testName = "Converting Dates") + @Test + @DisplayName("Converting Dates") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline( project().include("date", dateFromString().dateString("$date").timeZone("America/New_York")))); @@ -22,7 +24,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/dateFromString/example2 * */ - @Test(testName = "``onError``") + @Test + @DisplayName("``onError``") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(project().include("date", dateFromString().dateString("$date").timeZone("$timezone").onError("$date")))); @@ -32,7 +35,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/dateFromString/example3 * */ - @Test(testName = "``onNull``") + @Test + @DisplayName("``onNull``") public void testExample3() { testPipeline((aggregation) -> aggregation.pipeline( project().include("date", dateFromString().dateString("$date").timeZone("$timezone").onNull("oops")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateSubtract.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateSubtract.java index 8e68cf88dc7..b37af67d87b 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateSubtract.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateSubtract.java @@ -3,8 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.eq; import static dev.morphia.aggregation.expressions.DateExpressions.dateSubtract; @@ -19,7 +20,7 @@ public class TestDateSubtract extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -28,7 +29,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/dateSubtract/example1 * */ - @Test(testName = "Subtract A Fixed Amount") + @Test + @DisplayName("Subtract A Fixed Amount") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true).orderMatters(false), (aggregation) -> aggregation.pipeline( @@ -40,7 +42,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/dateSubtract/example2 * */ - @Test(testName = "Filter by Relative Dates") + @Test + @DisplayName("Filter by Relative Dates") public void testExample2() { // $$NOW is a little pointless /* @@ -58,7 +61,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/dateSubtract/example3 * */ - @Test(testName = "Adjust for Daylight Savings Time") + @Test + @DisplayName("Adjust for Daylight Savings Time") public void testExample3() { testPipeline((aggregation) -> aggregation.pipeline(project().suppressId().include("location") .include("start", dateToString().date("$login").format("%Y-%m-%d %H:%M")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateToParts.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateToParts.java index 0cfe0a915ae..7f27843ee33 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateToParts.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateToParts.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dateToParts; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestDateToParts extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/dateToParts/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline( project().include("date", dateToParts("$date")).include("date_iso", dateToParts("$date").iso8601(true)) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateToString.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateToString.java index a0d6ff69eb8..1d9239a55d8 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateToString.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateToString.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dateToString; import static dev.morphia.aggregation.stages.Projection.project; @@ -13,7 +14,8 @@ public class TestDateToString extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/dateToString/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().serverVersion("7.0.0"), (aggregation) -> aggregation.pipeline(project() .include("yearMonthDayUTC", dateToString().date("$date").format("%Y-%m-%d")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateTrunc.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateTrunc.java index 57ce86dd2f3..27ed1990582 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateTrunc.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDateTrunc.java @@ -3,8 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; import static dev.morphia.aggregation.expressions.DateExpressions.dateTrunc; @@ -16,7 +17,7 @@ public class TestDateTrunc extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -25,7 +26,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/dateTrunc/example1 * */ - @Test(testName = "Truncate Order Dates in a ``$project`` Pipeline Stage") + @Test + @DisplayName("Truncate Order Dates in a ``$project`` Pipeline Stage") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("_id").include("orderDate").include("truncatedOrderDate", @@ -36,7 +38,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/dateTrunc/example2 * */ - @Test(testName = "Truncate Order Dates and Obtain Quantity Sum in a ``$group`` Pipeline Stage") + @Test + @DisplayName("Truncate Order Dates and Obtain Quantity Sum in a ``$group`` Pipeline Stage") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDayOfMonth.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDayOfMonth.java index 1b3757340e7..3a7b2f75102 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDayOfMonth.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDayOfMonth.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfMonth; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfWeek; @@ -21,7 +22,8 @@ public class TestDayOfMonth extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/dayOfMonth/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("year", year("$date")) .include("month", month("$date")).include("day", dayOfMonth("$date")).include("hour", hour("$date")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDayOfWeek.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDayOfWeek.java index e716cb22039..44c115c1458 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDayOfWeek.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDayOfWeek.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfMonth; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfWeek; @@ -21,7 +22,8 @@ public class TestDayOfWeek extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/dayOfWeek/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("year", year("$date")) .include("month", month("$date")).include("day", dayOfMonth("$date")).include("hour", hour("$date")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDayOfYear.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDayOfYear.java index 42f262ea238..d8d86f623bf 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDayOfYear.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDayOfYear.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfMonth; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfWeek; @@ -21,7 +22,8 @@ public class TestDayOfYear extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/dayOfYear/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("year", year("$date")) .include("month", month("$date")).include("day", dayOfMonth("$date")).include("hour", hour("$date")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDegreesToRadians.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDegreesToRadians.java index d3085c7a5f5..60ad517fb80 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDegreesToRadians.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDegreesToRadians.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.degreesToRadians; import static dev.morphia.aggregation.stages.AddFields.addFields; @@ -13,7 +14,8 @@ public class TestDegreesToRadians extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/degreesToRadians/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation.pipeline(addFields().field("angle_a_rad", degreesToRadians("$angle_a")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDenseRank.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDenseRank.java index 75d65a8d07a..b3c15effb40 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDenseRank.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDenseRank.java @@ -3,8 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.WindowExpressions.denseRank; import static dev.morphia.aggregation.stages.SetWindowFields.Output.output; @@ -13,7 +14,7 @@ public class TestDenseRank extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -22,7 +23,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/denseRank/example1 * */ - @Test(testName = "Dense Rank Partitions by an Integer Field") + @Test + @DisplayName("Dense Rank Partitions by an Integer Field") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$state") .sortBy(descending("quantity")).output(output("denseRankQuantityForState").operator(denseRank())))); @@ -32,7 +34,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/denseRank/example2 * */ - @Test(testName = "Dense Rank Partitions by a Date Field") + @Test + @DisplayName("Dense Rank Partitions by a Date Field") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$state") .sortBy(ascending("orderDate")).output(output("denseRankOrderDateForState").operator(denseRank())))); @@ -42,7 +45,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/denseRank/example3 * */ - @Test(testName = "Dense Rank for Duplicate, Null, and Missing Values") + @Test + @DisplayName("Dense Rank for Duplicate, Null, and Missing Values") public void testExample3() { testPipeline(new ActionTestOptions().serverVersion("8.0.0"), (aggregation) -> aggregation diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDerivative.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDerivative.java index 2d3ac961bcb..3b40543b696 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDerivative.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDerivative.java @@ -3,8 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TimeUnit.HOUR; import static dev.morphia.aggregation.expressions.TimeUnit.SECOND; @@ -17,7 +18,7 @@ public class TestDerivative extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -26,7 +27,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/derivative/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$truckID") diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDivide.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDivide.java index ad352a1963e..ab5d92f2c8b 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDivide.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDivide.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.divide; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestDivide extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/divide/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("city").include("workdays", divide("$hours", 8)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDocumentNumber.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDocumentNumber.java index d54d3e365f2..ef306878770 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDocumentNumber.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestDocumentNumber.java @@ -2,8 +2,9 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.WindowExpressions.documentNumber; import static dev.morphia.aggregation.stages.SetWindowFields.Output.*; @@ -12,7 +13,7 @@ public class TestDocumentNumber extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -21,7 +22,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/documentNumber/example1 * */ - @Test(testName = "Document Number for Each State") + @Test + @DisplayName("Document Number for Each State") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$state") .sortBy(descending("quantity")).output(output("documentNumberForState").operator(documentNumber())))); @@ -31,7 +33,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/documentNumber/example2 * */ - @Test(testName = "Document Number for Duplicate, Null, and Missing Values") + @Test + @DisplayName("Document Number for Duplicate, Null, and Missing Values") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$state") .sortBy(descending("quantity")).output(output("documentNumberForState").operator(documentNumber())))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestEq.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestEq.java index 025797f6378..b3fb8ac6eb7 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestEq.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestEq.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.eq; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestEq extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/eq/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().suppressId().include("item").include("qty").include("qtyEq250", eq("$qty", 250)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestExp.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestExp.java index f134e47de5a..dea6f88ec11 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestExp.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestExp.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.exp; import static dev.morphia.aggregation.expressions.MathExpressions.subtract; @@ -13,7 +14,8 @@ public class TestExp extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/exp/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("effectiveRate", subtract(exp("$interestRate"), 1)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestExpMovingAvg.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestExpMovingAvg.java index 39729ff43db..94dac6ad2d3 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestExpMovingAvg.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestExpMovingAvg.java @@ -3,8 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.WindowExpressions.expMovingAvg; import static dev.morphia.aggregation.stages.SetWindowFields.Output.output; @@ -13,7 +14,7 @@ public class TestExpMovingAvg extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -22,7 +23,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/expMovingAvg/example1 * */ - @Test(testName = "Exponential Moving Average Using ``N``") + @Test + @DisplayName("Exponential Moving Average Using ``N``") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$stock").sortBy(ascending("date")) @@ -33,7 +35,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/expMovingAvg/example2 * */ - @Test(testName = "Exponential Moving Average Using ``alpha``") + @Test + @DisplayName("Exponential Moving Average Using ``alpha``") public void testExample2() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$stock").sortBy(ascending("date")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFilter.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFilter.java index 4f8eac9fa64..8f899d57a9f 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFilter.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFilter.java @@ -3,8 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.eq; import static dev.morphia.aggregation.expressions.ComparisonExpressions.gte; @@ -14,7 +15,7 @@ public class TestFilter extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.2.0"); } @@ -23,7 +24,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/filter/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions(), (aggregation) -> aggregation .pipeline(project().include("items", filter("$items", gte("$$item.price", 100)).as("item")))); @@ -33,7 +35,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/filter/example2 * */ - @Test(testName = "Use the limit Field") + @Test + @DisplayName("Use the limit Field") public void testExample2() { testPipeline(new ActionTestOptions(), (aggregation) -> aggregation .pipeline(project().include("items", filter("$items", gte("$$item.price", 100)).as("item").limit(1)))); @@ -43,7 +46,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/filter/example3 * */ - @Test(testName = "limit Greater than Possible Matches") + @Test + @DisplayName("limit Greater than Possible Matches") public void testExample3() { // this example is API incompatible with morphia since limit can only be an int // and not a floating point number @@ -53,7 +57,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/expressions/filter/example4 * */ - @Test(testName = "Filter Based on String Equality Match") + @Test + @DisplayName("Filter Based on String Equality Match") public void testExample4() { testPipeline(new ActionTestOptions(), (aggregation) -> aggregation .pipeline(project().include("items", filter("$items", eq("$$item.name", "pen")).as("item")))); @@ -62,7 +67,8 @@ public void testExample4() { /** * test data: dev/morphia/test/aggregation/expressions/filter/example5 */ - @Test(testName = "Filter Based on Regular Expression Match") + @Test + @DisplayName("Filter Based on Regular Expression Match") public void testExample5() { testPipeline(aggregation -> aggregation.pipeline( project().include("items", filter("$items", regexMatch("$$item.name").pattern("^p")).as("item")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFirst.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFirst.java index d937a3e5507..ba15a38de2d 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFirst.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFirst.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.first; import static dev.morphia.aggregation.stages.Group.group; @@ -16,7 +17,8 @@ public class TestFirst extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/first/example1 * */ - @Test(testName = "Use in ``$group`` Stage") + @Test + @DisplayName("Use in ``$group`` Stage") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation .pipeline(sort().ascending("item", "date"), group(id("$item")).field("firstSale", first("$date")))); @@ -26,7 +28,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/first/example2 * */ - @Test(testName = "Missing Data") + @Test + @DisplayName("Missing Data") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation .pipeline(sort().ascending("item", "price"), group(id("$item")).field("inStock", first("$quantity")) @@ -38,7 +41,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/first/example3 * */ - @Test(testName = "Use in ``$setWindowFields`` Stage") + @Test + @DisplayName("Use in ``$setWindowFields`` Stage") public void testExample3() { // this example starts importing a bunch of stuff and gets more complicated than // I care diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFirstN.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFirstN.java index 43c96f8c62f..63b0ba6a8ca 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFirstN.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFirstN.java @@ -4,8 +4,10 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.firstN; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; @@ -21,12 +23,13 @@ public class TestFirstN extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.2.0"); } - @Test(testName = "Find the First Three Player Scores for a Single Game") + @Test + @DisplayName("Find the First Three Player Scores for a Single Game") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( @@ -37,7 +40,8 @@ public void testExample1() { array("$playerId", "$score"))))); } - @Test(testName = "Finding the First Three Player Scores Across Multiple Games") + @Test + @DisplayName("Finding the First Three Player Scores Across Multiple Games") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( @@ -48,7 +52,8 @@ public void testExample2() { } - @Test(testName = "Using ``$sort`` With ``$firstN``") + @Test + @DisplayName("Using ``$sort`` With ``$firstN``") public void testExample3() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( @@ -60,7 +65,8 @@ public void testExample3() { } - @Test(testName = "Computing ``n`` Based on the Group Key for ``$group``") + @Test + @DisplayName("Computing ``n`` Based on the Group Key for ``$group``") public void testExample4() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( @@ -74,7 +80,8 @@ public void testExample4() { "$score")))); } - @Test(enabled = false, description = "this needs to run against the db rather than a collection and that requires fixes in the agg code") + @Disabled("this needs to run against the db rather than a collection and that requires fixes in the agg code") + @Test public void testExample5() { testPipeline( (aggregation) -> aggregation.pipeline( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFloor.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFloor.java index 65299e1eeda..3db5b7d6dd6 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFloor.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFloor.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.floor; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestFloor extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/floor/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("value").include("floorValue", floor("$value")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFunction.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFunction.java index 85ca1fadedd..53eecac7f34 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFunction.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestFunction.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.function; import static dev.morphia.aggregation.stages.AddFields.addFields; @@ -13,7 +14,8 @@ public class TestFunction extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/function/example1 * */ - @Test(testName = "Example 1: Usage Example") + @Test + @DisplayName("Example 1: Usage Example") public void testExample1() { testPipeline(new ActionTestOptions().skipActionCheck(true), (aggregation) -> aggregation.pipeline(addFields().field("isFound", function(""" @@ -30,7 +32,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/function/example2 * */ - @Test(testName = "Example 2: Alternative to ``$where``") + @Test + @DisplayName("Example 2: Alternative to ``$where``") public void testExample2() { // example doesn't really apply to morphia } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestGetField.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestGetField.java index 8811823a610..e23998e47b0 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestGetField.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestGetField.java @@ -2,8 +2,9 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.gt; import static dev.morphia.aggregation.expressions.ComparisonExpressions.lte; @@ -14,7 +15,7 @@ public class TestGetField extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -23,7 +24,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/getField/example1 * */ - @Test(testName = "Query Fields that Contain Periods (``.``)") + @Test + @DisplayName("Query Fields that Contain Periods (``.``)") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(match(expr(gt(getField("price.usd"), 200))))); } @@ -32,7 +34,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/getField/example2 * */ - @Test(testName = "Query Fields that Start with a Dollar Sign (``$``)") + @Test + @DisplayName("Query Fields that Start with a Dollar Sign (``$``)") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(match(expr(gt(getField(literal("$price")), 200))))); } @@ -41,7 +44,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/getField/example3 * */ - @Test(testName = "Query a Field in a Sub-document") + @Test + @DisplayName("Query a Field in a Sub-document") public void testExample3() { testPipeline((aggregation) -> aggregation .pipeline(match(expr(lte(getField(literal("$small")).input("$quantity"), 20))))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestGt.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestGt.java index f6029f7908b..60a520f470a 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestGt.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestGt.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.gt; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestGt extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/gt/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().suppressId().include("item").include("qty").include("qtyGt250", gt("$qty", 250)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestGte.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestGte.java index 8a0c6a818aa..169aa0c01f2 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestGte.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestGte.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.gte; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestGte extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/gte/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline( project().suppressId().include("item").include("qty").include("qtyGte250", gte("$qty", 250)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestHour.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestHour.java index e981d4b8c38..0984c0618cb 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestHour.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestHour.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfMonth; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfWeek; @@ -20,7 +21,8 @@ public class TestHour extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/hour/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("year", year("$date")) .include("month", month("$date")).include("day", dayOfMonth("$date")).include("hour", hour("$date")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIfNull.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIfNull.java index 1ee3cd700cf..eca5a13a126 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIfNull.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIfNull.java @@ -2,15 +2,16 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ConditionalExpressions.ifNull; import static dev.morphia.aggregation.stages.Projection.project; public class TestIfNull extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -19,7 +20,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/ifNull/example1 * */ - @Test(testName = "Single Input Expression") + @Test + @DisplayName("Single Input Expression") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("item").include("description", ifNull().target("$description").replacement("Unspecified")))); @@ -29,7 +31,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/ifNull/example2 * */ - @Test(testName = "Multiple Input Expressions") + @Test + @DisplayName("Multiple Input Expressions") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(project().include("item").include("value", ifNull().input("$description", "$quantity").replacement("Unspecified")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIn.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIn.java index 4212eb176b0..010c6245539 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIn.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIn.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.in; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestIn extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/in/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline( project().include("store location", "$location").include("has bananas", in("bananas", "$in_stock")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIndexOfArray.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIndexOfArray.java index b59b950e88e..60476e31edc 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIndexOfArray.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIndexOfArray.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.indexOfArray; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestIndexOfArray extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/indexOfArray/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("index", indexOfArray("$items", 2)))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIndexOfBytes.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIndexOfBytes.java index 01341663701..0b4603224d9 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIndexOfBytes.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIndexOfBytes.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.indexOfBytes; import static dev.morphia.aggregation.stages.Projection.project; @@ -13,7 +14,8 @@ public class TestIndexOfBytes extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/indexOfBytes/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(project().include("byteLocation", indexOfBytes("$item", "foo")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIndexOfCP.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIndexOfCP.java index 1d7882e373c..abee0d6f819 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIndexOfCP.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIndexOfCP.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.indexOfCP; import static dev.morphia.aggregation.stages.Projection.project; @@ -13,7 +14,8 @@ public class TestIndexOfCP extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/indexOfCP/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(project().include("cpLocation", indexOfCP("$item", "foo")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIntegral.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIntegral.java index 78f73feca59..3ef9203528c 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIntegral.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIntegral.java @@ -4,8 +4,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TimeUnit.HOUR; import static dev.morphia.aggregation.expressions.WindowExpressions.integral; @@ -14,7 +15,7 @@ public class TestIntegral extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -23,7 +24,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/integral/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsArray.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsArray.java index ee3fec1e476..ab3acb39992 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsArray.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsArray.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.concatArrays; import static dev.morphia.aggregation.expressions.ArrayExpressions.isArray; @@ -15,7 +16,8 @@ public class TestIsArray extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/isArray/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("items", condition(and(isArray("$instock"), isArray("$ordered")), diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsNumber.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsNumber.java index 1d4d42eea8c..47b5c815fa1 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsNumber.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsNumber.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.avg; import static dev.morphia.aggregation.expressions.ComparisonExpressions.eq; @@ -20,7 +21,8 @@ public class TestIsNumber extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/isNumber/example1 * */ - @Test(testName = "Use $isNumber to Check if a Field is Numeric") + @Test + @DisplayName("Use $isNumber to Check if a Field is Numeric") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("isNumber", isNumber("$reading")).field("hasType", type("$reading")))); @@ -30,7 +32,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/isNumber/example2 * */ - @Test(testName = "Conditionally Modify Fields using $isNumber") + @Test + @DisplayName("Conditionally Modify Fields using $isNumber") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsoDayOfWeek.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsoDayOfWeek.java index bb2d0e64093..2f14f9ee6a6 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsoDayOfWeek.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsoDayOfWeek.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.isoDayOfWeek; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestIsoDayOfWeek extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/isoDayOfWeek/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline( project().suppressId().include("name", "$name").include("dayOfWeek", isoDayOfWeek("$birthday")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsoWeek.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsoWeek.java index c17dd013124..7a98068d90b 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsoWeek.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsoWeek.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.isoWeek; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestIsoWeek extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/isoWeek/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().suppressId().include("city", "$city").include("weekNumber", isoWeek("$date")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsoWeekYear.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsoWeekYear.java index ed9cc386060..e140d3f636a 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsoWeekYear.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestIsoWeekYear.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.isoWeekYear; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestIsoWeekYear extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/isoWeekYear/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("yearNumber", isoWeekYear("$date")))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLast.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLast.java index 29a6aaf94dc..9a9f2beafc0 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLast.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLast.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.last; import static dev.morphia.aggregation.stages.Group.group; @@ -17,7 +18,8 @@ public class TestLast extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/last/example1 * */ - @Test(testName = "Use in ``$group`` Stage") + @Test + @DisplayName("Use in ``$group`` Stage") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(sort().ascending("item").ascending("date"), @@ -28,7 +30,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/last/example2 * */ - @Test(testName = "Use in ``$setWindowFields`` Stage") + @Test + @DisplayName("Use in ``$setWindowFields`` Stage") public void testExample2() { // this example starts importing a bunch of stuff and gets more complicated than // I care diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLastN.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLastN.java index ce7ce532c7a..330c8fd2ef9 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLastN.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLastN.java @@ -4,8 +4,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.lastN; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; @@ -18,12 +19,13 @@ public class TestLastN extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.2.0"); } - @Test(testName = "Find the Last Three Player Scores for a Single Game") + @Test + @DisplayName("Find the Last Three Player Scores for a Single Game") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation @@ -36,7 +38,8 @@ public void testExample1() { } - @Test(testName = "Finding the Last Three Player Scores Across Multiple Games") + @Test + @DisplayName("Finding the Last Three Player Scores Across Multiple Games") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation @@ -47,7 +50,8 @@ public void testExample2() { } - @Test(testName = "Using ``$sort`` With ``$lastN``") + @Test + @DisplayName("Using ``$sort`` With ``$lastN``") public void testExample3() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation @@ -60,7 +64,8 @@ public void testExample3() { } - @Test(testName = "Computing ``n`` Based on the Group Key for ``$group``") + @Test + @DisplayName("Computing ``n`` Based on the Group Key for ``$group``") public void testExample4() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLet.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLet.java index e8d55a3488b..344ed8686d8 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLet.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLet.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ConditionalExpressions.condition; import static dev.morphia.aggregation.expressions.MathExpressions.add; @@ -15,7 +16,8 @@ public class TestLet extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/let/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("finalTotal", let(multiply("$$total", "$$discounted")).variable("total", add("$price", "$tax")).variable("discounted", diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLinearFill.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLinearFill.java index aacc67043d0..2844fb10ed9 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLinearFill.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLinearFill.java @@ -3,8 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.WindowExpressions.linearFill; import static dev.morphia.aggregation.expressions.WindowExpressions.locf; @@ -14,7 +15,7 @@ public class TestLinearFill extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.3.0"); } @@ -22,7 +23,8 @@ public void versionCheck() { /** * test data: dev/morphia/test/aggregation/expressions/linearFill/example1 */ - @Test(testName = "Fill Missing Values with Linear Interpolation") + @Test + @DisplayName("Fill Missing Values with Linear Interpolation") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true).orderMatters(false), (aggregation) -> aggregation.pipeline( setWindowFields().sortBy(ascending("time")).output(output("price").operator(linearFill("$price"))))); @@ -33,7 +35,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/linearFill/example2 * */ - @Test(testName = "Use Multiple Fill Methods in a Single Stage") + @Test + @DisplayName("Use Multiple Fill Methods in a Single Stage") public void testExample2() { testPipeline(new ActionTestOptions().removeIds(true).orderMatters(false), (aggregation) -> aggregation.pipeline(setWindowFields().sortBy(ascending("time")).output( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLiteral.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLiteral.java index 23d6e93af58..644a9280816 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLiteral.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLiteral.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.eq; import static dev.morphia.aggregation.expressions.Expressions.literal; @@ -13,7 +14,8 @@ public class TestLiteral extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/literal/example1 * */ - @Test(testName = "Treat ``$`` as a Literal") + @Test + @DisplayName("Treat ``$`` as a Literal") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("costsOneDollar", eq("$price", literal("$1"))))); @@ -23,7 +25,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/literal/example2 * */ - @Test(testName = "Project a New Field with Value ``1``") + @Test + @DisplayName("Project a New Field with Value ``1``") public void testExample2() { testPipeline( (aggregation) -> aggregation.pipeline(project().include("title").include("editionNumber", literal(1)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLn.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLn.java index 77e0fef5173..beae4401bc1 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLn.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLn.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.ln; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestLn extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/ln/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("x", "$year").include("y", ln("$sales")))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLocf.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLocf.java index 4aca3fd59ab..049d2f26cd0 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLocf.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLocf.java @@ -3,8 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.WindowExpressions.linearFill; import static dev.morphia.aggregation.expressions.WindowExpressions.locf; @@ -14,7 +15,7 @@ public class TestLocf extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.2.0"); } @@ -23,7 +24,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/locf/example1 * */ - @Test(testName = "Fill Missing Values with the Last Observed Value") + @Test + @DisplayName("Fill Missing Values with the Last Observed Value") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true).orderMatters(false), (aggregation) -> aggregation.pipeline( setWindowFields().sortBy(ascending("time")).output(output("price").operator(locf("$price"))))); @@ -33,7 +35,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/locf/example2 * */ - @Test(testName = "Use Multiple Fill Methods in a Single Stage") + @Test + @DisplayName("Use Multiple Fill Methods in a Single Stage") public void testExample2() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation.pipeline(setWindowFields().sortBy(ascending("time")).output( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLog.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLog.java index 69d85bd6fca..922754abfbb 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLog.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLog.java @@ -3,7 +3,8 @@ import dev.morphia.aggregation.expressions.impls.Expression; import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.add; import static dev.morphia.aggregation.expressions.MathExpressions.floor; @@ -15,7 +16,8 @@ public class TestLog extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/log/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { Expression value; testPipeline( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLog10.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLog10.java index b98c579e4fd..adaef1da04f 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLog10.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLog10.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.log10; import static dev.morphia.aggregation.expressions.MathExpressions.multiply; @@ -13,7 +14,8 @@ public class TestLog10 extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/log10/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("pH", multiply(-1, log10("$H3O"))))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLt.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLt.java index 0d1a7407b78..6ec606b58c5 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLt.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLt.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.lt; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestLt extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/lt/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().suppressId().include("item").include("qty").include("qtyLt250", lt("$qty", 250)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLte.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLte.java index c22fa8b99d2..573bb4c0472 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLte.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLte.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.lte; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestLte extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/lte/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline( project().suppressId().include("item").include("qty").include("qtyLte250", lte("$qty", 250)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLtrim.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLtrim.java index 838fe06281e..67c1a47dafb 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLtrim.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestLtrim.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.ltrim; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestLtrim extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/ltrim/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item").include("description", ltrim("$description")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMap.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMap.java index c3939813506..796d63920dc 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMap.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMap.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.*; import static dev.morphia.aggregation.expressions.MathExpressions.add; @@ -17,7 +18,8 @@ public class TestMap extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/map/example1 * */ - @Test(testName = "Add to Each Element of an Array") + @Test + @DisplayName("Add to Each Element of an Array") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation .pipeline(project().include("adjustedGrades", map("$quizzes", add("$$grade", 2)).as("grade")))); @@ -27,7 +29,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/map/example2 * */ - @Test(testName = "Truncate Each Array Element") + @Test + @DisplayName("Truncate Each Array Element") public void testExample2() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation.pipeline(project().include("city", "$city").include("integerValues", @@ -38,7 +41,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/map/example3 * */ - @Test(testName = "Convert Celsius Temperatures to Fahrenheit") + @Test + @DisplayName("Convert Celsius Temperatures to Fahrenheit") public void testExample3() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation.pipeline(addFields() .field("tempsF", map("$tempsC", add(multiply("$$tempInCelsius", 1.8), 32)).as("tempInCelsius")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMax.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMax.java index 6ce32f267ef..459db21aa4c 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMax.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMax.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.max; import static dev.morphia.aggregation.expressions.MathExpressions.multiply; @@ -19,7 +20,8 @@ public class TestMax extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/max/example1 * */ - @Test(testName = "Use in ``$group`` Stage") + @Test + @DisplayName("Use in ``$group`` Stage") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation @@ -31,7 +33,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/max/example2 * */ - @Test(testName = "Use in ``$project`` Stage") + @Test + @DisplayName("Use in ``$project`` Stage") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(project().include("quizMax", max("$quizzes")) .include("labMax", max("$labs")).include("examMax", max("$final", "$midterm")))); @@ -41,7 +44,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/max/example3 * */ - @Test(testName = "Use in ``$setWindowFields`` Stage") + @Test + @DisplayName("Use in ``$setWindowFields`` Stage") public void testExample3() { checkMinServerVersion("5.0.0"); testPipeline(new ActionTestOptions(), diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMaxN.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMaxN.java index e25f4094234..7f5e5f84004 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMaxN.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMaxN.java @@ -4,8 +4,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.maxN; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; @@ -18,7 +19,7 @@ public class TestMaxN extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.2.0"); } @@ -27,7 +28,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/maxN/example1 * */ - @Test(testName = "Find the Maximum Three ``Scores`` for a Single Game") + @Test + @DisplayName("Find the Maximum Three ``Scores`` for a Single Game") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(match(eq("gameId", "G1")), @@ -39,7 +41,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/maxN/example2 * */ - @Test(testName = "Finding the Maximum Three Scores Across Multiple Games") + @Test + @DisplayName("Finding the Maximum Three Scores Across Multiple Games") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation .pipeline(group(id("$gameId")).field("maxScores", maxN(3, array("$score", "$playerId"))))); @@ -50,7 +53,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/maxN/example3 * */ - @Test(testName = "Computing ``n`` Based on the Group Key for ``$group``") + @Test + @DisplayName("Computing ``n`` Based on the Group Key for ``$group``") public void testExample3() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(group(id().field("gameId", "$gameId")).field("gamescores", maxN( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMedian.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMedian.java index b59b15a35d8..11fdfaf2824 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMedian.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMedian.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; import static dev.morphia.aggregation.expressions.MathExpressions.median; @@ -17,7 +18,8 @@ public class TestMedian extends TemplatedTestBase { /** * test data: dev/morphia/test/aggregation/expressions/median/example1 */ - @Test(testName = "Use |operatorName| as an Accumulator") + @Test + @DisplayName("Use |operatorName| as an Accumulator") public void testExample1() { testPipeline(new ActionTestOptions().serverVersion("7.0.0").orderMatters(false), aggregation -> aggregation.pipeline(group().field("test01_median", median("$test01")))); @@ -27,7 +29,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/median/example2 * */ - @Test(testName = "Use |operatorName| in a ``$project`` Stage") + @Test + @DisplayName("Use |operatorName| in a ``$project`` Stage") public void testExample2() { testPipeline(new ActionTestOptions().serverVersion("7.0.0"), aggregation -> aggregation.pipeline(project().suppressId().include("studentId").include("testMedians", @@ -38,7 +41,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/median/example3 * */ - @Test(testName = "Use |operatorName| in a ``$setWindowField`` Stage") + @Test + @DisplayName("Use |operatorName| in a ``$setWindowField`` Stage") public void testExample3() { testPipeline(new ActionTestOptions().serverVersion("7.0.0"), aggregation -> aggregation.pipeline( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMergeObjects.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMergeObjects.java index d99d87f9522..eeb5aa02f1a 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMergeObjects.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMergeObjects.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.elementAt; import static dev.morphia.aggregation.expressions.ObjectExpressions.mergeObjects; @@ -19,7 +20,8 @@ public class TestMergeObjects extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/mergeObjects/example1 * */ - @Test(testName = "``$mergeObjects``") + @Test + @DisplayName("``$mergeObjects``") public void testExample1() { loadData("items", 2); testPipeline((aggregation) -> aggregation.pipeline( @@ -31,7 +33,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/mergeObjects/example2 * */ - @Test(testName = "``$mergeObjects`` as an Accumulator") + @Test + @DisplayName("``$mergeObjects`` as an Accumulator") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation .pipeline(group(id("$item")).field("mergedSales", mergeObjects().add("$quantity")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMeta.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMeta.java index 33e429864bd..009e0853833 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMeta.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMeta.java @@ -5,7 +5,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; import static dev.morphia.aggregation.expressions.Expressions.meta; @@ -23,7 +24,8 @@ public class TestMeta extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/meta/example1 * */ - @Test(testName = "``$meta: \"textScore\"`` :: Aggregation") + @Test + @DisplayName("``$meta: \"textScore\"`` :: Aggregation") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(match(text("cake")), group(id(meta())).field("count", sum(1)))); @@ -33,7 +35,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/meta/example2 * */ - @Test(testName = "``$meta: \"textScore\"`` :: Find and Project") + @Test + @DisplayName("``$meta: \"textScore\"`` :: Find and Project") public void testExample2() { testQuery( new ActionTestOptions().orderMatters(false) @@ -44,7 +47,8 @@ public void testExample2() { /** * test data: dev/morphia/test/aggregation/expressions/meta/example3 */ - @Test(testName = "``$meta: \"indexKey\"`` :: Aggregation") + @Test + @DisplayName("``$meta: \"indexKey\"`` :: Aggregation") public void testExample3() { testPipeline(new ActionTestOptions().removeIds(true), aggregation -> aggregation .pipeline(match(eq("type", "apparel")), addFields().field("idxKey", meta(INDEXKEY)))); @@ -53,7 +57,8 @@ public void testExample3() { /** * test data: dev/morphia/test/aggregation/expressions/meta/example4 */ - @Test(testName = "``$meta: \"indexKey\"`` :: Find and Project") + @Test + @DisplayName("``$meta: \"indexKey\"`` :: Find and Project") public void testExample4() { testQuery( new ActionTestOptions().orderMatters(false).removeIds(true) @@ -64,7 +69,8 @@ public void testExample4() { /** * test data: dev/morphia/test/aggregation/expressions/meta/example5 */ - @Test(testName = "``$meta: \"indexKey\"`` :: Aggregation [1]") + @Test + @DisplayName("``$meta: \"indexKey\"`` :: Aggregation [1]") public void testExample5() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation .pipeline(match(gte("price", 10)), addFields().field("idxKey", meta(INDEXKEY)))); @@ -73,7 +79,8 @@ public void testExample5() { /** * test data: dev/morphia/test/aggregation/expressions/meta/example6 */ - @Test(testName = "``$meta: \"indexKey\"`` :: Find and Project [1]") + @Test + @DisplayName("``$meta: \"indexKey\"`` :: Find and Project [1]") public void testExample6() { testQuery( new ActionTestOptions().orderMatters(false).removeIds(true) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMillisecond.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMillisecond.java index 44b6dfd20df..3ce9ebbf99c 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMillisecond.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMillisecond.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfMonth; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfWeek; @@ -21,7 +22,8 @@ public class TestMillisecond extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/millisecond/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("year", year("$date")) .include("month", month("$date")).include("day", dayOfMonth("$date")).include("hour", hour("$date")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMin.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMin.java index 615dfdc7b7d..182a6f29fea 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMin.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMin.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.min; import static dev.morphia.aggregation.stages.Group.group; @@ -18,7 +19,8 @@ public class TestMin extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/min/example1 * */ - @Test(testName = "Use in ``$group`` Stage") + @Test + @DisplayName("Use in ``$group`` Stage") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(group(id("$item")).field("minQuantity", min("$quantity")))); @@ -28,7 +30,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/min/example2 * */ - @Test(testName = "Use in ``$project`` Stage") + @Test + @DisplayName("Use in ``$project`` Stage") public void testExample2() { testPipeline(new ActionTestOptions(), (aggregation) -> aggregation.pipeline(project().include("quizMin", min("$quizzes")) @@ -39,7 +42,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/min/example3 * */ - @Test(testName = "Use in ``$setWindowFields`` Stage") + @Test + @DisplayName("Use in ``$setWindowFields`` Stage") public void testExample3() { checkMinServerVersion("5.0.0"); testPipeline(new ActionTestOptions(), diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMinN.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMinN.java index 01cdaa5d60b..08e56d74fbf 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMinN.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMinN.java @@ -4,8 +4,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.minN; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; @@ -17,7 +18,7 @@ public class TestMinN extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.2.0"); } @@ -26,7 +27,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/minN/example1 * */ - @Test(testName = "Find the Minimum Three ``Scores`` for a Single Game") + @Test + @DisplayName("Find the Minimum Three ``Scores`` for a Single Game") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(match(eq("gameId", "G1")), @@ -38,7 +40,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/minN/example2 * */ - @Test(testName = "Finding the Minimum Three Documents Across Multiple Games") + @Test + @DisplayName("Finding the Minimum Three Documents Across Multiple Games") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation .pipeline(group(id("$gameId")).field("minScores", minN(3, array("$score", "$playerId"))))); @@ -49,7 +52,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/minN/example3 * */ - @Test(testName = "Computing ``n`` Based on the Group Key for ``$group``") + @Test + @DisplayName("Computing ``n`` Based on the Group Key for ``$group``") public void testExample3() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(group(id().field("gameId", "$gameId")).field("gamescores", minN( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMinute.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMinute.java index 2ef3a0b153e..c7cace1d54d 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMinute.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMinute.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfMonth; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfWeek; @@ -21,7 +22,8 @@ public class TestMinute extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/minute/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("year", year("$date")) .include("month", month("$date")).include("day", dayOfMonth("$date")).include("hour", hour("$date")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMod.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMod.java index 70784295e32..312561af1fa 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMod.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMod.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.mod; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestMod extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/mod/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("remainder", mod("$hours", "$tasks")))); } @@ -21,7 +23,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/mod/example2 * */ - @Test(testName = "Negative Dividend") + @Test + @DisplayName("Negative Dividend") public void testExample2() { testPipeline( (aggregation) -> aggregation.pipeline(project().include("remainder", mod("$dividend", "$divisor")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMonth.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMonth.java index d8ab50ba33f..f859037086c 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMonth.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMonth.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfMonth; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfWeek; @@ -21,7 +22,8 @@ public class TestMonth extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/month/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("year", year("$date")) .include("month", month("$date")).include("day", dayOfMonth("$date")).include("hour", hour("$date")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMultiply.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMultiply.java index 55c21d533b0..afc9425534d 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMultiply.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestMultiply.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.multiply; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestMultiply extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/multiply/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("date").include("item").include("total", multiply("$price", "$quantity")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestNe.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestNe.java index 268e8fd206c..65142ef1e79 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestNe.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestNe.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.ne; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestNe extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/ne/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().suppressId().include("item").include("qty").include("qtyNe250", ne("$qty", 250)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestNot.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestNot.java index 08063e9a74c..c4dc10241b6 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestNot.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestNot.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.BooleanExpressions.not; import static dev.morphia.aggregation.expressions.ComparisonExpressions.gt; @@ -13,7 +14,8 @@ public class TestNot extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/not/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item").include("result", not(gt("$qty", 250))))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestObjectToArray.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestObjectToArray.java index b80b1729d8b..8eea4e2ccc8 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestObjectToArray.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestObjectToArray.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; @@ -22,7 +23,8 @@ public class TestObjectToArray extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/objectToArray/example1 * */ - @Test(testName = "``$objectToArray`` Example") + @Test + @DisplayName("``$objectToArray`` Example") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item").include("dimensions", objectToArray("$dimensions")))); @@ -32,7 +34,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/objectToArray/example2 * */ - @Test(testName = "``$objectToArray`` to Sum Nested Fields") + @Test + @DisplayName("``$objectToArray`` to Sum Nested Fields") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(project().include("warehouses", objectToArray("$instock")), @@ -43,7 +46,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/objectToArray/example3 * */ - @Test(testName = "``$objectToArray`` + ``$arrayToObject`` Example") + @Test + @DisplayName("``$objectToArray`` + ``$arrayToObject`` Example") public void testExample3() { testPipeline((aggregation) -> aggregation.pipeline(addFields().field("instock", objectToArray("$instock")), addFields().field("instock", diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestOr.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestOr.java index ec6777dccaa..ed50c87b922 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestOr.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestOr.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.BooleanExpressions.or; import static dev.morphia.aggregation.expressions.ComparisonExpressions.gt; @@ -14,7 +15,8 @@ public class TestOr extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/or/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item").include("result", or(gt("$qty", 250), lt("$qty", 200))))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestPercentile.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestPercentile.java index 62efd829f17..89f5daa8202 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestPercentile.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestPercentile.java @@ -5,7 +5,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.percentile; import static dev.morphia.aggregation.stages.Group.group; @@ -19,7 +20,8 @@ public class TestPercentile extends TemplatedTestBase { /** * test data: dev/morphia/test/aggregation/expressions/percentile/example1 */ - @Test(testName = "Calculate a Single Value as an Accumulator") + @Test + @DisplayName("Calculate a Single Value as an Accumulator") public void testExample1() { testPipeline(new ActionTestOptions().serverVersion("7.0.0").orderMatters(false), aggregation -> aggregation .pipeline(group().field("test01_percentiles", percentile("$test01", of(0.95))))); @@ -29,7 +31,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/percentile/example2 * */ - @Test(testName = "Calculate Multiple Values as an Accumulator") + @Test + @DisplayName("Calculate Multiple Values as an Accumulator") public void testExample2() { testPipeline(new ActionTestOptions().serverVersion("7.0.0").orderMatters(false), aggregation -> aggregation @@ -43,7 +46,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/percentile/example3 * */ - @Test(testName = "Use |operatorName| in a ``$project`` Stage") + @Test + @DisplayName("Use |operatorName| in a ``$project`` Stage") public void testExample3() { testPipeline(new ActionTestOptions().serverVersion("7.0.0").orderMatters(false), aggregation -> aggregation.pipeline(project().suppressId().include("studentId").include( @@ -54,7 +58,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/expressions/percentile/example4 * */ - @Test(testName = "Use |operatorName| in a ``$setWindowField`` Stage") + @Test + @DisplayName("Use |operatorName| in a ``$setWindowField`` Stage") public void testExample4() { testPipeline(new ActionTestOptions().serverVersion("7.0.0").orderMatters(false), @@ -67,7 +72,8 @@ public void testExample4() { )); } - @Test(testName = "Use |operatorName| in a ``$setWindowField`` Stage") + @Test + @DisplayName("Use |operatorName| in a ``$setWindowField`` Stage") public void testExample5() { } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestPow.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestPow.java index e852a2a6ff3..49275e2b745 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestPow.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestPow.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.pow; import static dev.morphia.aggregation.expressions.WindowExpressions.stdDevPop; @@ -13,7 +14,8 @@ public class TestPow extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/pow/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("variance", pow(stdDevPop("$scores.score"), 2)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestPush.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestPush.java index 6b9f8afd694..06e11b05c2e 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestPush.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestPush.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.push; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfYear; @@ -21,7 +22,8 @@ public class TestPush extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/push/example1 * */ - @Test(testName = "Use in ``$group`` Stage") + @Test + @DisplayName("Use in ``$group`` Stage") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(sort().ascending("date").ascending("item"), @@ -33,7 +35,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/push/example2 * */ - @Test(testName = "Use in ``$setWindowFields`` Stage") + @Test + @DisplayName("Use in ``$setWindowFields`` Stage") public void testExample2() { checkMinServerVersion("5.0.0"); testPipeline((aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$state") diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRadiansToDegrees.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRadiansToDegrees.java index 93a83209b03..b23b3ba47a0 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRadiansToDegrees.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRadiansToDegrees.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.radiansToDegrees; import static dev.morphia.aggregation.stages.AddFields.addFields; @@ -13,7 +14,8 @@ public class TestRadiansToDegrees extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/radiansToDegrees/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation.pipeline(addFields().field("angle_a_deg", radiansToDegrees("$angle_a")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRand.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRand.java index 0a535159680..f30e946191c 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRand.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRand.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.lt; import static dev.morphia.aggregation.expressions.MathExpressions.floor; @@ -21,7 +22,8 @@ public class TestRand extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/rand/example1 * */ - @Test(testName = "Generate Random Data Points") + @Test + @DisplayName("Generate Random Data Points") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true).orderMatters(false).skipDataCheck(true), (aggregation) -> aggregation.pipeline(set().field("amount", multiply(rand(), 100)), @@ -32,7 +34,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/rand/example2 * */ - @Test(testName = "Select Random Items From a Collection") + @Test + @DisplayName("Select Random Items From a Collection") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false).skipDataCheck(true), (aggregation) -> aggregation.pipeline(match(eq("district", 3)), match(expr(lt(0.5, rand()))), diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRange.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRange.java index 02be3274dc4..eeacff520a9 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRange.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRange.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.range; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestRange extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/range/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline( project().suppressId().include("city").include("Rest stops", range(0, "$distance").step(25)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRank.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRank.java index 8e747d43c5e..e2cb5c328af 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRank.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRank.java @@ -3,8 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.WindowExpressions.rank; import static dev.morphia.aggregation.stages.SetWindowFields.Output.output; @@ -14,7 +15,7 @@ public class TestRank extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -23,7 +24,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/rank/example1 * */ - @Test(testName = "Rank Partitions by an Integer Field") + @Test + @DisplayName("Rank Partitions by an Integer Field") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$state") .sortBy(descending("quantity")).output(output("rankQuantityForState").operator(rank())))); @@ -33,7 +35,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/rank/example2 * */ - @Test(testName = "Rank Partitions by a Date Field") + @Test + @DisplayName("Rank Partitions by a Date Field") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$state") .sortBy(ascending("orderDate")).output(output("rankOrderDateForState").operator(rank())))); @@ -43,7 +46,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/rank/example3 * */ - @Test(testName = "Rank Partitions Containing Duplicate Values, Nulls, or Missing Data") + @Test + @DisplayName("Rank Partitions Containing Duplicate Values, Nulls, or Missing Data") public void testExample3() { testPipeline(new ActionTestOptions().serverVersion("8.0.0").orderMatters(false), (aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$state") diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReduce.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReduce.java index 2a2ffa9a628..e8dd4527906 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReduce.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReduce.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.push; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; @@ -24,7 +25,8 @@ public class TestReduce extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/reduce/example1 * */ - @Test(testName = "Multiplication") + @Test + @DisplayName("Multiplication") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( @@ -37,7 +39,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/reduce/example2 * */ - @Test(testName = "String Concatenation") + @Test + @DisplayName("String Concatenation") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(match(gt("hobbies", array())), project().include("name").include("bio", reduce("$hobbies", "My hobbies include:", @@ -48,7 +51,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/reduce/example3 * */ - @Test(testName = "Array Concatenation") + @Test + @DisplayName("Array Concatenation") public void testExample3() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation .pipeline(project().include("collapsed", reduce("$arr", array(), concatArrays("$$value", "$$this"))))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRegexFind.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRegexFind.java index c399ff525de..a277b765b12 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRegexFind.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRegexFind.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.first; import static dev.morphia.aggregation.expressions.ArrayExpressions.elementAt; @@ -23,7 +24,8 @@ public class TestRegexFind extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/regexFind/example1 * */ - @Test(testName = "``$regexFind`` and Its Options") + @Test + @DisplayName("``$regexFind`` and Its Options") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation .pipeline(addFields().field("returnObject", regexFind("$description").pattern("line")))); @@ -33,7 +35,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/regexFind/example2 * */ - @Test(testName = "Use ``$regexFind`` to Parse Email from String") + @Test + @DisplayName("Use ``$regexFind`` to Parse Email from String") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline( addFields().field("email", @@ -45,7 +48,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/regexFind/example3 * */ - @Test(testName = "Apply ``$regexFind`` to String Elements of an Array") + @Test + @DisplayName("Apply ``$regexFind`` to String Elements of an Array") public void testExample3() { testPipeline((aggregation) -> aggregation.pipeline(unwind("details"), addFields() @@ -63,7 +67,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/expressions/regexFind/example4 * */ - @Test(testName = "Use Captured Groupings to Parse User Name") + @Test + @DisplayName("Use Captured Groupings to Parse User Name") public void testExample4() { testPipeline( (aggregation) -> aggregation diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRegexFindAll.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRegexFindAll.java index 41e377f3b54..bc09495965d 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRegexFindAll.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRegexFindAll.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; import static dev.morphia.aggregation.expressions.ArrayExpressions.concatArrays; @@ -17,7 +18,8 @@ public class TestRegexFindAll extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/regexFindAll/example1 * */ - @Test(testName = "``$regexFindAll`` and Its Options") + @Test + @DisplayName("``$regexFindAll`` and Its Options") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation .pipeline(addFields().field("returnObject", regexFindAll("$description").pattern("line")))); @@ -28,7 +30,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/regexFindAll/example2 * */ - @Test(testName = "Use ``$regexFindAll`` to Parse Email from String") + @Test + @DisplayName("Use ``$regexFindAll`` to Parse Email from String") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline( addFields().field("email", @@ -40,7 +43,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/regexFindAll/example3 * */ - @Test(testName = "Use Captured Groupings to Parse User Name") + @Test + @DisplayName("Use Captured Groupings to Parse User Name") public void testExample3() { testPipeline( (aggregation) -> aggregation.pipeline( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRegexMatch.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRegexMatch.java index 63fac344d02..efe390cbf5b 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRegexMatch.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRegexMatch.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ConditionalExpressions.condition; import static dev.morphia.aggregation.expressions.StringExpressions.regexMatch; @@ -14,7 +15,8 @@ public class TestRegexMatch extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/regexMatch/example1 * */ - @Test(testName = "``$regexMatch`` and Its Options") + @Test + @DisplayName("``$regexMatch`` and Its Options") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation .pipeline(addFields().field("result", regexMatch("$description").pattern("line")))); @@ -25,7 +27,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/regexMatch/example2 * */ - @Test(testName = "Use ``$regexMatch`` to Check Email Address") + @Test + @DisplayName("Use ``$regexMatch`` to Check Email Address") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(addFields().field("category", condition( regexMatch("$comment").pattern("[a-z0-9_.+-]+@mongodb.com").options("i"), "Employee", "External")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReplaceAll.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReplaceAll.java index 057d25ae590..baa2a14153b 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReplaceAll.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReplaceAll.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.replaceAll; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestReplaceAll extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/replaceAll/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item", replaceAll("$item", "blue paint", "red paint")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReplaceOne.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReplaceOne.java index 0a165c39b1f..cc717e22c9c 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReplaceOne.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReplaceOne.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.replaceOne; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestReplaceOne extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/replaceOne/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item", replaceOne("$item", "blue paint", "red paint")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReverseArray.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReverseArray.java index 3aa295e5c1c..d7dd2051b80 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReverseArray.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestReverseArray.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.reverseArray; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestReverseArray extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/reverseArray/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("name").include("reverseFavorites", reverseArray("$favorites")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRound.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRound.java index 7f1de6589c1..ce84a00e756 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRound.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRound.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.round; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestRound extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/round/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("roundedValue", round("$value", 1)))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRtrim.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRtrim.java index cf3fdab8710..55af3244cb2 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRtrim.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestRtrim.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.rtrim; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestRtrim extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/rtrim/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item").include("description", rtrim("$description")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSampleRate.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSampleRate.java index 9df74c027c8..85aed8cd3c2 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSampleRate.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSampleRate.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.Miscellaneous.sampleRate; import static dev.morphia.aggregation.stages.Count.*; @@ -15,7 +16,8 @@ public class TestSampleRate extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/sampleRate/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(match(sampleRate(0.33)), Count.count("numMatches"))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSecond.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSecond.java index 36450fffaff..5018e41b994 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSecond.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSecond.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfMonth; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfWeek; @@ -21,7 +22,8 @@ public class TestSecond extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/second/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("year", year("$date")) .include("month", month("$date")).include("day", dayOfMonth("$date")).include("hour", hour("$date")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetDifference.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetDifference.java index 1a6e2f68830..9815fc4c0e1 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetDifference.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetDifference.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.SetExpressions.setDifference; import static dev.morphia.aggregation.stages.Projection.project; @@ -13,7 +14,8 @@ public class TestSetDifference extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/setDifference/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(project().suppressId().include("flowerFieldA") diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetEquals.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetEquals.java index f968aedd9e1..5fe1d569759 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetEquals.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetEquals.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.SetExpressions.setEquals; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestSetEquals extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/setEquals/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().suppressId().include("cakes").include("cupcakes") .include("sameFlavors", setEquals("$cakes", "$cupcakes")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetField.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetField.java index 956a07ae875..def700ce48d 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetField.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetField.java @@ -3,8 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.Expressions.literal; import static dev.morphia.aggregation.expressions.Miscellaneous.setField; @@ -16,7 +17,7 @@ public class TestSetField extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -25,7 +26,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/setField/example1 * */ - @Test(testName = "Add Fields that Contain Periods (``.``)") + @Test + @DisplayName("Add Fields that Contain Periods (``.``)") public void testExample1() { testPipeline(new ActionTestOptions(), (aggregation) -> aggregation .pipeline(replaceWith(setField("price.usd", ROOT, "$price")), unset("price"))); @@ -35,7 +37,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/setField/example2 * */ - @Test(testName = "Add Fields that Start with a Dollar Sign (``$``)") + @Test + @DisplayName("Add Fields that Start with a Dollar Sign (``$``)") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(replaceWith(setField(literal("$price"), ROOT, "$price")), unset("price"))); @@ -45,7 +48,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/setField/example3 * */ - @Test(testName = "Update Fields that Contain Periods (``.``)") + @Test + @DisplayName("Update Fields that Contain Periods (``.``)") public void testExample3() { testPipeline((aggregation) -> aggregation.pipeline(match(eq("_id", 1)), replaceWith(setField("price.usd", ROOT, 49.99)))); @@ -55,7 +59,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/expressions/setField/example4 * */ - @Test(testName = "Update Fields that Start with a Dollar Sign (``$``)") + @Test + @DisplayName("Update Fields that Start with a Dollar Sign (``$``)") public void testExample4() { testPipeline((aggregation) -> aggregation.pipeline(match(eq("_id", 1)), replaceWith(setField(literal("$price"), ROOT, 49.99)))); @@ -65,7 +70,8 @@ public void testExample4() { * test data: dev/morphia/test/aggregation/expressions/setField/example5 * */ - @Test(testName = "Remove Fields that Contain Periods (``.``)") + @Test + @DisplayName("Remove Fields that Contain Periods (``.``)") public void testExample5() { testPipeline((aggregation) -> aggregation.pipeline(replaceWith(setField("price.usd", ROOT, REMOVE)))); } @@ -74,7 +80,8 @@ public void testExample5() { * test data: dev/morphia/test/aggregation/expressions/setField/example6 * */ - @Test(testName = "Remove Fields that Start with a Dollar Sign (``$``)") + @Test + @DisplayName("Remove Fields that Start with a Dollar Sign (``$``)") public void testExample6() { testPipeline((aggregation) -> aggregation.pipeline(replaceWith(setField(literal("$price"), ROOT, REMOVE)))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetIntersection.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetIntersection.java index d76ec6afdc6..3df8d9dad61 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetIntersection.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetIntersection.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.SetExpressions.setIntersection; import static dev.morphia.aggregation.stages.Projection.project; @@ -13,7 +14,8 @@ public class TestSetIntersection extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/setIntersection/example1 * */ - @Test(testName = "Elements Array Example") + @Test + @DisplayName("Elements Array Example") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation @@ -25,7 +27,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/setIntersection/example2 * */ - @Test(testName = "Retrieve Documents for Roles Granted to the Current User") + @Test + @DisplayName("Retrieve Documents for Roles Granted to the Current User") public void testExample2() { // this requires auth and roles configuration which the tests won't have } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetIsSubset.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetIsSubset.java index 14307a9aa5c..2b360a73967 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetIsSubset.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetIsSubset.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.SetExpressions.setIsSubset; import static dev.morphia.aggregation.stages.Projection.project; @@ -13,7 +14,8 @@ public class TestSetIsSubset extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/setIsSubset/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(project().suppressId().include("flowerFieldA") diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetUnion.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetUnion.java index 352e939c69e..94dc102ca2b 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetUnion.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSetUnion.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.SetExpressions.setUnion; import static dev.morphia.aggregation.stages.Projection.project; @@ -13,7 +14,8 @@ public class TestSetUnion extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/setUnion/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(project().suppressId().include("flowerFieldA") diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestShift.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestShift.java index f889e28d963..cec28e003b9 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestShift.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestShift.java @@ -2,8 +2,9 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.WindowExpressions.shift; import static dev.morphia.aggregation.stages.SetWindowFields.Output.output; @@ -12,7 +13,7 @@ public class TestShift extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -21,7 +22,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/shift/example1 * */ - @Test(testName = "Shift Using a Positive Integer") + @Test + @DisplayName("Shift Using a Positive Integer") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(setWindowFields().partitionBy("$state").sortBy(descending("quantity")) @@ -32,7 +34,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/shift/example2 * */ - @Test(testName = "Shift Using a Negative Integer") + @Test + @DisplayName("Shift Using a Negative Integer") public void testExample2() { testPipeline((aggregation) -> aggregation .pipeline(setWindowFields().partitionBy("$state").sortBy(descending("quantity")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSin.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSin.java index 448e20f1f4e..6b3e8cb9406 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSin.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSin.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.multiply; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.degreesToRadians; @@ -14,7 +15,8 @@ public class TestSin extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/sin/example1 * */ - @Test(testName = "main :: Sine of Value in Degrees") + @Test + @DisplayName("main :: Sine of Value in Degrees") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("side_b", multiply(sin(degreesToRadians("$angle_a")), "$hypotenuse")))); @@ -24,7 +26,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/sin/example2 * */ - @Test(testName = "main :: Sine of Value in Radians") + @Test + @DisplayName("main :: Sine of Value in Radians") public void testExample2() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("side_b", multiply(sin("$angle_a"), "$hypotenuse")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSinh.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSinh.java index c0504f6c6f3..26f952a24e2 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSinh.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSinh.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.degreesToRadians; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.sinh; @@ -14,7 +15,8 @@ public class TestSinh extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/sinh/example1 * */ - @Test(testName = "main :: Hyperbolic Sine of Value in Degrees") + @Test + @DisplayName("main :: Hyperbolic Sine of Value in Degrees") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation .pipeline(addFields().field("sinh_output", sinh(degreesToRadians("$angle"))))); @@ -24,7 +26,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/sinh/example2 * */ - @Test(testName = "main :: Hyperbolic Sine of Value in Radians") + @Test + @DisplayName("main :: Hyperbolic Sine of Value in Radians") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(addFields().field("sinh_output", sinh("$angle")))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSize.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSize.java index 046ac2bce3c..9c293df21af 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSize.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSize.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.isArray; import static dev.morphia.aggregation.expressions.ArrayExpressions.size; @@ -14,7 +15,8 @@ public class TestSize extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/size/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("item").include("numberOfColors", condition(isArray("$colors"), size("$colors"), "NA")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSlice.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSlice.java index d86546507c2..767b3312e39 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSlice.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSlice.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.slice; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestSlice extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/slice/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("name").include("threeFavorites", slice("$favorites", 3)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSortArray.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSortArray.java index 80af333966b..335ea10565e 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSortArray.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSortArray.java @@ -3,8 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; import static dev.morphia.aggregation.expressions.ArrayExpressions.sortArray; @@ -16,7 +17,7 @@ public class TestSortArray extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.2.0"); } @@ -25,7 +26,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/sortArray/example1 * */ - @Test(testName = "Sort on a Field ") + @Test + @DisplayName("Sort on a Field ") public void testExample1() { testPipeline(new ActionTestOptions(), (aggregation) -> aggregation .pipeline(project().suppressId().include("result", sortArray("$team", ascending("name"))))); @@ -36,7 +38,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/sortArray/example2 * */ - @Test(testName = "Sort on a Subfield") + @Test + @DisplayName("Sort on a Subfield") public void testExample2() { testPipeline(new ActionTestOptions(), (aggregation) -> { return aggregation @@ -49,7 +52,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/sortArray/example3 * */ - @Test(testName = "Sort on Multiple Fields") + @Test + @DisplayName("Sort on Multiple Fields") public void testExample3() { testPipeline(new ActionTestOptions(), (aggregation) -> aggregation.pipeline( project().suppressId().include("result", sortArray("$team", descending("age"), ascending("name"))))); @@ -59,7 +63,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/expressions/sortArray/example4 * */ - @Test(testName = "Sort an Array of Integers") + @Test + @DisplayName("Sort an Array of Integers") public void testExample4() { testPipeline(new ActionTestOptions(), (aggregation) -> { return aggregation.pipeline( @@ -72,7 +77,8 @@ public void testExample4() { * test data: dev/morphia/test/aggregation/expressions/sortArray/example5 * */ - @Test(testName = "Sort on Mixed Type Fields") + @Test + @DisplayName("Sort on Mixed Type Fields") public void testExample5() { testPipeline( new ActionTestOptions().orderMatters(false), ( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSplit.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSplit.java index af0f90325f2..d5074761b37 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSplit.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSplit.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; import static dev.morphia.aggregation.expressions.StringExpressions.split; @@ -20,7 +21,8 @@ public class TestSplit extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/split/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().skipActionCheck(true), (aggregation) -> aggregation.pipeline( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSqrt.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSqrt.java index 0f02e509f93..8e4636bb971 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSqrt.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSqrt.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.add; import static dev.morphia.aggregation.expressions.MathExpressions.pow; @@ -15,7 +16,8 @@ public class TestSqrt extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/sqrt/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("distance", sqrt(add(pow(subtract("$p2.y", "$p1.y"), 2), pow(subtract("$p2.x", "$p1.x"), 2)))))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStdDevPop.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStdDevPop.java index 9b829709afc..a18e4f629cb 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStdDevPop.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStdDevPop.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.WindowExpressions.stdDevPop; import static dev.morphia.aggregation.stages.Group.group; @@ -18,7 +19,8 @@ public class TestStdDevPop extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/stdDevPop/example1 * */ - @Test(testName = "Use in ``$group`` Stage") + @Test + @DisplayName("Use in ``$group`` Stage") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(group(id("$quiz")).field("stdDev", stdDevPop("$score")))); @@ -28,7 +30,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/stdDevPop/example2 * */ - @Test(testName = "Use in ``$project`` Stage") + @Test + @DisplayName("Use in ``$project`` Stage") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(project().include("stdDev", stdDevPop("$scores.score")))); } @@ -37,7 +40,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/stdDevPop/example3 * */ - @Test(testName = "Use in ``$setWindowFields`` Stage") + @Test + @DisplayName("Use in ``$setWindowFields`` Stage") public void testExample3() { checkMinServerVersion("5.0.0"); testPipeline(new ActionTestOptions().orderMatters(false), diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStdDevSamp.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStdDevSamp.java index cfef87ea0db..b40a59b7c71 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStdDevSamp.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStdDevSamp.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.WindowExpressions.stdDevSamp; import static dev.morphia.aggregation.stages.Group.group; @@ -17,7 +18,8 @@ public class TestStdDevSamp extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/stdDevSamp/example1 * */ - @Test(testName = "Use in ``$group`` Stage") + @Test + @DisplayName("Use in ``$group`` Stage") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(sample(100), group(id(null)).field("ageStdDev", stdDevSamp("$age")))); @@ -27,7 +29,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/stdDevSamp/example2 * */ - @Test(testName = "Use in ``$setWindowFields`` Stage") + @Test + @DisplayName("Use in ``$setWindowFields`` Stage") public void testExample2() { checkMinServerVersion("5.0.0"); testPipeline((aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$state") diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStrLenBytes.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStrLenBytes.java index 2d0867c54c2..0a8859d0416 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStrLenBytes.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStrLenBytes.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.strLenBytes; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestStrLenBytes extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/strLenBytes/example1 * */ - @Test(testName = "Single-Byte and Multibyte Character Set") + @Test + @DisplayName("Single-Byte and Multibyte Character Set") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("name").include("length", strLenBytes("$name")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStrLenCP.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStrLenCP.java index 6f6d56995ed..067103f3f23 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStrLenCP.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStrLenCP.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.strLenCP; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestStrLenCP extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/strLenCP/example1 * */ - @Test(testName = "Single-Byte and Multibyte Character Set") + @Test + @DisplayName("Single-Byte and Multibyte Character Set") public void testExample1() { testPipeline( (aggregation) -> aggregation.pipeline(project().include("name").include("length", strLenCP("$name")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStrcasecmp.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStrcasecmp.java index f5f6e33132e..1e76c62261f 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStrcasecmp.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestStrcasecmp.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.strcasecmp; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestStrcasecmp extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/strcasecmp/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item").include("comparisonResult", strcasecmp("$quarter", "13q4")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSubstrBytes.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSubstrBytes.java index 1c2efb97787..907de200bbe 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSubstrBytes.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSubstrBytes.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.subtract; import static dev.morphia.aggregation.expressions.StringExpressions.strLenBytes; @@ -14,7 +15,8 @@ public class TestSubstrBytes extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/substrBytes/example1 * */ - @Test(testName = "Single-Byte Character Set") + @Test + @DisplayName("Single-Byte Character Set") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item").include("yearSubstring", substrBytes("$quarter", 0, 2)) @@ -25,7 +27,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/substrBytes/example2 * */ - @Test(testName = "Single-Byte and Multibyte Character Set") + @Test + @DisplayName("Single-Byte and Multibyte Character Set") public void testExample2() { testPipeline((aggregation) -> aggregation .pipeline(project().include("name").include("menuCode", substrBytes("$name", 0, 3)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSubstrCP.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSubstrCP.java index b94128e5ef8..b0cb528ea9c 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSubstrCP.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSubstrCP.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.subtract; import static dev.morphia.aggregation.expressions.StringExpressions.strLenCP; @@ -14,7 +15,8 @@ public class TestSubstrCP extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/substrCP/example1 * */ - @Test(testName = "Single-Byte Character Set") + @Test + @DisplayName("Single-Byte Character Set") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item").include("yearSubstring", substrCP("$quarter", 0, 2)) @@ -25,7 +27,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/substrCP/example2 * */ - @Test(testName = "Single-Byte and Multibyte Character Set") + @Test + @DisplayName("Single-Byte and Multibyte Character Set") public void testExample2() { testPipeline((aggregation) -> aggregation .pipeline(project().include("name").include("menuCode", substrCP("$name", 0, 3)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSubtract.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSubtract.java index 40b1ceaf6ef..e13bdb352a4 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSubtract.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSubtract.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.add; import static dev.morphia.aggregation.expressions.MathExpressions.subtract; @@ -14,7 +15,8 @@ public class TestSubtract extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/subtract/example1 * */ - @Test(testName = "Subtract Numbers") + @Test + @DisplayName("Subtract Numbers") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item").include("total", subtract(add("$price", "$fee"), "$discount")))); @@ -24,7 +26,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/subtract/example2 * */ - @Test(testName = "Subtract Two Dates") + @Test + @DisplayName("Subtract Two Dates") public void testExample2() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation .pipeline(project().include("item").include("dateDifference", subtract("$$NOW", "$date")))); @@ -34,7 +37,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/subtract/example3 * */ - @Test(testName = "Subtract Milliseconds from a Date") + @Test + @DisplayName("Subtract Milliseconds from a Date") public void testExample3() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item").include("dateDifference", subtract("$date", 5 * 60 * 1000)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSum.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSum.java index 913d0ee22f5..a0c6d9f8460 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSum.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSum.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfYear; @@ -22,7 +23,8 @@ public class TestSum extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/sum/example1 * */ - @Test(testName = "Use in ``$group`` Stage") + @Test + @DisplayName("Use in ``$group`` Stage") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation @@ -34,7 +36,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/sum/example2 * */ - @Test(testName = "Use in ``$project`` Stage") + @Test + @DisplayName("Use in ``$project`` Stage") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(project().include("quizTotal", sum("$quizzes")) .include("labTotal", sum("$labs")).include("examTotal", sum("$final", "$midterm")))); @@ -44,7 +47,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/sum/example3 * */ - @Test(testName = "Use in ``$setWindowFields`` Stage") + @Test + @DisplayName("Use in ``$setWindowFields`` Stage") public void testExample3() { checkMinServerVersion("5.0.0"); testPipeline((aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$state") diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSwitch.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSwitch.java index bacd63567f4..d1245d2c2e6 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSwitch.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestSwitch.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.avg; import static dev.morphia.aggregation.expressions.BooleanExpressions.and; @@ -16,7 +17,8 @@ public class TestSwitch extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/switch/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("name").include("summary", switchExpression().branch(gte(avg("$scores"), 90), "Doing great!") diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTan.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTan.java index 7ddc66ebef9..3fb0dfeb7aa 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTan.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTan.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.multiply; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.degreesToRadians; @@ -14,7 +15,8 @@ public class TestTan extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/tan/example1 * */ - @Test(testName = "main :: Tangent of Value in Degrees") + @Test + @DisplayName("main :: Tangent of Value in Degrees") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("side_b", multiply(tan(degreesToRadians("$angle_a")), "$side_a")))); @@ -24,7 +26,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/tan/example2 * */ - @Test(testName = "main :: Tangent of Value in Radians") + @Test + @DisplayName("main :: Tangent of Value in Radians") public void testExample2() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("side_b", multiply(tan("$angle_a"), "$side_a")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTanh.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTanh.java index 920294297fc..2973a713782 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTanh.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTanh.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.degreesToRadians; import static dev.morphia.aggregation.expressions.TrigonometryExpressions.tanh; @@ -14,7 +15,8 @@ public class TestTanh extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/tanh/example1 * */ - @Test(testName = "main :: Hyperbolic Tangent in Degrees") + @Test + @DisplayName("main :: Hyperbolic Tangent in Degrees") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation .pipeline(addFields().field("tanh_output", tanh(degreesToRadians("$angle"))))); @@ -24,7 +26,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/tanh/example2 * */ - @Test(testName = "main :: Hyperbolic Tangent in Radians") + @Test + @DisplayName("main :: Hyperbolic Tangent in Radians") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(addFields().field("tanh_output", tanh("$angle")))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToBool.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToBool.java index 8477e6c5239..f5f76415b3b 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToBool.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToBool.java @@ -3,7 +3,8 @@ import dev.morphia.query.filters.Filters; import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.eq; import static dev.morphia.aggregation.expressions.ConditionalExpressions.switchExpression; @@ -16,7 +17,8 @@ public class TestToBool extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/toBool/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline( (aggregation) -> aggregation.pipeline( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToDate.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToDate.java index 9fa6ae5cdf5..0d7c3ea0a6c 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToDate.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToDate.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.toDate; import static dev.morphia.aggregation.stages.AddFields.addFields; @@ -13,7 +14,8 @@ public class TestToDate extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/toDate/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(addFields().field("convertedDate", toDate("$order_date")), sort().ascending("convertedDate"))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToDecimal.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToDecimal.java index efc2ea35175..7e61f071527 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToDecimal.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToDecimal.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.multiply; import static dev.morphia.aggregation.expressions.TypeExpressions.toDecimal; @@ -15,7 +16,8 @@ public class TestToDecimal extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/toDecimal/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline( addFields().field("convertedPrice", toDecimal("$price")).field("convertedQty", toInt("$qty")), diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToDouble.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToDouble.java index 3758e3bb450..8b614fd77c2 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToDouble.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToDouble.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.substrBytes; import static dev.morphia.aggregation.expressions.TypeExpressions.toDouble; @@ -13,7 +14,8 @@ public class TestToDouble extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/toDouble/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(addFields().field("degrees", toDouble(substrBytes("$temp", 0, 4))))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToInt.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToInt.java index 0e631fb99e5..3c9d57e96fc 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToInt.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToInt.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.multiply; import static dev.morphia.aggregation.expressions.TypeExpressions.toDecimal; @@ -15,7 +16,8 @@ public class TestToInt extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/toInt/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline( addFields().field("convertedPrice", toDecimal("$price")).field("convertedQty", toInt("$qty")), diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToLong.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToLong.java index 1f679f67191..2b882a5ddda 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToLong.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToLong.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TypeExpressions.toLong; import static dev.morphia.aggregation.stages.AddFields.addFields; @@ -13,7 +14,8 @@ public class TestToLong extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/toLong/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(addFields().field("convertedQty", toLong("$qty")), sort().descending("convertedQty"))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToLower.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToLower.java index 9b54cd22d01..5727d6dec4d 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToLower.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToLower.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.toLower; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestToLower extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/toLower/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item", toLower("$item")).include("description", toLower("$description")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToObjectId.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToObjectId.java index 832e7e208e8..ffdfd4a5d42 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToObjectId.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToObjectId.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TypeExpressions.toObjectId; import static dev.morphia.aggregation.stages.AddFields.addFields; @@ -13,7 +14,8 @@ public class TestToObjectId extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/toObjectId/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(addFields().field("convertedId", toObjectId("$_id")), sort().descending("convertedId"))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToString.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToString.java index 3b24e9abb34..6649d0602e1 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToString.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToString.java @@ -3,7 +3,8 @@ import dev.morphia.aggregation.expressions.StringExpressions; import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.AddFields.addFields; import static dev.morphia.aggregation.stages.Sort.sort; @@ -13,7 +14,8 @@ public class TestToString extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/toString/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline( addFields().field("convertedZipCode", StringExpressions.toString("$zipcode")), diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToUUID.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToUUID.java index 8992b4f6280..52409ba188a 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToUUID.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToUUID.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TypeExpressions.toUuid; import static dev.morphia.aggregation.stages.Projection.project; @@ -13,7 +14,8 @@ public class TestToUUID extends TemplatedTestBase { /** * test data: dev/morphia/test/aggregation/expressions/toUUID/example1 */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { checkMinServerVersion("8.0.0"); testPipeline(new ActionTestOptions().removeIds(true), aggregation -> aggregation diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToUpper.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToUpper.java index 88413be5b1f..0321f31b190 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToUpper.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestToUpper.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.toUpper; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestToUpper extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/toUpper/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation .pipeline(project().include("item", toUpper("$item")).include("description", toUpper("$description")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTop.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTop.java index 9e82d7ac362..cf592875c4a 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTop.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTop.java @@ -3,8 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.top; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; @@ -16,7 +17,7 @@ public class TestTop extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.2.0"); } @@ -25,7 +26,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/top/example1 * */ - @Test(testName = "Find the Top ``Score``") + @Test + @DisplayName("Find the Top ``Score``") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( match(eq("gameId", "G1")), @@ -36,7 +38,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/top/example2 * */ - @Test(testName = "Find the Top ``Score`` Across Multiple Games") + @Test + @DisplayName("Find the Top ``Score`` Across Multiple Games") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( group(id("$gameId")).field("playerId", top(array("$playerId", "$score"), descending("score"))))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTopN.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTopN.java index acf26998abe..583034ea8a5 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTopN.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTopN.java @@ -4,8 +4,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.topN; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; @@ -19,7 +20,7 @@ public class TestTopN extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.2.0"); } @@ -28,7 +29,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/topN/example1 * */ - @Test(testName = "Find the Three Highest ``Scores``") + @Test + @DisplayName("Find the Three Highest ``Scores``") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( match(eq("gameId", "G1")), @@ -39,7 +41,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/topN/example2 * */ - @Test(testName = "Finding the Three Highest Score Documents Across Multiple Games") + @Test + @DisplayName("Finding the Three Highest Score Documents Across Multiple Games") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( group(id("$gameId")).field("playerId", topN(3, array("$playerId", "$score"), descending("score"))))); @@ -49,7 +52,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/topN/example3 * */ - @Test(testName = "Computing ``n`` Based on the Group Key for ``$group``") + @Test + @DisplayName("Computing ``n`` Based on the Group Key for ``$group``") public void testExample3() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(group(id(document("gameId", "$gameId"))).field("gamescores", topN( diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTrim.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTrim.java index 5b6dc604f81..828f82b36f8 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTrim.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTrim.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.StringExpressions.trim; import static dev.morphia.aggregation.stages.Projection.project; @@ -13,7 +14,8 @@ public class TestTrim extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/trim/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation .pipeline(project().include("item").include("description", trim("$description")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTrunc.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTrunc.java index c9891b2cdf1..f760e44e822 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTrunc.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTrunc.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.MathExpressions.trunc; import static dev.morphia.aggregation.stages.Projection.project; @@ -12,7 +13,8 @@ public class TestTrunc extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/trunc/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("truncatedValue", trunc("$value", 1)))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTsIncrement.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTsIncrement.java index 97e57343a4e..12a36b4ad70 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTsIncrement.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTsIncrement.java @@ -3,15 +3,16 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.tsIncrement; import static dev.morphia.aggregation.stages.Projection.project; public class TestTsIncrement extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.1.0"); } @@ -19,7 +20,8 @@ public void versionCheck() { /** * test data: dev/morphia/test/aggregation/expressions/tsIncrement/example1 */ - @Test(testName = "Obtain the Incrementing Ordinal from a Timestamp Field") + @Test + @DisplayName("Obtain the Incrementing Ordinal from a Timestamp Field") public void testExample1() { testPipeline(new ActionTestOptions(), (aggregation) -> aggregation.pipeline(project().suppressId() .include("saleTimestamp").include("saleIncrement", tsIncrement("$saleTimestamp")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTsSecond.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTsSecond.java index f7bf866c7b0..a75f746de38 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTsSecond.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestTsSecond.java @@ -3,15 +3,16 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.tsSecond; import static dev.morphia.aggregation.stages.Projection.project; public class TestTsSecond extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.1.0"); } @@ -20,7 +21,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/tsSecond/example1 * */ - @Test(testName = "Obtain the Number of Seconds from a Timestamp Field") + @Test + @DisplayName("Obtain the Number of Seconds from a Timestamp Field") public void testExample1() { testPipeline(new ActionTestOptions(), (aggregation) -> aggregation.pipeline( project().suppressId().include("saleTimestamp").include("saleSeconds", tsSecond("$saleTimestamp")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestType.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestType.java index 464e98777e2..4ff259178f7 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestType.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestType.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TypeExpressions.type; import static dev.morphia.aggregation.stages.Projection.project; @@ -13,7 +14,8 @@ public class TestType extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/type/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(project().include("a", type("$a")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestUnsetField.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestUnsetField.java index 10a8d3f5d4f..eb1a39cbeef 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestUnsetField.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestUnsetField.java @@ -2,8 +2,9 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.Expressions.literal; import static dev.morphia.aggregation.expressions.Miscellaneous.getField; @@ -14,7 +15,7 @@ public class TestUnsetField extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -23,9 +24,9 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/expressions/unsetField/example1 * */ - @Test(testName = "Remove Fields that Contain Periods (``.``)") + @Test + @DisplayName("Remove Fields that Contain Periods (``.``)") public void testExample1() { - checkMinDriverVersion("4.3.0"); testPipeline((aggregation) -> aggregation.pipeline(replaceWith(unsetField("price.usd", ROOT)))); } @@ -33,7 +34,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/unsetField/example2 * */ - @Test(testName = "Remove Fields that Start with a Dollar Sign (``$``)") + @Test + @DisplayName("Remove Fields that Start with a Dollar Sign (``$``)") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(replaceWith(unsetField(literal("$price"), ROOT)))); } @@ -42,7 +44,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/expressions/unsetField/example3 * */ - @Test(testName = "Remove A Subfield") + @Test + @DisplayName("Remove A Subfield") public void testExample3() { testPipeline((aggregation) -> aggregation .pipeline(replaceWith(setField("price", ROOT, unsetField("euro", getField("price")))))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestWeek.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestWeek.java index 248b5db6274..9c4e5a09ac8 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestWeek.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestWeek.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfMonth; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfWeek; @@ -21,7 +22,8 @@ public class TestWeek extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/week/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("year", year("$date")) .include("month", month("$date")).include("day", dayOfMonth("$date")).include("hour", hour("$date")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestYear.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestYear.java index 681ab72f014..489a553ef82 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestYear.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestYear.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfMonth; import static dev.morphia.aggregation.expressions.DateExpressions.dayOfWeek; @@ -21,7 +22,8 @@ public class TestYear extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/year/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("year", year("$date")) .include("month", month("$date")).include("day", dayOfMonth("$date")).include("hour", hour("$date")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestZip.java b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestZip.java index d33caa38293..31d1803b16e 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/expressions/TestZip.java +++ b/core/src/test/java/dev/morphia/test/aggregation/expressions/TestZip.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.elementAt; import static dev.morphia.aggregation.expressions.ArrayExpressions.range; @@ -18,7 +19,8 @@ public class TestZip extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/expressions/zip/example1 * */ - @Test(testName = "Matrix Transposition") + @Test + @DisplayName("Matrix Transposition") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().suppressId().include("transposed", zip(elementAt("$matrix", 0), elementAt("$matrix", 1), elementAt("$matrix", 2))))); @@ -28,7 +30,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/expressions/zip/example2 * */ - @Test(testName = "Filtering and Preserving Indexes") + @Test + @DisplayName("Filtering and Preserving Indexes") public void testExample2() { testPipeline((aggregation) -> { return aggregation.pipeline(project().suppressId().include("pages", diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestAddFields.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestAddFields.java index a3aa8757140..f20036fc5d1 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestAddFields.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestAddFields.java @@ -7,7 +7,8 @@ import dev.morphia.test.util.ActionTestOptions; import org.bson.Document; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; @@ -18,14 +19,14 @@ import static dev.morphia.aggregation.stages.Match.match; import static dev.morphia.query.filters.Filters.eq; import static org.bson.Document.parse; -import static org.testng.Assert.assertEquals; public class TestAddFields extends TemplatedTestBase { /** * test data: dev/morphia/test/aggregation/stages/addFields/example1 * */ - @Test(testName = "Using Two ``$addFields`` Stages") + @Test + @DisplayName("Using Two ``$addFields`` Stages") public void testExample1() { List list = List.of( parse("{ _id: 1, student: 'Maya', homework: [ 10, 5, 10 ],quiz: [ 10, 8 ],extraCredit: 0 }"), @@ -44,14 +45,15 @@ public void testExample1() { parse("{ '_id' : 2, 'student' : 'Ryan', 'homework' : [ 5, 6, 5 ],'quiz' : [ 8, 8 ],'extraCredit' : 8, 'totalHomework' : 16, " + "'totalQuiz' : 16, 'totalScore' : 40 }")); - assertEquals(result, list); + assertDocumentListEquals(list, result); } /** * test data: dev/morphia/test/aggregation/stages/addFields/example2 * */ - @Test(testName = "Adding Fields to an Embedded Document") + @Test + @DisplayName("Adding Fields to an Embedded Document") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(addFields().field("specs.fuel_type", "unleaded"))); } @@ -60,7 +62,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/addFields/example3 * */ - @Test(testName = "Overwriting an existing field") + @Test + @DisplayName("Overwriting an existing field") public void testExample3() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(addFields().field("cats", 20))); @@ -70,7 +73,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/stages/addFields/example4 * */ - @Test(testName = "Add Element to an Array") + @Test + @DisplayName("Add Element to an Array") public void testExample4() { testPipeline((aggregation) -> aggregation.pipeline(match(eq("_id", 1)), addFields().field("homework", concatArrays("$homework", array(7))))); @@ -81,7 +85,8 @@ public void testExample4() { * * db.labReadings.aggregate( [ { $addFields: { date: "$$REMOVE" } } ] ) */ - @Test(testName = "Remove Fields") + @Test + @DisplayName("Remove Fields") public void testExample5() { testPipeline(new ActionTestOptions().removeIds(true), aggregation -> aggregation.pipeline(addFields().field("date", REMOVE))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestBucket.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestBucket.java index d218247912c..91b6659df81 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestBucket.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestBucket.java @@ -10,8 +10,9 @@ import dev.morphia.test.aggregation.model.Book; import org.bson.Document; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.avg; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.push; @@ -24,14 +25,14 @@ import static java.lang.Integer.valueOf; import static java.util.Arrays.asList; import static org.bson.Document.parse; -import static org.testng.Assert.assertEquals; public class TestBucket extends TemplatedTestBase { /** * test data: dev/morphia/test/aggregation/stages/bucket/example1 * */ - @Test(testName = "Bucket by Year and Filter by Bucket Results") + @Test + @DisplayName("Bucket by Year and Filter by Bucket Results") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(bucket() .groupBy("$year_born").boundaries(1840, 1850, 1860, 1870, 1880).defaultValue("Other") @@ -44,7 +45,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/bucket/example2 * */ - @Test(testName = "Use $bucket with $facet to Bucket by Multiple Fields") + @Test + @DisplayName("Use $bucket with $facet to Bucket by Multiple Fields") public void testExample2() { testPipeline( (aggregation) -> aggregation.pipeline(facet() @@ -83,15 +85,17 @@ public void testBucket() { "{'_id': 0, 'count': 4, 'titles': ['The Pillars of Society', 'Dancer', 'The Great Wave off Kanagawa', 'Blue Flower']}"), parse("{'_id': 200, 'count': 2, 'titles': ['Melancholy III', 'Composition VII']}"), parse("{'_id': 'Other', 'count': 2, 'titles': ['The Persistence of Memory', 'The Scream']}")); - assertEquals(results, documents); + assertDocumentListEquals(documents, results); } - @Test(expectedExceptions = RuntimeException.class) + @Test public void testBucketWithBoundariesWithSizeLessThanTwo() { - homer(); + Assertions.assertThrows(RuntimeException.class, () -> { + homer(); - getDs().aggregate(Book.class, BucketResult.class) - .pipeline(bucket().groupBy("$copies").boundaries(10).outputField("count", sum(1))).iterator(); + getDs().aggregate(Book.class, BucketResult.class) + .pipeline(bucket().groupBy("$copies").boundaries(10).outputField("count", sum(1))).iterator(); + }); } private void homer() { @@ -110,22 +114,24 @@ public void testBucketWithOptions() { .iterator(); BucketResult result2 = aggregate.next(); - Assert.assertEquals(result2.getId(), valueOf(-1)); - Assert.assertEquals(result2.getCount(), 2); + Assertions.assertEquals(valueOf(-1), result2.getId()); + Assertions.assertEquals(2, result2.getCount()); BucketResult result1 = aggregate.next(); - Assert.assertEquals(result1.getId(), valueOf(1)); - Assert.assertEquals(result1.getCount(), 3); + Assertions.assertEquals(valueOf(1), result1.getId()); + Assertions.assertEquals(3, result1.getCount()); } - @Test(expectedExceptions = RuntimeException.class) + @Test public void testBucketWithUnsortedBoundaries() { - homer(); + Assertions.assertThrows(RuntimeException.class, () -> { + homer(); - Iterator aggregate = getDs().aggregate(Book.class, BucketResult.class).pipeline( - bucket().groupBy("$copies").boundaries(5, 1, 10).defaultValue("test").outputField("count", sum(1))) - .iterator(); + Iterator aggregate = getDs().aggregate(Book.class, BucketResult.class).pipeline( + bucket().groupBy("$copies").boundaries(5, 1, 10).defaultValue("test").outputField("count", sum(1))) + .iterator(); + }); } @Test @@ -135,12 +141,12 @@ public void testBucketWithoutOptions() { Iterator aggregate = getDs().aggregate(Book.class, BucketResult.class) .pipeline(bucket().groupBy("$copies").boundaries(1, 5, 12)).iterator(); BucketResult result1 = aggregate.next(); - Assert.assertEquals(result1.getId(), 1); - Assert.assertEquals(result1.getCount(), 3); + Assertions.assertEquals(1, result1.getId()); + Assertions.assertEquals(3, result1.getCount()); BucketResult result2 = aggregate.next(); - Assert.assertEquals(result2.getId(), valueOf(5)); - Assert.assertEquals(result2.getCount(), 2); + Assertions.assertEquals(valueOf(5), result2.getId()); + Assertions.assertEquals(2, result2.getCount()); } @Entity diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestBucketAuto.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestBucketAuto.java index cb75514eabe..c479c18ccc2 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestBucketAuto.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestBucketAuto.java @@ -10,8 +10,9 @@ import dev.morphia.test.aggregation.model.BucketAutoResult; import dev.morphia.test.util.ActionTestOptions; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.addToSet; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.push; @@ -27,7 +28,8 @@ public class TestBucketAuto extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/bucketAuto/example1 * */ - @Test(testName = "Single Facet Aggregation") + @Test + @DisplayName("Single Facet Aggregation") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(autoBucket().groupBy("$price").buckets(4))); } @@ -36,7 +38,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/bucketAuto/example2 * */ - @Test(testName = "Multi-Faceted Aggregation") + @Test + @DisplayName("Multi-Faceted Aggregation") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(facet().field("price", autoBucket().groupBy("$price").buckets(4)) @@ -47,7 +50,8 @@ public void testExample2() { .buckets(4).outputField("count", sum(1)).outputField("titles", push("$title"))))); } - @Test(testName = "Multi-Faceted Aggregation") + @Test + @DisplayName("Multi-Faceted Aggregation") public void testExample3() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(facet().field("price", autoBucket().groupBy("$price").buckets(4)) @@ -68,23 +72,23 @@ public void testWithGranularity() { .outputField("authors", addToSet("$author")).outputField("count", sum(1))) .iterator(); BooksBucketResult result1 = aggregate.next(); - Assert.assertEquals(result1.getId().getMin(), 4); - Assert.assertEquals(result1.getId().getMax(), 8); - Assert.assertEquals(result1.getCount(), 2); - Assert.assertEquals(result1.getAuthors(), singleton("Dante")); + Assertions.assertEquals(4, result1.getId().getMin()); + Assertions.assertEquals(8, result1.getId().getMax()); + Assertions.assertEquals(2, result1.getCount()); + Assertions.assertEquals(singleton("Dante"), result1.getAuthors()); result1 = aggregate.next(); - Assert.assertEquals(result1.getId().getMin(), 8); - Assert.assertEquals(result1.getId().getMax(), 32); - Assert.assertEquals(result1.getCount(), 1); - Assert.assertEquals(result1.getAuthors(), singleton("Homer")); + Assertions.assertEquals(8, result1.getId().getMin()); + Assertions.assertEquals(32, result1.getId().getMax()); + Assertions.assertEquals(1, result1.getCount()); + Assertions.assertEquals(singleton("Homer"), result1.getAuthors()); result1 = aggregate.next(); - Assert.assertEquals(result1.getId().getMin(), 32); - Assert.assertEquals(result1.getId().getMax(), 64); - Assert.assertEquals(result1.getCount(), 1); - Assert.assertEquals(result1.getAuthors(), singleton("Dante")); - Assert.assertFalse(aggregate.hasNext()); + Assertions.assertEquals(32, result1.getId().getMin()); + Assertions.assertEquals(64, result1.getId().getMax()); + Assertions.assertEquals(1, result1.getCount()); + Assertions.assertEquals(singleton("Dante"), result1.getAuthors()); + Assertions.assertFalse(aggregate.hasNext()); } @@ -96,14 +100,14 @@ public void testWithoutGranularity() { Iterator aggregate = getDs().aggregate(Book.class, BucketAutoResult.class) .pipeline(autoBucket().groupBy("$copies").buckets(2)).iterator(); BucketAutoResult result1 = aggregate.next(); - Assert.assertEquals(result1.getId().getMin(), 5); - Assert.assertEquals(result1.getId().getMax(), 21); - Assert.assertEquals(result1.getCount(), 2); + Assertions.assertEquals(5, result1.getId().getMin()); + Assertions.assertEquals(21, result1.getId().getMax()); + Assertions.assertEquals(2, result1.getCount()); result1 = aggregate.next(); - Assert.assertEquals(result1.getId().getMin(), 21); - Assert.assertEquals(result1.getId().getMax(), 40); - Assert.assertEquals(result1.getCount(), 2); - Assert.assertFalse(aggregate.hasNext()); + Assertions.assertEquals(21, result1.getId().getMin()); + Assertions.assertEquals(40, result1.getId().getMax()); + Assertions.assertEquals(2, result1.getCount()); + Assertions.assertFalse(aggregate.hasNext()); } } diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestChangeStream.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestChangeStream.java index 4b76b203d29..afa041df4b1 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestChangeStream.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestChangeStream.java @@ -16,20 +16,18 @@ import org.bson.Document; import org.bson.codecs.Codec; import org.bson.codecs.EncoderContext; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.AggregationOptions.aggregationOptions; import static dev.morphia.aggregation.stages.ChangeStream.changeStream; import static java.lang.String.format; import static java.time.LocalDateTime.now; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; public class TestChangeStream extends TemplatedTestBase { @Test @SuppressWarnings("unchecked") public void testChangeStream() { - checkMinDriverVersion("4.7.0"); checkForReplicaSet(); Iterator input = loadJson(format("%s/%s/data.json", prefix(), "changeStream"), "data", true).iterator(); @@ -49,7 +47,6 @@ public void testChangeStream() { @Test public void testChangeStreamOptions() { - checkMinDriverVersion("4.7.0"); LocalDateTime startAtOperationTime = now(); ChangeStream changeStream = changeStream().allChangesForCluster(true) .fullDocument(FullDocument.REQUIRED) @@ -63,11 +60,12 @@ public void testChangeStreamOptions() { DocumentWriter writer = new DocumentWriter(getMapper().getConfig()); codec.encode(writer, changeStream, EncoderContext.builder().build()); Document document = writer.getDocument().get("$changeStream", Document.class); - assertTrue(document.getBoolean("allChangesForCluster")); - assertEquals(document.getString("fullDocument"), FullDocument.REQUIRED.getValue()); - assertEquals(document.getString("fullDocumentBeforeChange"), FullDocumentBeforeChange.REQUIRED.getValue()); - assertEquals(document.get("resumeAfter", Document.class), new Document("resume", "after")); - assertEquals(document.get("startAfter", Document.class), new Document("start", "after")); - assertEquals(document.get("startAtOperationTime", LocalDateTime.class), startAtOperationTime.truncatedTo(ChronoUnit.MILLIS)); + Assertions.assertTrue(document.getBoolean("allChangesForCluster")); + Assertions.assertEquals(FullDocument.REQUIRED.getValue(), document.getString("fullDocument")); + Assertions.assertEquals(FullDocumentBeforeChange.REQUIRED.getValue(), document.getString("fullDocumentBeforeChange")); + assertDocumentEquals(new Document("resume", "after"), document.get("resumeAfter", Document.class)); + assertDocumentEquals(new Document("start", "after"), document.get("startAfter", Document.class)); + Assertions.assertEquals(startAtOperationTime.truncatedTo(ChronoUnit.MILLIS), + document.get("startAtOperationTime", LocalDateTime.class)); } } diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestCollectionStats.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestCollectionStats.java index 3f6c46b2d27..827d4cdff53 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestCollectionStats.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestCollectionStats.java @@ -4,10 +4,10 @@ import dev.morphia.test.models.Author; import org.bson.Document; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.CollectionStats.collStats; -import static org.testng.Assert.assertNotNull; public class TestCollectionStats extends TestBase { @Test @@ -20,6 +20,6 @@ public void testCollectionStats() { .count(true)) .iterator() .tryNext(); - assertNotNull(stats); + Assertions.assertNotNull(stats); } } diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestCount.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestCount.java index a32ff09af55..7fa05246f68 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestCount.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestCount.java @@ -3,7 +3,8 @@ import dev.morphia.aggregation.stages.Count; import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.Count.*; import static dev.morphia.aggregation.stages.Match.match; @@ -14,7 +15,8 @@ public class TestCount extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/count/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(match(gt("score", 80)), Count.count("passing_scores"))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestCurrentOp.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestCurrentOp.java index f5cefca13d0..091b22499ac 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestCurrentOp.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestCurrentOp.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.CurrentOp.currentOp; import static dev.morphia.aggregation.stages.Match.match; @@ -14,7 +15,8 @@ public class TestCurrentOp extends TemplatedTestBase { /** * test data: dev/morphia/test/aggregation/stages/currentOp/example1 */ - @Test(testName = "Inactive Sessions :: Replica Set") + @Test + @DisplayName("Inactive Sessions :: Replica Set") public void testExample1() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(currentOp().allUsers(true).idleSessions(true), @@ -24,7 +26,8 @@ public void testExample1() { /** * test data: dev/morphia/test/aggregation/stages/currentOp/example2 */ - @Test(testName = "Inactive Sessions :: Sharded Cluster (localOps: true)") + @Test + @DisplayName("Inactive Sessions :: Sharded Cluster (localOps: true)") public void testExample2() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(currentOp().allUsers(true).idleSessions(true), @@ -34,7 +37,8 @@ public void testExample2() { /** * test data: dev/morphia/test/aggregation/stages/currentOp/example3 */ - @Test(testName = "Inactive Sessions :: Sharded Cluster") + @Test + @DisplayName("Inactive Sessions :: Sharded Cluster") public void testExample3() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(currentOp().allUsers(true).idleSessions(true), @@ -44,7 +48,8 @@ public void testExample3() { /** * test data: dev/morphia/test/aggregation/stages/currentOp/example4 */ - @Test(testName = "Sampled Queries :: Replica Set") + @Test + @DisplayName("Sampled Queries :: Replica Set") public void testExample4() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation .pipeline(currentOp().allUsers(true).localOps(true), match(eq("desc", "query analyzer")))); @@ -53,7 +58,8 @@ public void testExample4() { /** * test data: dev/morphia/test/aggregation/stages/currentOp/example5 */ - @Test(testName = "Sampled Queries :: Sharded Cluster: mongos") + @Test + @DisplayName("Sampled Queries :: Sharded Cluster: mongos") public void testExample5() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation .pipeline(currentOp().allUsers(true).localOps(true), match(eq("desc", "query analyzer")))); @@ -62,7 +68,8 @@ public void testExample5() { /** * test data: dev/morphia/test/aggregation/stages/currentOp/example6 */ - @Test(testName = "Sampled Queries :: Sharded Cluster: mongod --shardsvr") + @Test + @DisplayName("Sampled Queries :: Sharded Cluster: mongod --shardsvr") public void testExample6() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation .pipeline(currentOp().allUsers(true).localOps(true), match(eq("desc", "query analyzer")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestDensify.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestDensify.java index 98a609453d9..811ee0961b7 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestDensify.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestDensify.java @@ -6,15 +6,16 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.TimeUnit.HOUR; import static dev.morphia.aggregation.stages.Densify.densify; public class TestDensify extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.1.0"); } @@ -23,7 +24,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/stages/densify/example1 * */ - @Test(testName = "Densify Time Series Data") + @Test + @DisplayName("Densify Time Series Data") public void testExample1() { testPipeline( new ActionTestOptions().removeIds(true), ( @@ -39,7 +41,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/densify/example2 * */ - @Test(testName = "Densifiction with Partitions") + @Test + @DisplayName("Densifiction with Partitions") public void testExample2() { testPipeline(new ActionTestOptions().removeIds(true).orderMatters(false), (aggregation) -> aggregation .pipeline(densify("altitude", Range.full(200)).partitionByFields("variety"))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestDocuments.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestDocuments.java index 74cf0b41cc3..9675e4709a1 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestDocuments.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestDocuments.java @@ -3,8 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.Expressions.document; import static dev.morphia.aggregation.stages.AutoBucket.autoBucket; @@ -13,7 +14,7 @@ import static dev.morphia.aggregation.stages.Match.match; public class TestDocuments extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("6.0.0"); } @@ -22,7 +23,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/stages/documents/example1 * */ - @Test(testName = "Test a Pipeline Stage") + @Test + @DisplayName("Test a Pipeline Stage") public void testExample1() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline( @@ -34,7 +36,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/documents/example2 * */ - @Test(testName = "Use a ``$documents`` Stage in a ``$lookup`` Stage") + @Test + @DisplayName("Use a ``$documents`` Stage in a ``$lookup`` Stage") public void testExample2() { testPipeline(new ActionTestOptions().removeIds(true), aggregation -> { return aggregation.pipeline(match(), diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestFacet.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestFacet.java index 30a28535779..606abf2983b 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestFacet.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestFacet.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.push; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; @@ -20,7 +21,8 @@ public class TestFacet extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/facet/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(facet() diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestFill.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestFill.java index f2e1ae8e3c0..4cb07c2cd1f 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestFill.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestFill.java @@ -5,8 +5,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ConditionalExpressions.ifNull; import static dev.morphia.aggregation.expressions.Expressions.document; @@ -16,7 +17,7 @@ import static dev.morphia.query.Sort.ascending; public class TestFill extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.3.0"); } @@ -25,7 +26,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/stages/fill/example1 * */ - @Test(testName = "Fill Missing Field Values with a Constant Value") + @Test + @DisplayName("Fill Missing Field Values with a Constant Value") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true), aggregation -> aggregation .pipeline(fill().field("bootsSold", 0).field("sandalsSold", 0).field("sneakersSold", 0))); @@ -35,7 +37,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/fill/example2 * */ - @Test(testName = "Fill Missing Field Values with Linear Interpolation") + @Test + @DisplayName("Fill Missing Field Values with Linear Interpolation") public void testExample2() { testPipeline(new ActionTestOptions().removeIds(true), aggregation -> aggregation.pipeline(fill().sortBy(ascending("time")).field("price", Method.LINEAR))); @@ -45,7 +48,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/fill/example3 * */ - @Test(testName = "Fill Missing Field Values Based on the Last Observed Value") + @Test + @DisplayName("Fill Missing Field Values Based on the Last Observed Value") public void testExample3() { testPipeline(new ActionTestOptions().removeIds(true), aggregation -> aggregation.pipeline(fill().sortBy(ascending("date")).field("score", Method.LOCF))); @@ -55,7 +59,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/stages/fill/example4 * */ - @Test(testName = "Fill Data for Distinct Partitions") + @Test + @DisplayName("Fill Data for Distinct Partitions") public void testExample4() { testPipeline(new ActionTestOptions().removeIds(true), aggregation -> aggregation.pipeline(fill().sortBy(ascending("date")) @@ -66,7 +71,8 @@ public void testExample4() { * test data: dev/morphia/test/aggregation/stages/fill/example5 * */ - @Test(testName = "Indicate if a Field was Populated Using ``$fill``") + @Test + @DisplayName("Indicate if a Field was Populated Using ``$fill``") public void testExample5() { testPipeline(new ActionTestOptions().removeIds(true), (aggregation) -> aggregation @@ -81,7 +87,8 @@ public void testExample5() { * test data: dev/morphia/test/aggregation/stages/fill/example6 * */ - @Test(testName = "Interpolate Identical Values in Different Partitions") + @Test + @DisplayName("Interpolate Identical Values in Different Partitions") public void testExample6() { testPipeline(new ActionTestOptions().removeIds(true), aggregation -> aggregation.pipeline(fill().sortBy(ascending("date")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestGeoNear.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestGeoNear.java index ff75213d093..da4fb8cbef4 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestGeoNear.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestGeoNear.java @@ -6,7 +6,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.GeoNear.geoNear; import static dev.morphia.aggregation.stages.Limit.limit; @@ -19,7 +20,8 @@ public class TestGeoNear extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/geoNear/example1 * */ - @Test(testName = "Maximum Distance") + @Test + @DisplayName("Maximum Distance") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true).orderMatters(false), (aggregation) -> aggregation.pipeline(geoNear(new Point(new Position(-73.99279, 40.719296))) @@ -31,7 +33,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/geoNear/example2 * */ - @Test(testName = "Minimum Distance") + @Test + @DisplayName("Minimum Distance") public void testExample2() { // this example isn't representable in morphia as is } @@ -40,7 +43,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/geoNear/example3 * */ - @Test(testName = "$geoNear with the ``let`` option") + @Test + @DisplayName("$geoNear with the ``let`` option") public void testExample3() { // let doesn't apply to morphia } @@ -49,7 +53,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/stages/geoNear/example4 * */ - @Test(testName = "$geoNear with Bound ``let`` Option") + @Test + @DisplayName("$geoNear with Bound ``let`` Option") public void testExample4() { testPipeline(new ActionTestOptions().serverVersion("6.0.0").removeIds(true).orderMatters(false), (aggregation) -> aggregation.pipeline( @@ -62,7 +67,8 @@ public void testExample4() { * test data: dev/morphia/test/aggregation/stages/geoNear/example3 * */ - @Test(testName = "Specify Which Geospatial Index to Use") + @Test + @DisplayName("Specify Which Geospatial Index to Use") public void testExample5() { testPipeline(new ActionTestOptions().removeIds(true).orderMatters(false).skipDataCheck(true), (aggregation) -> aggregation.pipeline(geoNear(new Point(new Position(-73.98142, 40.71782))) diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestGraphLookup.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestGraphLookup.java index ed95df0584f..30678c8186f 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestGraphLookup.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestGraphLookup.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.GraphLookup.graphLookup; import static dev.morphia.aggregation.stages.Match.match; @@ -15,7 +16,8 @@ public class TestGraphLookup extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/graphLookup/example1 * */ - @Test(testName = "Within a Single Collection") + @Test + @DisplayName("Within a Single Collection") public void testExample1() { testPipeline(new ActionTestOptions().removeIds(true).orderMatters(false), (aggregation) -> aggregation.pipeline(graphLookup(EXAMPLE_TEST_COLLECTION).startWith("$reportsTo") @@ -26,7 +28,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/graphLookup/example2 * */ - @Test(testName = "Across Multiple Collections") + @Test + @DisplayName("Across Multiple Collections") public void testExample2() { loadData("airports", 2); @@ -40,7 +43,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/graphLookup/example3 * */ - @Test(testName = "With a Query Filter") + @Test + @DisplayName("With a Query Filter") public void testExample3() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( match(eq("name", "Tanya Jordan")), diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestGroup.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestGroup.java index fd122ea4cc8..3f1c92e2d8c 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestGroup.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestGroup.java @@ -7,7 +7,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.avg; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.push; @@ -26,7 +27,8 @@ public class TestGroup extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/group/example1 * */ - @Test(testName = "Count the Number of Documents in a Collection") + @Test + @DisplayName("Count the Number of Documents in a Collection") public void testExample1() { checkMinServerVersion("5.0.0"); testPipeline( @@ -37,7 +39,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/group/example2 * */ - @Test(testName = "Retrieve Distinct Values") + @Test + @DisplayName("Retrieve Distinct Values") public void testExample2() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(group(id("$item")))); @@ -47,7 +50,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/group/example3 * */ - @Test(testName = "Group by Item Having") + @Test + @DisplayName("Group by Item Having") public void testExample3() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline( @@ -59,7 +63,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/stages/group/example4 * */ - @Test(testName = "Calculate Count, Sum, and Average") + @Test + @DisplayName("Calculate Count, Sum, and Average") public void testExample4() { testPipeline((aggregation) -> aggregation.pipeline( match(gte("date", LocalDate.of(2014, Month.JANUARY, 1)), @@ -74,7 +79,8 @@ public void testExample4() { * test data: dev/morphia/test/aggregation/stages/group/example5 * */ - @Test(testName = "Pivot Data") + @Test + @DisplayName("Pivot Data") public void testExample5() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(group(id("$author")).field("books", push("$title")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestIndexStats.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestIndexStats.java index cc430567c2a..c8f6f156034 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestIndexStats.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestIndexStats.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.IndexStats.indexStats; @@ -12,7 +13,8 @@ public class TestIndexStats extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/indexStats/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(indexStats())); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestLimit.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestLimit.java index 4a2c0ebf7c3..c24ac356deb 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestLimit.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestLimit.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.Limit.limit; @@ -13,7 +14,8 @@ public class TestLimit extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/limit/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(limit(5))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestListClusterCatalog.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestListClusterCatalog.java index 7b125ef799b..769d27b66a3 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestListClusterCatalog.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestListClusterCatalog.java @@ -2,28 +2,33 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; // this operation is more administrative than application oriented. if someone needs it, we can add it but for now skip it. -@Test public class TestListClusterCatalog extends TemplatedTestBase { /** * test data: dev/morphia/test/aggregation/stages/listClusterCatalog/example1 - * + * * use sample_mflix db.aggregate([ { $listClusterCatalog: {} } ]) */ - @Test(testName = "List Information from All Collections", enabled = false) + @Disabled + @Test + @DisplayName("List Information from All Collections") public void testExample1() { } /** * test data: dev/morphia/test/aggregation/stages/listClusterCatalog/example2 - * + * * use sample_mflix db.aggregate([ { $listClusterCatalog: { * balancingConfiguration: true } } ]) */ - @Test(testName = "Balancing Configuration", enabled = false) + @Disabled + @Test + @DisplayName("Balancing Configuration") public void testExample2() { } } \ No newline at end of file diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestLookup.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestLookup.java index d4a20f1a70c..3d6306278ca 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestLookup.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestLookup.java @@ -7,7 +7,9 @@ import dev.morphia.test.aggregation.model.Inventory; import dev.morphia.test.aggregation.model.Order; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.elementAt; import static dev.morphia.aggregation.expressions.ArrayExpressions.in; @@ -24,14 +26,14 @@ import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.filters.Filters.expr; import static java.util.Arrays.asList; -import static org.testng.Assert.assertEquals; public class TestLookup extends TemplatedTestBase { /** * test data: dev/morphia/test/aggregation/stages/lookup/example1 * */ - @Test(testName = "Perform a Single Equality Join with ``$lookup``") + @Test + @DisplayName("Perform a Single Equality Join with ``$lookup``") public void testExample1() { loadData("inventory", 2); testPipeline((aggregation) -> aggregation @@ -42,7 +44,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/lookup/example2 * */ - @Test(testName = "Use ``$lookup`` with an Array") + @Test + @DisplayName("Use ``$lookup`` with an Array") public void testExample2() { loadData("members", 2); testPipeline((aggregation) -> aggregation @@ -53,7 +56,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/lookup/example3 * */ - @Test(testName = "Use ``$lookup`` with ``$mergeObjects``") + @Test + @DisplayName("Use ``$lookup`` with ``$mergeObjects``") public void testExample3() { loadData("items", 2); testPipeline((aggregation) -> aggregation.pipeline( @@ -65,7 +69,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/stages/lookup/example4 * */ - @Test(testName = "Perform Multiple Joins and a Correlated Subquery with ``$lookup``") + @Test + @DisplayName("Perform Multiple Joins and a Correlated Subquery with ``$lookup``") public void testExample4() { loadData("warehouses", 2); testPipeline( @@ -82,7 +87,8 @@ public void testExample4() { * test data: dev/morphia/test/aggregation/stages/lookup/example5 * */ - @Test(testName = "Perform an Uncorrelated Subquery with ``$lookup``") + @Test + @DisplayName("Perform an Uncorrelated Subquery with ``$lookup``") public void testExample5() { loadData("holidays", 2); testPipeline((aggregation) -> aggregation.pipeline(lookup("holidays") @@ -97,7 +103,8 @@ public void testExample5() { * test data: dev/morphia/test/aggregation/stages/lookup/example6 * */ - @Test(testName = "Perform a Concise Correlated Subquery with ``$lookup``") + @Test + @DisplayName("Perform a Concise Correlated Subquery with ``$lookup``") public void testExample6() { checkMinServerVersion("6.0.0"); loadData("restaurants", 2); @@ -120,10 +127,10 @@ public void testLookup() { .pipeline(lookup(Inventory.class).localField("item").foreignField("sku").as("inventoryDocs"), sort().ascending("_id")) .toList(); - assertEquals(lookups.get(0).getInventoryDocs().get(0), inventories.get(0)); - assertEquals(lookups.get(1).getInventoryDocs().get(0), inventories.get(3)); - assertEquals(lookups.get(2).getInventoryDocs().get(0), inventories.get(4)); - assertEquals(lookups.get(2).getInventoryDocs().get(1), inventories.get(5)); + Assertions.assertEquals(inventories.get(0), lookups.get(0).getInventoryDocs().get(0)); + Assertions.assertEquals(inventories.get(3), lookups.get(1).getInventoryDocs().get(0)); + Assertions.assertEquals(inventories.get(4), lookups.get(2).getInventoryDocs().get(0)); + Assertions.assertEquals(inventories.get(5), lookups.get(2).getInventoryDocs().get(1)); } /** @@ -132,7 +139,8 @@ public void testLookup() { * db.cakeFlavors.aggregate( [ { $lookup: { from: "cakeFlavors", pipeline: [ { * $documents: [ {} ] } ], as: "test" } } ] ) */ - @Test(testName = "Namespaces in Subpipelines") + @Test + @DisplayName("Namespaces in Subpipelines") public void testExample7() { // this is just an error case in the docs. nothing to test. } diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestMatch.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestMatch.java index 6c8fd346160..ab346df30a4 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestMatch.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestMatch.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; import static dev.morphia.aggregation.stages.Group.group; @@ -20,7 +21,8 @@ public class TestMatch extends TemplatedTestBase { /** * test data: dev/morphia/test/aggregation/stages/match/example1 */ - @Test(testName = "Equality Match") + @Test + @DisplayName("Equality Match") public void testExample1() { testPipeline(aggregation -> aggregation.pipeline(match(eq("author", "dave")))); } @@ -29,7 +31,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/match/example2 * */ - @Test(testName = "Perform a Count") + @Test + @DisplayName("Perform a Count") public void testExample2() { testPipeline(new ActionTestOptions().removeIds(true).orderMatters(false), (aggregation) -> aggregation.pipeline( diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestMerge.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestMerge.java index fffe2c87b69..d106cc4136f 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestMerge.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestMerge.java @@ -6,7 +6,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static com.mongodb.client.model.MergeOptions.WhenMatched.FAIL; import static com.mongodb.client.model.MergeOptions.WhenMatched.MERGE; @@ -31,7 +32,8 @@ public class TestMerge extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/merge/example1 * */ - @Test(testName = "On-Demand Materialized View: Initial Creation") + @Test + @DisplayName("On-Demand Materialized View: Initial Creation") public void testExample1() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline( @@ -44,7 +46,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/merge/example2 * */ - @Test(testName = "On-Demand Materialized View: Update/Replace Data") + @Test + @DisplayName("On-Demand Materialized View: Update/Replace Data") public void testExample2() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(match(gte("fiscal_year", 2019)), @@ -57,7 +60,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/merge/example3 * */ - @Test(testName = "Only Insert New Data") + @Test + @DisplayName("Only Insert New Data") public void testExample3() { loadData("orgArchive", 1); loadData("salaries", 2); @@ -75,7 +79,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/stages/merge/example4 * */ - @Test(testName = "Merge Results from Multiple Collections") + @Test + @DisplayName("Merge Results from Multiple Collections") public void testExample4() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(group().field("_id", "$quarter").field("purchased", sum("$qty")), @@ -86,7 +91,8 @@ public void testExample4() { * test data: dev/morphia/test/aggregation/stages/merge/example5 * */ - @Test(testName = "Use the Pipeline to Customize the Merge") + @Test + @DisplayName("Use the Pipeline to Customize the Merge") public void testExample5() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline( @@ -104,7 +110,8 @@ public void testExample5() { * test data: dev/morphia/test/aggregation/stages/merge/example6 * */ - @Test(testName = "Use Variables to Customize the Merge :: Merge Stage") + @Test + @DisplayName("Use Variables to Customize the Merge :: Merge Stage") public void testExample6() { // merging in to another db complicates the test infra and doesn't really // provide much value as another test @@ -114,7 +121,8 @@ public void testExample6() { * test data: dev/morphia/test/aggregation/stages/merge/example7 * */ - @Test(testName = "Use Variables to Customize the Merge :: Aggregate Command") + @Test + @DisplayName("Use Variables to Customize the Merge :: Aggregate Command") public void testExample7() { // merging in to another db complicates the test infra and doesn't really // provide much value as another test @@ -124,7 +132,8 @@ public void testExample7() { * test data: dev/morphia/test/aggregation/stages/merge/example8 * */ - @Test(testName = "Use Variables to Customize the Merge :: Merge and Aggregate") + @Test + @DisplayName("Use Variables to Customize the Merge :: Merge and Aggregate") public void testExample8() { // merging in to another db complicates the test infra and doesn't really // provide much value as another test diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestOut.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestOut.java index 39234446f38..d3d5d0d4096 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestOut.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestOut.java @@ -4,7 +4,8 @@ import dev.morphia.test.models.Author; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.push; import static dev.morphia.aggregation.stages.Group.group; @@ -16,7 +17,8 @@ public class TestOut extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/out/example1 * */ - @Test(testName = "Output to Same Database") + @Test + @DisplayName("Output to Same Database") public void testExample1() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation .pipeline(group(id("$author")).field("books", push().single("$title")), out(Author.class))); @@ -26,7 +28,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/out/example2 * */ - @Test(testName = "Output to a Different Database") + @Test + @DisplayName("Output to a Different Database") public void testExample2() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(group(id("$author")).field("books", push().single("$title")), diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestPlanCacheStats.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestPlanCacheStats.java index 6a3776b06af..689056169fe 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestPlanCacheStats.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestPlanCacheStats.java @@ -6,7 +6,8 @@ import dev.morphia.test.util.ActionTestOptions; import org.bson.Document; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.Match.match; import static dev.morphia.aggregation.stages.PlanCacheStats.planCacheStats; @@ -17,7 +18,8 @@ public class TestPlanCacheStats extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/planCacheStats/example1 * */ - @Test(testName = "Return Information for All Entries in the Query Cache") + @Test + @DisplayName("Return Information for All Entries in the Query Cache") public void testExample1() { Document keys = new Document("item", 1).append("price", 1); var options = new IndexOptions().partialFilterExpression(new Document("price", new Document("$gte", 10.0))); @@ -30,7 +32,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/planCacheStats/example2 * */ - @Test(testName = "Find Cache Entry Details for a Query Hash") + @Test + @DisplayName("Find Cache Entry Details for a Query Hash") public void testExample2() { Document keys = new Document("item", 1).append("price", 1); var options = new IndexOptions().partialFilterExpression(new Document("price", new Document("$gte", 10.0))); @@ -41,7 +44,8 @@ public void testExample2() { /** * test data: dev/morphia/test/aggregation/stages/planCacheStats/example3 */ - @Test(testName = "Find Cache Entry Details for a Query Hash") + @Test + @DisplayName("Find Cache Entry Details for a Query Hash") public void testExample3() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(planCacheStats(), match(eq("planCacheKey", "B1435201")))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestProject.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestProject.java index 930913479f2..874888e6e88 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestProject.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestProject.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.eq; import static dev.morphia.aggregation.expressions.ConditionalExpressions.condition; @@ -17,7 +18,8 @@ public class TestProject extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/project/example1 * */ - @Test(testName = "Include Specific Fields in Output Documents") + @Test + @DisplayName("Include Specific Fields in Output Documents") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(project().include("title").include("author"))); } @@ -26,7 +28,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/project/example2 * */ - @Test(testName = "Suppress ``_id`` Field in the Output Documents") + @Test + @DisplayName("Suppress ``_id`` Field in the Output Documents") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(project().suppressId().include("title").include("author"))); } @@ -35,7 +38,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/project/example3 * */ - @Test(testName = "Exclude Fields from Output Documents") + @Test + @DisplayName("Exclude Fields from Output Documents") public void testExample3() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(project().exclude("lastModified"))); @@ -45,7 +49,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/stages/project/example4 * */ - @Test(testName = "Conditionally Exclude Fields") + @Test + @DisplayName("Conditionally Exclude Fields") public void testExample4() { testPipeline((aggregation) -> aggregation .pipeline(project().include("title").include("author.first").include("author.last") @@ -56,7 +61,8 @@ public void testExample4() { * test data: dev/morphia/test/aggregation/stages/project/example5 * */ - @Test(testName = "Include Specific Fields from Embedded Documents") + @Test + @DisplayName("Include Specific Fields from Embedded Documents") public void testExample5() { testPipeline((aggregation) -> aggregation.pipeline(project().include("stop.title"))); } @@ -65,7 +71,8 @@ public void testExample5() { * test data: dev/morphia/test/aggregation/stages/project/example7 * */ - @Test(testName = "Include Specific Fields from Embedded Documents") + @Test + @DisplayName("Include Specific Fields from Embedded Documents") public void testExample6() { testPipeline((aggregation) -> aggregation.pipeline(project().include("stop.title"))); } @@ -74,7 +81,8 @@ public void testExample6() { * test data: dev/morphia/test/aggregation/stages/project/example6 * */ - @Test(testName = "Include Computed Fields") + @Test + @DisplayName("Include Computed Fields") public void testExample7() { testPipeline((aggregation) -> aggregation.pipeline(project().include("title") .include("isbn", document().field("prefix", substrBytes("$isbn", 0, 3)) @@ -87,7 +95,8 @@ public void testExample7() { * test data: dev/morphia/test/aggregation/stages/project/example8 * */ - @Test(testName = "Array Indexes are Unsupported") + @Test + @DisplayName("Array Indexes are Unsupported") public void testExample8() { testPipeline((aggregation) -> aggregation.pipeline(project().suppressId().include("x", "$name"))); } @@ -96,7 +105,8 @@ public void testExample8() { * test data: dev/morphia/test/aggregation/stages/project/example9 * */ - @Test(testName = "Array Indexes are Unsupported") + @Test + @DisplayName("Array Indexes are Unsupported") public void testExample9() { // unsupported multiple examples here /* diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestRedact.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestRedact.java index e6a1a9d5ac5..471c55c5124 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestRedact.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestRedact.java @@ -3,7 +3,8 @@ import dev.morphia.aggregation.expressions.ComparisonExpressions; import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ArrayExpressions.array; import static dev.morphia.aggregation.expressions.ArrayExpressions.size; @@ -21,7 +22,8 @@ public class TestRedact extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/redact/example1 * */ - @Test(testName = "Evaluate Access at Every Document Level") + @Test + @DisplayName("Evaluate Access at Every Document Level") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(match(eq("year", 2014)), redact(condition(gt(size(setIntersection("$tags", array("STLW", "G"))), 0), DESCEND, PRUNE)))); @@ -31,7 +33,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/redact/example2 * */ - @Test(testName = "Exclude All Fields at a Given Level") + @Test + @DisplayName("Exclude All Fields at a Given Level") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(match(eq("status", "A")), redact(condition(ComparisonExpressions.eq("$level", 5), PRUNE, DESCEND)))); diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestReplaceRoot.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestReplaceRoot.java index 3ddf27d2ac1..4daf5c0e27f 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestReplaceRoot.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestReplaceRoot.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.Expressions.document; import static dev.morphia.aggregation.expressions.ObjectExpressions.mergeObjects; @@ -18,7 +19,8 @@ public class TestReplaceRoot extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/replaceRoot/example1 * */ - @Test(testName = "``$replaceRoot`` with an Embedded Document Field") + @Test + @DisplayName("``$replaceRoot`` with an Embedded Document Field") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(replaceRoot(mergeObjects() .add(document().field("dogs", 0).field("cats", 0).field("birds", 0).field("fish", 0)).add("$pets")))); @@ -28,7 +30,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/replaceRoot/example2 * */ - @Test(testName = "``$replaceRoot`` with a Document Nested in an Array") + @Test + @DisplayName("``$replaceRoot`` with a Document Nested in an Array") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(unwind("grades"), match(gte("grades.grade", 90)), replaceRoot("$grades"))); @@ -38,7 +41,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/replaceRoot/example3 * */ - @Test(testName = "``$replaceRoot`` with a newly created document") + @Test + @DisplayName("``$replaceRoot`` with a newly created document") public void testExample3() { testPipeline((aggregation) -> aggregation .pipeline(replaceRoot().field("full_name", concat("$first_name", " ", "$last_name")))); @@ -48,7 +52,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/stages/replaceRoot/example4 * */ - @Test(testName = "``$replaceRoot`` with a New Document Created from ``$$ROOT`` and a Default Document") + @Test + @DisplayName("``$replaceRoot`` with a New Document Created from ``$$ROOT`` and a Default Document") public void testExample4() { testPipeline((aggregation) -> aggregation.pipeline(replaceRoot(mergeObjects().add( document().field("_id", "").field("name", "").field("email", "").field("cell", "").field("home", "")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestReplaceWith.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestReplaceWith.java index 5e41811713c..77f6d8b1c74 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestReplaceWith.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestReplaceWith.java @@ -3,7 +3,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.Expressions.document; import static dev.morphia.aggregation.expressions.MathExpressions.multiply; @@ -21,7 +23,8 @@ public class TestReplaceWith extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/replaceWith/example1 * */ - @Test(testName = "``$replaceWith`` an Embedded Document Field") + @Test + @DisplayName("``$replaceWith`` an Embedded Document Field") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(replaceWith(mergeObjects() .add(document().field("dogs", 0).field("cats", 0).field("birds", 0).field("fish", 0)).add("$pets")))); @@ -31,7 +34,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/replaceWith/example2 * */ - @Test(testName = "``$replaceWith`` a Document Nested in an Array") + @Test + @DisplayName("``$replaceWith`` a Document Nested in an Array") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(unwind("grades"), match(gte("grades.grade", 90)), replaceWith("$grades"))); @@ -41,7 +45,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/replaceWith/example3 * */ - @Test(testName = "``$replaceWith`` a Newly Created Document") + @Test + @DisplayName("``$replaceWith`` a Newly Created Document") public void testExample3() { testPipeline(new ActionTestOptions().orderMatters(false).skipDataCheck(true), (aggregation) -> aggregation.pipeline(match(eq("status", "C")), @@ -54,7 +59,9 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/stages/replaceWith/example4 * */ - @Test(testName = "``$replaceWith`` a New Document Created from ``$$ROOT`` and a Default Document", enabled = false, description = "failing oddly") + @Disabled("failing oddly") + @Test + @DisplayName("``$replaceWith`` a New Document Created from ``$$ROOT`` and a Default Document") public void testExample4() { testPipeline((aggregation) -> aggregation.pipeline(replaceWith(mergeObjects().add( document().field("_id", "").field("name", "").field("email", "").field("cell", "").field("home", "")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestSample.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestSample.java index e77c9a30f35..6e032f730ea 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestSample.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestSample.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.Sample.sample; @@ -12,7 +13,8 @@ public class TestSample extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/sample/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(sample(3))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestSet.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestSet.java index b63bd6c7f7b..d541493164a 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestSet.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestSet.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.avg; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; @@ -19,7 +20,8 @@ public class TestSet extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/set/example1 * */ - @Test(testName = "Using Two ``$set`` Stages") + @Test + @DisplayName("Using Two ``$set`` Stages") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline( set().field("totalHomework", sum("$homework")).field("totalQuiz", sum("$quiz")), @@ -30,7 +32,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/set/example2 * */ - @Test(testName = "Adding Fields to an Embedded Document") + @Test + @DisplayName("Adding Fields to an Embedded Document") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(set().field("specs.fuel_type", "unleaded"))); } @@ -39,7 +42,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/set/example3 * */ - @Test(testName = "Overwriting an existing field") + @Test + @DisplayName("Overwriting an existing field") public void testExample3() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(set().field("cats", 20))); @@ -49,7 +53,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/stages/set/example4 * */ - @Test(testName = "Add Element to an Array") + @Test + @DisplayName("Add Element to an Array") public void testExample4() { testPipeline((aggregation) -> aggregation.pipeline(match(eq("_id", 1)), set().field("homework", concatArrays("$homework", array(7))))); @@ -59,7 +64,8 @@ public void testExample4() { * test data: dev/morphia/test/aggregation/stages/set/example5 * */ - @Test(testName = "Creating a New Field with Existing Fields") + @Test + @DisplayName("Creating a New Field with Existing Fields") public void testExample5() { testPipeline((aggregation) -> aggregation.pipeline(set().field("quizAverage", avg("$quiz")))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestSetWindowFields.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestSetWindowFields.java index e045ceb7291..9a1efca35dc 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestSetWindowFields.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestSetWindowFields.java @@ -4,8 +4,9 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.push; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; @@ -19,7 +20,7 @@ import static dev.morphia.query.Sort.ascending; public class TestSetWindowFields extends TemplatedTestBase { - @BeforeMethod + @BeforeEach public void versionCheck() { checkMinServerVersion("5.0.0"); } @@ -28,7 +29,8 @@ public void versionCheck() { * test data: dev/morphia/test/aggregation/stages/setWindowFields/example1 * */ - @Test(testName = "Documents Window Examples") + @Test + @DisplayName("Documents Window Examples") public void testExample1() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(setWindowFields().partitionBy("$state") @@ -40,7 +42,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/setWindowFields/example2 * */ - @Test(testName = "Range Window Example") + @Test + @DisplayName("Range Window Example") public void testExample2() { testPipeline((aggregation) -> aggregation .pipeline(setWindowFields().partitionBy("$state").sortBy(ascending("price")).output( @@ -51,7 +54,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/setWindowFields/example3 * */ - @Test(testName = "Time Range Window Examples") + @Test + @DisplayName("Time Range Window Examples") public void testExample3() { testPipeline((aggregation) -> aggregation.pipeline( setWindowFields().partitionBy("$state").sortBy(ascending("orderDate")).output(output("recentOrders") @@ -67,7 +71,8 @@ public void testExample3() { * "$previousPrice"] }, "same", { $cond: [ { $gt: ["$price", "$previousPrice"] * }, "higher", "lower" ] } ] } } }, ] ) */ - @Test(testName = "Comparison with Previous Values Example") + @Test + @DisplayName("Comparison with Previous Values Example") public void testExample4() { testPipeline((aggregation) -> aggregation.pipeline( setWindowFields().partitionBy("$type").sortBy(ascending("orderDate")) diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestSkip.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestSkip.java index 8cf13c03b49..0f9abd9358d 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestSkip.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestSkip.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.Skip.skip; @@ -12,7 +13,8 @@ public class TestSkip extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/skip/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(skip(5))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestSort.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestSort.java index 0e6f49a51a9..fb3a469893a 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestSort.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestSort.java @@ -4,7 +4,8 @@ import dev.morphia.test.util.ActionTestOptions; import org.bson.Document; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.Match.match; import static dev.morphia.aggregation.stages.Sort.sort; @@ -15,7 +16,8 @@ public class TestSort extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/sort/example1 * */ - @Test(testName = "Ascending/Descending Sort") + @Test + @DisplayName("Ascending/Descending Sort") public void testExample1() { testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation.pipeline(sort().descending("age").ascending("posts"))); @@ -25,7 +27,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/sort/example2 * */ - @Test(testName = "Text Score Metadata Sort") + @Test + @DisplayName("Text Score Metadata Sort") public void testExample2() { getDatabase().getCollection(EXAMPLE_TEST_COLLECTION).createIndex(new Document("$**", "text")); testPipeline(new ActionTestOptions().skipDataCheck(true), (aggregation) -> aggregation diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestSortByCount.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestSortByCount.java index 500aca7918c..8ff9118fa9f 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestSortByCount.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestSortByCount.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.SortByCount.sortByCount; import static dev.morphia.aggregation.stages.Unwind.unwind; @@ -13,7 +14,8 @@ public class TestSortByCount extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/sortByCount/example1 * */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { // orderMatters is false here because of the indeterminate sort order on equal // values diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestUnionWith.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestUnionWith.java index 9b61010b51e..844586bdbdd 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestUnionWith.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestUnionWith.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; import static dev.morphia.aggregation.expressions.Expressions.document; @@ -17,7 +18,8 @@ public class TestUnionWith extends TemplatedTestBase { /** * test data: dev/morphia/test/aggregation/stages/unionWith/example1 */ - @Test(testName = "Report 1: All Sales by Year and Stores and Items") + @Test + @DisplayName("Report 1: All Sales by Year and Stores and Items") public void testExample1() { loadData("sales_2018", 1); loadData("sales_2019", 2); @@ -31,7 +33,8 @@ public void testExample1() { /** * test data: dev/morphia/test/aggregation/stages/unionWith/example2 */ - @Test(testName = "Report 2: Aggregated Sales by Items") + @Test + @DisplayName("Report 2: Aggregated Sales by Items") public void testExample2() { loadData("sales_2018", 1); loadData("sales_2019", 2); @@ -44,7 +47,8 @@ public void testExample2() { /** * test data: dev/morphia/test/aggregation/stages/unionWith/example3 */ - @Test(testName = "Create a Union with Specified Documents") + @Test + @DisplayName("Create a Union with Specified Documents") public void testExample3() { checkMinServerVersion("6.0.0"); testPipeline( @@ -55,7 +59,8 @@ public void testExample3() { /** * test data: dev/morphia/test/aggregation/stages/unionWith/example4 */ - @Test(testName = "Namespaces in Subpipelines") + @Test + @DisplayName("Namespaces in Subpipelines") public void testExample4() { // this is just an error case in the docs. nothing to test. } diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestUnset.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestUnset.java index f0cbd5f4b92..740d5c93d8c 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestUnset.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestUnset.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.Unset.unset; @@ -11,7 +12,8 @@ public class TestUnset extends TemplatedTestBase { * test data: dev/morphia/test/aggregation/stages/unset/example1 * */ - @Test(testName = "Remove a Single Field") + @Test + @DisplayName("Remove a Single Field") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(unset("copies"))); } @@ -20,7 +22,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/unset/example2 * */ - @Test(testName = "Remove Top-Level Fields") + @Test + @DisplayName("Remove Top-Level Fields") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(unset("isbn", "copies"))); } @@ -29,7 +32,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/unset/example3 * */ - @Test(testName = "Remove Embedded Fields") + @Test + @DisplayName("Remove Embedded Fields") public void testExample3() { testPipeline((aggregation) -> aggregation.pipeline(unset("isbn", "author.first", "copies.warehouse"))); } diff --git a/core/src/test/java/dev/morphia/test/aggregation/stages/TestUnwind.java b/core/src/test/java/dev/morphia/test/aggregation/stages/TestUnwind.java index 156fff5c598..25c3a5c97d9 100644 --- a/core/src/test/java/dev/morphia/test/aggregation/stages/TestUnwind.java +++ b/core/src/test/java/dev/morphia/test/aggregation/stages/TestUnwind.java @@ -7,8 +7,9 @@ import dev.morphia.test.models.User; import dev.morphia.test.util.ActionTestOptions; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.avg; import static dev.morphia.aggregation.expressions.AccumulatorExpressions.sum; @@ -21,14 +22,14 @@ import static java.time.LocalDate.parse; import static java.time.format.DateTimeFormatter.ofPattern; import static java.util.Arrays.asList; -import static org.testng.Assert.assertEquals; public class TestUnwind extends TemplatedTestBase { /** * test data: dev/morphia/test/aggregation/stages/unwind/example1 * */ - @Test(testName = "Unwind Array") + @Test + @DisplayName("Unwind Array") public void testExample1() { testPipeline((aggregation) -> aggregation.pipeline(unwind("sizes"))); } @@ -37,7 +38,8 @@ public void testExample1() { * test data: dev/morphia/test/aggregation/stages/unwind/example2 * */ - @Test(testName = "Missing or Non-array Values") + @Test + @DisplayName("Missing or Non-array Values") public void testExample2() { testPipeline((aggregation) -> aggregation.pipeline(unwind("sizes"))); } @@ -46,7 +48,8 @@ public void testExample2() { * test data: dev/morphia/test/aggregation/stages/unwind/example3 * */ - @Test(testName = "``preserveNullAndEmptyArrays`` and ``includeArrayIndex``") + @Test + @DisplayName("``preserveNullAndEmptyArrays`` and ``includeArrayIndex``") public void testExample3() { testPipeline((aggregation) -> aggregation.pipeline(unwind("sizes").preserveNullAndEmptyArrays(true))); } @@ -55,7 +58,8 @@ public void testExample3() { * test data: dev/morphia/test/aggregation/stages/unwind/example4 * */ - @Test(testName = "Group by Unwound Values") + @Test + @DisplayName("Group by Unwound Values") public void testExample4() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(unwind("sizes").preserveNullAndEmptyArrays(true), @@ -66,7 +70,8 @@ public void testExample4() { * test data: dev/morphia/test/aggregation/stages/unwind/example5 * */ - @Test(testName = "Unwind Embedded Arrays") + @Test + @DisplayName("Unwind Embedded Arrays") public void testExample5() { testPipeline(new ActionTestOptions().orderMatters(false), (aggregation) -> aggregation.pipeline(unwind("items"), unwind("items.tags"), @@ -87,27 +92,27 @@ public void testUnwind() { User user = aggregate.next(); switch (count) { case 0: - assertEquals(user.name, "jane"); - assertEquals(user.likes.get(0), "golf"); + Assertions.assertEquals("jane", user.name); + Assertions.assertEquals("golf", user.likes.get(0)); break; case 1: - assertEquals(user.name, "jane"); - assertEquals(user.likes.get(0), "racquetball"); + Assertions.assertEquals("jane", user.name); + Assertions.assertEquals("racquetball", user.likes.get(0)); break; case 2: - assertEquals(user.name, "joe"); - assertEquals(user.likes.get(0), "tennis"); + Assertions.assertEquals("joe", user.name); + Assertions.assertEquals("tennis", user.likes.get(0)); break; case 3: - assertEquals(user.name, "joe"); - assertEquals(user.likes.get(0), "golf"); + Assertions.assertEquals("joe", user.name); + Assertions.assertEquals("golf", user.likes.get(0)); break; case 4: - assertEquals(user.name, "joe"); - assertEquals(user.likes.get(0), "swimming"); + Assertions.assertEquals("joe", user.name); + Assertions.assertEquals("swimming", user.likes.get(0)); break; default: - Assert.fail("Should only find 5 elements"); + Assertions.fail("Should only find 5 elements"); } count++; } @@ -119,31 +124,31 @@ public void testUnwind() { User user = aggregate.next(); switch (count) { case 0: - assertEquals(user.name, "jane"); - assertEquals(user.likes.get(0), "golf"); + Assertions.assertEquals("jane", user.name); + Assertions.assertEquals("golf", user.likes.get(0)); break; case 1: - assertEquals(user.name, "jane"); - assertEquals(user.likes.get(0), "racquetball"); + Assertions.assertEquals("jane", user.name); + Assertions.assertEquals("racquetball", user.likes.get(0)); break; case 2: - assertEquals(user.name, "joe"); - assertEquals(user.likes.get(0), "tennis"); + Assertions.assertEquals("joe", user.name); + Assertions.assertEquals("tennis", user.likes.get(0)); break; case 3: - assertEquals(user.name, "joe"); - assertEquals(user.likes.get(0), "golf"); + Assertions.assertEquals("joe", user.name); + Assertions.assertEquals("golf", user.likes.get(0)); break; case 4: - assertEquals(user.name, "joe"); - assertEquals(user.likes.get(0), "swimming"); + Assertions.assertEquals("joe", user.name); + Assertions.assertEquals("swimming", user.likes.get(0)); break; case 5: - assertEquals(user.name, "john"); - Assert.assertNull(user.likes); + Assertions.assertEquals("john", user.name); + Assertions.assertNull(user.likes); break; default: - Assert.fail("Should only find 6 elements"); + Assertions.fail("Should only find 6 elements"); } count++; } diff --git a/core/src/test/java/dev/morphia/test/annotations/IndexHelperTest.java b/core/src/test/java/dev/morphia/test/annotations/IndexHelperTest.java index 29136d2215d..6b8d4037baa 100644 --- a/core/src/test/java/dev/morphia/test/annotations/IndexHelperTest.java +++ b/core/src/test/java/dev/morphia/test/annotations/IndexHelperTest.java @@ -30,8 +30,9 @@ import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import static com.mongodb.client.model.CollationAlternate.SHIFTED; import static com.mongodb.client.model.CollationCaseFirst.UPPER; @@ -45,16 +46,11 @@ import static dev.morphia.annotations.internal.TextBuilder.textBuilder; import static java.util.Arrays.asList; import static org.bson.Document.parse; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; -import static org.testng.Assert.fail; public class IndexHelperTest extends TestBase { private IndexHelper indexHelper; - @BeforeMethod + @BeforeEach public void clean() { getDatabase().drop(); } @@ -75,7 +71,7 @@ public void calculateBadKeys() { .build(); try { getIndexHelper().calculateKeys(model, index); - fail("Validation should have failed on the bad key"); + Assertions.fail("Validation should have failed on the bad key"); } catch (MappingException e) { // all good } @@ -109,9 +105,7 @@ public void calculateKeys() { .type(IndexType.DESC) .build()) .build()); - assertEquals(keys, new Document() - .append("text", "text") - .append("nest", -1)); + assertDocumentEquals(new Document().append("text", "text").append("nest", -1), keys); } @Test @@ -128,16 +122,15 @@ public void convertTextIndex() { .build(); Index index = getIndexHelper().convert(text, "search_field"); - assertEquals(index.options().name(), "index_name"); - assertTrue(index.options().background()); - assertTrue(index.options().sparse()); - assertTrue(index.options().unique()); - assertEquals(fieldBuilder() + Assertions.assertEquals("index_name", index.options().name()); + Assertions.assertTrue(index.options().background()); + Assertions.assertTrue(index.options().sparse()); + Assertions.assertTrue(index.options().unique()); + Assertions.assertEquals(index.fields()[0], fieldBuilder() .value("search_field") .type(IndexType.TEXT) .weight(4) - .build(), - index.fields()[0]); + .build()); } @@ -158,25 +151,25 @@ public void createIndex() { String name = document.get("name").toString(); if (name.equals("latitude_1")) { names.remove(name); - assertEquals(document.get("key"), parse("{ 'latitude' : 1 }")); + Assertions.assertEquals(parse("{ 'latitude' : 1 }"), document.get("key")); } else if (name.equals("searchme")) { names.remove(name); - assertEquals(document.get("weights"), parse("{ 'text' : 10 }")); + Assertions.assertEquals(parse("{ 'text' : 10 }"), document.get("weights")); } else if (name.equals("indexName_1")) { names.remove(name); - assertEquals(document.get("key"), parse("{'indexName': 1 }")); + Assertions.assertEquals(parse("{'indexName': 1 }"), document.get("key")); } else { if (!"_id_".equals(document.get("name"))) { throw new MappingException("Found an index I wasn't expecting: " + document); } } } - assertTrue(names.isEmpty(), "Should be empty: " + names); + Assertions.assertTrue(names.isEmpty(), "Should be empty: " + names); collection = getDatabase().getCollection(getDs().getCollection(AbstractParent.class).getNamespace().getCollectionName()); getIndexHelper().createIndex(collection, mapper.getEntityModel(AbstractParent.class)); indexInfo = getIndexInfo(AbstractParent.class); - assertTrue(indexInfo.isEmpty(), "Shouldn't find any indexes: " + indexInfo); + Assertions.assertTrue(indexInfo.isEmpty(), "Shouldn't find any indexes: " + indexInfo); }); } @@ -186,19 +179,19 @@ public void findField() { EntityModel model = getMapper().getEntityModel(IndexedClass.class); IndexOptions options = indexOptionsBuilder().build(); - assertEquals(getIndexHelper().findField(model, options, "indexName"), "indexName"); - assertEquals(getIndexHelper().findField(model, options, "nested.name"), "nest.name"); - assertEquals(getIndexHelper().findField(model, options, "nest.name"), "nest.name"); + Assertions.assertEquals("indexName", getIndexHelper().findField(model, options, "indexName")); + Assertions.assertEquals("nest.name", getIndexHelper().findField(model, options, "nested.name")); + Assertions.assertEquals("nest.name", getIndexHelper().findField(model, options, "nest.name")); try { - assertEquals(getIndexHelper().findField(model, options, "nest.whatsit"), "nest.whatsit"); - fail("Should have failed on the bad index path"); + Assertions.assertEquals("nest.whatsit", getIndexHelper().findField(model, options, "nest.whatsit")); + Assertions.fail("Should have failed on the bad index path"); } catch (ValidationException e) { // alles ist gut } - assertEquals(getIndexHelper().findField(model, indexOptionsBuilder().disableValidation(true).build(), - "nest.whatsit.nested.more.deeply.than.the.object.model"), - "nest.whatsit.nested.more.deeply.than.the.object.model"); + Assertions.assertEquals("nest.whatsit.nested.more.deeply.than.the.object.model", + getIndexHelper().findField(model, indexOptionsBuilder().disableValidation(true).build(), + "nest.whatsit.nested.more.deeply.than.the.object.model")); } public IndexHelper getIndexHelper() { @@ -239,21 +232,20 @@ public void index() { if (document.get("name").equals("indexName")) { checkIndex(document); - assertEquals(document.get("default_language"), "en"); - assertEquals(document.get("language_override"), "de"); - - assertEquals(document.get("collation"), - new Document() - .append("locale", "en") - .append("caseLevel", true) - .append("caseFirst", "upper") - .append("strength", 5) - .append("numericOrdering", true) - .append("alternate", "shifted") - .append("maxVariable", "space") - .append("backwards", true) - .append("normalization", true) - .append("version", "57.1")); + Assertions.assertEquals("en", document.get("default_language")); + Assertions.assertEquals("de", document.get("language_override")); + + Assertions.assertEquals(new Document() + .append("locale", "en") + .append("caseLevel", true) + .append("caseFirst", "upper") + .append("strength", 5) + .append("numericOrdering", true) + .append("alternate", "shifted") + .append("maxVariable", "space") + .append("backwards", true) + .append("normalization", true) + .append("version", "57.1"), document.get("collation")); } } } @@ -262,17 +254,17 @@ public void index() { public void indexCollationConversion() { Collation collation = collation().build(); com.mongodb.client.model.Collation driverCollation = getIndexHelper().convert(collation); - assertEquals(driverCollation.getLocale(), "en"); - assertTrue(driverCollation.getCaseLevel()); - assertEquals(driverCollation.getCaseFirst(), UPPER); - assertEquals(driverCollation.getStrength(), IDENTICAL); - assertTrue(driverCollation.getNumericOrdering()); - assertEquals(driverCollation.getAlternate(), SHIFTED); - assertEquals(driverCollation.getMaxVariable(), SPACE); - assertTrue(driverCollation.getNormalization()); - assertTrue(driverCollation.getBackwards()); - - assertNull(getIndexHelper() + Assertions.assertEquals("en", driverCollation.getLocale()); + Assertions.assertTrue(driverCollation.getCaseLevel()); + Assertions.assertEquals(UPPER, driverCollation.getCaseFirst()); + Assertions.assertEquals(IDENTICAL, driverCollation.getStrength()); + Assertions.assertTrue(driverCollation.getNumericOrdering()); + Assertions.assertEquals(SHIFTED, driverCollation.getAlternate()); + Assertions.assertEquals(SPACE, driverCollation.getMaxVariable()); + Assertions.assertTrue(driverCollation.getNormalization()); + Assertions.assertTrue(driverCollation.getBackwards()); + + Assertions.assertNull(getIndexHelper() .convert(collation() .locale("") .build())); @@ -283,7 +275,7 @@ public void indexCollationConversion() { .convert(collation() .locale(Collation.DEFAULT_LOCALE) .build()); - assertEquals(driverCollation.getLocale(), defaultLocale.toString()); + Assertions.assertEquals(defaultLocale.toString(), driverCollation.getLocale()); try { Locale.setDefault(Locale.CANADA_FRENCH); @@ -291,7 +283,7 @@ public void indexCollationConversion() { .convert(collation() .locale(Collation.DEFAULT_LOCALE) .build()); - assertEquals(driverCollation.getLocale(), "fr_CA"); + Assertions.assertEquals("fr_CA", driverCollation.getLocale()); } finally { Locale.setDefault(defaultLocale); } @@ -301,18 +293,18 @@ public void indexCollationConversion() { public void indexOptionsConversion() { IndexOptions indexOptions = buildOptions(true); com.mongodb.client.model.IndexOptions options = getIndexHelper().convert(indexOptions); - assertEquals(options.getName(), "index_name"); - assertTrue(options.isBackground()); - assertTrue(options.isUnique()); - assertTrue(options.isSparse()); - assertEquals(options.getExpireAfter(TimeUnit.SECONDS), Long.valueOf(42)); - assertEquals(options.getDefaultLanguage(), "en"); - assertEquals(options.getLanguageOverride(), "de"); - assertEquals(getIndexHelper().convert(indexOptions.collation()), options.getCollation()); - - assertTrue(getIndexHelper().convert(indexOptions).isBackground()); - assertTrue(getIndexHelper().convert(indexOptions).isBackground()); - assertFalse(getIndexHelper().convert(buildOptions(false)).isBackground()); + Assertions.assertEquals("index_name", options.getName()); + Assertions.assertTrue(options.isBackground()); + Assertions.assertTrue(options.isUnique()); + Assertions.assertTrue(options.isSparse()); + Assertions.assertEquals(Long.valueOf(42), options.getExpireAfter(TimeUnit.SECONDS)); + Assertions.assertEquals("en", options.getDefaultLanguage()); + Assertions.assertEquals("de", options.getLanguageOverride()); + Assertions.assertEquals(options.getCollation(), getIndexHelper().convert(indexOptions.collation())); + + Assertions.assertTrue(getIndexHelper().convert(indexOptions).isBackground()); + Assertions.assertTrue(getIndexHelper().convert(indexOptions).isBackground()); + Assertions.assertFalse(getIndexHelper().convert(buildOptions(false)).isBackground()); } @@ -360,11 +352,11 @@ public void normalizeIndexed() { .build(); Index converted = getIndexHelper().convert(indexed, "oldstyle"); - assertEquals(converted.options().name(), "index_name"); - assertTrue(converted.options().background()); - assertTrue(converted.options().sparse()); - assertTrue(converted.options().unique()); - assertEquals(fieldBuilder().value("oldstyle").type(IndexType.DESC).build(), converted.fields()[0]); + Assertions.assertEquals("index_name", converted.options().name()); + Assertions.assertTrue(converted.options().background()); + Assertions.assertTrue(converted.options().sparse()); + Assertions.assertTrue(converted.options().unique()); + Assertions.assertEquals(converted.fields()[0], fieldBuilder().value("oldstyle").type(IndexType.DESC).build()); } @Test @@ -383,19 +375,21 @@ public void textPartialFilters() { findPartialIndex(Document.parse(text.options().partialFilter())); } - @Test(expectedExceptions = MappingException.class) + @Test public void weightsOnNonTextIndex() { - MongoCollection indexes = getDatabase().getCollection("indexes"); - EntityModel model = getMapper().getEntityModel(IndexedClass.class); - - Index index = indexBuilder() - .fields(fieldBuilder() - .value("name") - .weight(10) - .build()) - .build(); - - getIndexHelper().createIndex(indexes, model, index); + Assertions.assertThrows(MappingException.class, () -> { + MongoCollection indexes = getDatabase().getCollection("indexes"); + EntityModel model = getMapper().getEntityModel(IndexedClass.class); + + Index index = indexBuilder() + .fields(fieldBuilder() + .value("name") + .weight(10) + .build()) + .build(); + + getIndexHelper().createIndex(indexes, model, index); + }); } @Test @@ -417,7 +411,7 @@ public void wildcardTextIndex() { for (Document document : wildcard) { found |= document.get("name").equals("$**_text"); } - assertTrue(found, "Should have found the wildcard index"); + Assertions.assertTrue(found, "Should have found the wildcard index"); } private IndexOptions buildOptions(boolean background) { @@ -436,14 +430,14 @@ private IndexOptions buildOptions(boolean background) { } private void checkIndex(Document document) { - assertTrue((Boolean) document.get("background")); - assertTrue((Boolean) document.get("unique")); - assertTrue((Boolean) document.get("sparse")); - assertEquals(document.get("expireAfterSeconds"), 42L); - assertEquals(document.get("key"), new Document("name", 1).append("text", -1)); + Assertions.assertTrue((Boolean) document.get("background")); + Assertions.assertTrue((Boolean) document.get("unique")); + Assertions.assertTrue((Boolean) document.get("sparse")); + Assertions.assertEquals(42L, document.get("expireAfterSeconds")); + Assertions.assertEquals(new Document("name", 1).append("text", -1), document.get("key")); } - @BeforeMethod + @BeforeEach private void clear() { indexHelper = null; } @@ -465,7 +459,7 @@ private void findPartialIndex(Document expected) { List indexInfo = getIndexInfo(IndexedClass.class); for (Document document : indexInfo) { if (!document.get("name").equals("_id_")) { - assertEquals(document.get("partialFilterExpression"), expected); + Assertions.assertEquals(expected, document.get("partialFilterExpression")); } } } diff --git a/core/src/test/java/dev/morphia/test/callbacks/TestInterceptors.java b/core/src/test/java/dev/morphia/test/callbacks/TestInterceptors.java index 8690a9c005a..be07beb88ed 100644 --- a/core/src/test/java/dev/morphia/test/callbacks/TestInterceptors.java +++ b/core/src/test/java/dev/morphia/test/callbacks/TestInterceptors.java @@ -12,8 +12,8 @@ import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class TestInterceptors extends TestBase { @@ -50,7 +50,7 @@ public boolean hasAnnotation(@NonNull Class type) { @Override public void prePersist(@NonNull Object ent, @NonNull Document document, @NonNull Object datastore) { - Assert.assertTrue(((E) ent).called); + Assertions.assertTrue(((E) ent).called); } } } diff --git a/core/src/test/java/dev/morphia/test/config/TestConfig.java b/core/src/test/java/dev/morphia/test/config/TestConfig.java index dbeefcf9173..fafc5799ae0 100644 --- a/core/src/test/java/dev/morphia/test/config/TestConfig.java +++ b/core/src/test/java/dev/morphia/test/config/TestConfig.java @@ -14,11 +14,8 @@ import dev.morphia.mapping.MappingException; import dev.morphia.test.TestBase; -import org.testng.annotations.Test; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertThrows; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class TestConfig extends TestBase { @Test @@ -30,14 +27,14 @@ public void testConfig() { public void loadSpecificConfigFiles() { var config = MorphiaConfig.load("META-INF/morphia-config-packageless.properties"); - assertEquals(config.database(), "morphia"); - assertEquals(config.packages(), List.of(".*")); + Assertions.assertEquals("morphia", config.database()); + Assertions.assertEquals(List.of(".*"), config.packages()); // this will fail because some of the test entities are intentionally invalid to test validations. But that it fails at all // means that the mapper is scanning *all* the classes as expected when no packages are specified. - assertThrows(MappingException.class, () -> { + Assertions.assertThrows(MappingException.class, () -> { MorphiaDatastore datastore = (MorphiaDatastore) Morphia.createDatastore(getMongoClient(), config); - assertFalse(datastore.getMapper().getMappedEntities().isEmpty(), "Should find packages to map by default"); + Assertions.assertFalse(datastore.getMapper().getMappedEntities().isEmpty(), "Should find packages to map by default"); }); } diff --git a/core/src/test/java/dev/morphia/test/config/TestPropertyAnnotationProviders.java b/core/src/test/java/dev/morphia/test/config/TestPropertyAnnotationProviders.java index 6373d2d05dc..6a14e4a3ac3 100644 --- a/core/src/test/java/dev/morphia/test/config/TestPropertyAnnotationProviders.java +++ b/core/src/test/java/dev/morphia/test/config/TestPropertyAnnotationProviders.java @@ -9,11 +9,8 @@ import dev.morphia.config.MorphiaPropertyAnnotationProvider; import dev.morphia.config.PropertyAnnotationProvider; -import org.testng.annotations.Test; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertTrue; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class TestPropertyAnnotationProviders { @@ -33,8 +30,8 @@ public Class provides() { public void defaultConfigContainsMorphiaProvider() { List> providers = new ManualMorphiaConfig().propertyAnnotationProviders(); - assertEquals(providers.size(), 1, "Default config should have exactly one provider"); - assertTrue(providers.get(0) instanceof MorphiaPropertyAnnotationProvider, + Assertions.assertEquals(1, providers.size(), "Default config should have exactly one provider"); + Assertions.assertTrue(providers.get(0) instanceof MorphiaPropertyAnnotationProvider, "Default provider should be MorphiaPropertyAnnotationProvider"); } @@ -43,8 +40,8 @@ public void loadedConfigContainsMorphiaProvider() { // SmallRye Config path — uses @WithDefault List> providers = MorphiaConfig.load().propertyAnnotationProviders(); - assertFalse(providers.isEmpty(), "Loaded config should have at least one provider"); - assertTrue(providers.stream().findFirst().stream().allMatch(p -> p instanceof MorphiaPropertyAnnotationProvider), + Assertions.assertFalse(providers.isEmpty(), "Loaded config should have at least one provider"); + Assertions.assertTrue(providers.stream().findFirst().stream().allMatch(p -> p instanceof MorphiaPropertyAnnotationProvider), "Loaded config should always include MorphiaPropertyAnnotationProvider"); } @@ -54,9 +51,9 @@ public void customProviderIncludesMorphiaProvider() { .propertyAnnotationProviders(List.of(new CustomProvider())); List> providers = config.propertyAnnotationProviders(); - assertTrue(providers.stream().anyMatch(p -> p instanceof MorphiaPropertyAnnotationProvider), + Assertions.assertTrue(providers.stream().anyMatch(p -> p instanceof MorphiaPropertyAnnotationProvider), "MorphiaPropertyAnnotationProvider must always be present"); - assertTrue(providers.stream().anyMatch(p -> p instanceof CustomProvider), + Assertions.assertTrue(providers.stream().anyMatch(p -> p instanceof CustomProvider), "CustomProvider should be present"); } @@ -67,8 +64,8 @@ public void customProviderNoDuplication() { List> providers = config.propertyAnnotationProviders(); long morphiaCount = providers.stream().filter(p -> p instanceof MorphiaPropertyAnnotationProvider).count(); - assertEquals(morphiaCount, 1, "MorphiaPropertyAnnotationProvider must appear exactly once"); - assertEquals(providers.size(), 2, "Should have exactly MorphiaPropertyAnnotationProvider + CustomProvider"); + Assertions.assertEquals(1, morphiaCount, "MorphiaPropertyAnnotationProvider must appear exactly once"); + Assertions.assertEquals(2, providers.size(), "Should have exactly MorphiaPropertyAnnotationProvider + CustomProvider"); } @Test @@ -80,11 +77,11 @@ public void customProviderSurvivedChainedSetter() { .database("mydb"); List> providers = config.propertyAnnotationProviders(); - assertTrue(providers.stream().anyMatch(p -> p instanceof CustomProvider), + Assertions.assertTrue(providers.stream().anyMatch(p -> p instanceof CustomProvider), "CustomProvider must survive chained setter calls"); - assertTrue(providers.stream().anyMatch(p -> p instanceof MorphiaPropertyAnnotationProvider), + Assertions.assertTrue(providers.stream().anyMatch(p -> p instanceof MorphiaPropertyAnnotationProvider), "MorphiaPropertyAnnotationProvider must survive chained setter calls"); - assertEquals(providers.size(), 2); + Assertions.assertEquals(2, providers.size()); } @Test @@ -95,7 +92,8 @@ public void explicitMorphiaProviderNoDuplication() { List> providers = config.propertyAnnotationProviders(); long morphiaCount = providers.stream().filter(p -> p instanceof MorphiaPropertyAnnotationProvider).count(); - assertEquals(morphiaCount, 1, "MorphiaPropertyAnnotationProvider must appear exactly once even when explicitly provided"); - assertEquals(providers.size(), 2, "Should have exactly MorphiaPropertyAnnotationProvider + CustomProvider"); + Assertions.assertEquals(1, morphiaCount, + "MorphiaPropertyAnnotationProvider must appear exactly once even when explicitly provided"); + Assertions.assertEquals(2, providers.size(), "Should have exactly MorphiaPropertyAnnotationProvider + CustomProvider"); } } diff --git a/core/src/test/java/dev/morphia/test/generics/TestGenerics.java b/core/src/test/java/dev/morphia/test/generics/TestGenerics.java index 47e26340c3f..107d94c0e2a 100644 --- a/core/src/test/java/dev/morphia/test/generics/TestGenerics.java +++ b/core/src/test/java/dev/morphia/test/generics/TestGenerics.java @@ -17,14 +17,12 @@ import dev.morphia.test.models.methods.MethodMappedSpecializedEntity; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static java.util.Arrays.asList; import static java.util.List.of; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; public class TestGenerics extends TestBase { public TestGenerics() { @@ -42,7 +40,7 @@ public void example() { .iterator() .next(); - Assert.assertEquals(childEntity, entity); + Assertions.assertEquals(entity, childEntity); } @Test @@ -56,7 +54,7 @@ public void testGenericEntities() { EntityModel entityModel = getMapper().getEntityModel(SpecializedEntity.class); PropertyModel test = entityModel.getProperty("test"); - assertEquals(test.getType(), UUID.class); + Assertions.assertEquals(UUID.class, test.getType()); SpecializedEntity beforeDB = new SpecializedEntity(); beforeDB.setId(UUID.randomUUID()); @@ -67,9 +65,9 @@ public void testGenericEntities() { .filter(eq("_id", beforeDB.getId())) .first(); - assertEquals(loaded.getId(), beforeDB.getId()); + Assertions.assertEquals(beforeDB.getId(), loaded.getId()); - assertEquals(loaded.getTest(), beforeDB.getTest()); + Assertions.assertEquals(beforeDB.getTest(), loaded.getTest()); } @Test @@ -83,14 +81,14 @@ public void testIt() { ct.integerThing = hai; getDs().save(ct); - assertNotNull(ct.id); - assertEquals(getDs().find(ContainsThings.class).count(), 1); + Assertions.assertNotNull(ct.id); + Assertions.assertEquals(1, getDs().find(ContainsThings.class).count()); final ContainsThings ctLoaded = getDs().find(ContainsThings.class).iterator() .next(); - assertNotNull(ctLoaded); - assertNotNull(ctLoaded.id); - assertNotNull(ctLoaded.stringThing); - assertNotNull(ctLoaded.integerThing); + Assertions.assertNotNull(ctLoaded); + Assertions.assertNotNull(ctLoaded.id); + Assertions.assertNotNull(ctLoaded.stringThing); + Assertions.assertNotNull(ctLoaded.integerThing); } @Test @@ -102,7 +100,7 @@ public void testMethodMappedGenericEntities() { EntityModel entityModel = getMapper().getEntityModel(MethodMappedSpecializedEntity.class); PropertyModel test = entityModel.getProperty("test"); - assertEquals(test.getType(), UUID.class); + Assertions.assertEquals(UUID.class, test.getType()); MethodMappedSpecializedEntity beforeDB = new MethodMappedSpecializedEntity(); beforeDB.setId(UUID.randomUUID()); @@ -113,9 +111,9 @@ public void testMethodMappedGenericEntities() { .filter(eq("_id", beforeDB.getId())) .first(); - assertEquals(loaded.getId(), beforeDB.getId()); + Assertions.assertEquals(beforeDB.getId(), loaded.getId()); - assertEquals(loaded.getTest(), beforeDB.getTest()); + Assertions.assertEquals(beforeDB.getTest(), loaded.getTest()); }); } @@ -127,13 +125,13 @@ public void upperBounds() { getDs().save(status); - assertNotNull(getDs().find(EmailStatus.class).first()); + Assertions.assertNotNull(getDs().find(EmailStatus.class).first()); } @Test public void testWildCards() { EntityModel model = getMapper().getEntityModel(WildCards.class); - assertEquals(model.getProperties().size(), 1); + Assertions.assertEquals(1, model.getProperties().size()); } @Entity diff --git a/core/src/test/java/dev/morphia/test/geo/TestGeoQueries.java b/core/src/test/java/dev/morphia/test/geo/TestGeoQueries.java index 0bfee7e0378..56077fd1e27 100644 --- a/core/src/test/java/dev/morphia/test/geo/TestGeoQueries.java +++ b/core/src/test/java/dev/morphia/test/geo/TestGeoQueries.java @@ -20,8 +20,8 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.box; import static dev.morphia.query.filters.Filters.center; @@ -95,7 +95,7 @@ public void testGeoWithinBox() { .filter(box("loc", new Point(new Position(0, 0)), new Point(new Position(2, 2)))) .iterator() .next(); - Assert.assertNotNull(found); + Assertions.assertNotNull(found); } @Test @@ -106,7 +106,7 @@ public void testGeoWithinOutsideBox() { .filter(box("loc", new Point(new Position(0, 0)), new Point(new Position(.4, .5)))) .iterator() .tryNext(); - Assert.assertNull(found); + Assertions.assertNull(found); } @Test @@ -121,7 +121,7 @@ public void testGeoWithinPolygon() { new Point(new Position(2, 0)))) .iterator() .next(); - Assert.assertNotNull(found); + Assertions.assertNotNull(found); } @Test @@ -136,7 +136,7 @@ public void testGeoWithinPolygon2() { new Point(new Position(2, 0)))) .iterator() .tryNext(); - Assert.assertNull(found); + Assertions.assertNull(found); } @Test @@ -146,7 +146,7 @@ public void testGeoWithinRadius() { final Place found = getDs().find(Place.class) .filter(center("loc", new Point(new Position(0, 1)), 1.1)).iterator() .next(); - Assert.assertNotNull(found); + Assertions.assertNotNull(found); } @Test @@ -156,7 +156,7 @@ public void testGeoWithinRadius2() { final Place found = getDs().find(Place.class) .filter(center("loc", new Point(new Position(0.5, 0.5)), 0.77)).iterator() .next(); - Assert.assertNotNull(found); + Assertions.assertNotNull(found); } @Test @@ -166,7 +166,7 @@ public void testGeoWithinRadiusSphere() { final Place found = getDs().find(Place.class) .filter(centerSphere("loc", new Point(new Position(0, 1)), 1)).iterator() .next(); - Assert.assertNotNull(found); + Assertions.assertNotNull(found); } @Test @@ -176,7 +176,7 @@ public void testNear() { final Place found = getDs().find(Place.class) .filter(near("loc", new Point(new Position(0, 0)))).iterator() .next(); - Assert.assertNotNull(found); + Assertions.assertNotNull(found); } @Test @@ -189,23 +189,25 @@ public void testNearMaxDistance() { Query query = getDs().find(Place.class, options) .filter(near("loc", new Point(new Position(1, 1))) .maxDistance(2.0)); - Assert.assertNotNull(query.iterator().tryNext(), query.getLoggedQuery()); + Assertions.assertNotNull(query.iterator().tryNext(), query.getLoggedQuery()); query = getDs().find(Place.class, options) .filter(near("loc", new Point(new Position(0, 0))) .maxDistance(1.0)); - Assert.assertNull(query.first(), query.getLoggedQuery()); + Assertions.assertNull(query.first(), query.getLoggedQuery()); } - @Test(expectedExceptions = MongoQueryException.class) + @Test public void testNearNoIndex() { - getDs().getCollection(Place.class).drop(); - final Place place1 = new Place("place1", new double[] { 1, 1 }); - getDs().save(place1); - Place found = getDs().find(Place.class) - .filter(near("loc", new Point(new Position(0, 0)))).iterator() - .tryNext(); - Assert.assertNull(found); + Assertions.assertThrows(MongoQueryException.class, () -> { + getDs().getCollection(Place.class).drop(); + final Place place1 = new Place("place1", new double[] { 1, 1 }); + getDs().save(place1); + Place found = getDs().find(Place.class) + .filter(near("loc", new Point(new Position(0, 0)))).iterator() + .tryNext(); + Assertions.assertNull(found); + }); } @Test @@ -218,7 +220,7 @@ public void testWithinBox() { new Point(new Position(2, 2)))) .iterator() .next(); - Assert.assertNotNull(found); + Assertions.assertNotNull(found); } @Test @@ -231,7 +233,7 @@ public void testWithinOutsideBox() { new Point(new Position(.4, .5)))) .iterator() .tryNext(); - Assert.assertNull(found); + Assertions.assertNull(found); } @Test @@ -241,7 +243,7 @@ public void testWithinOutsideRadius() { final Place found = getDs().find(Place.class) .filter(center("loc", new Point(new Position(2, 2)), 0.4)).iterator() .tryNext(); - Assert.assertNull(found); + Assertions.assertNull(found); } @Test @@ -251,7 +253,7 @@ public void testWithinRadius() { final Place found = getDs().find(Place.class) .filter(center("loc", new Point(new Position(0, 1)), 1.1)).iterator() .next(); - Assert.assertNotNull(found); + Assertions.assertNotNull(found); } @Test @@ -261,7 +263,7 @@ public void testWithinRadius2() { final Place found = getDs().find(Place.class) .filter(center("loc", new Point(new Position(0.5, 0.5)), 0.77)).iterator() .next(); - Assert.assertNotNull(found); + Assertions.assertNotNull(found); } @Test @@ -271,7 +273,7 @@ public void testWithinRadiusSphere() { final Place found = getDs().find(Place.class) .filter(centerSphere("loc", new Point(new Position(0, 1)), 1)).iterator() .next(); - Assert.assertNotNull(found); + Assertions.assertNotNull(found); } @Test diff --git a/core/src/test/java/dev/morphia/test/indexes/TestIndexes.java b/core/src/test/java/dev/morphia/test/indexes/TestIndexes.java index ebb883b5d7a..83572ddfb46 100644 --- a/core/src/test/java/dev/morphia/test/indexes/TestIndexes.java +++ b/core/src/test/java/dev/morphia/test/indexes/TestIndexes.java @@ -31,8 +31,8 @@ import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static com.mongodb.client.model.CollationAlternate.SHIFTED; import static dev.morphia.mapping.IndexType.DESC; @@ -41,9 +41,6 @@ import static org.bson.Document.parse; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; public class TestIndexes extends TestBase { public TestIndexes() { @@ -54,12 +51,12 @@ public TestIndexes() { @Test public void indexTypefromValue() { - assertEquals(IndexType.fromValue(1), IndexType.ASC); - assertEquals(IndexType.fromValue(-1), IndexType.DESC); - assertEquals(IndexType.fromValue("2d"), IndexType.GEO2D); - assertEquals(IndexType.fromValue("2dsphere"), IndexType.GEO2DSPHERE); - assertEquals(IndexType.fromValue("hashed"), IndexType.HASHED); - assertEquals(IndexType.fromValue("text"), IndexType.TEXT); + Assertions.assertEquals(IndexType.ASC, IndexType.fromValue(1)); + Assertions.assertEquals(IndexType.DESC, IndexType.fromValue(-1)); + Assertions.assertEquals(IndexType.GEO2D, IndexType.fromValue("2d")); + Assertions.assertEquals(IndexType.GEO2DSPHERE, IndexType.fromValue("2dsphere")); + Assertions.assertEquals(IndexType.HASHED, IndexType.fromValue("hashed")); + Assertions.assertEquals(IndexType.TEXT, IndexType.fromValue("text")); } @Test @@ -77,7 +74,7 @@ public void mutipleUniqueIndexed() { entityWithSameName.setUnique(2); getDs().save(entityWithSameName); - Assert.fail("Should have gotten a duplicate key exception"); + Assertions.fail("Should have gotten a duplicate key exception"); } catch (Exception ignored) { } @@ -93,27 +90,31 @@ public void mutipleUniqueIndexed() { second.setUnique(value); getDs().save(second); - Assert.fail("Should have gotten a duplicate key exception"); + Assertions.fail("Should have gotten a duplicate key exception"); } catch (Exception ignored) { } } - @Test(expectedExceptions = MongoCommandException.class) + @Test public void shouldErrorWhenCreatingA2dIndexOnGeoJson() { - withConfig(buildConfig(Place2D.class) - .applyIndexes(false), () -> { - Place2D pointB = new Place2D(new Point(new Position(3.1, 7.5)), "Point B"); - getDs().save(pointB); + Assertions.assertThrows(MongoCommandException.class, () -> { + withConfig(buildConfig(Place2D.class) + .applyIndexes(false), () -> { + Place2D pointB = new Place2D(new Point(new Position(3.1, 7.5)), "Point B"); + getDs().save(pointB); - getDs().applyIndexes(); - }); + getDs().applyIndexes(); + }); + }); } - @Test(expectedExceptions = MongoCommandException.class) + @Test public void shouldNotAllowMultipleTextIndexes() { - withTestConfig(buildConfig() - .applyIndexes(true), List.of(MultipleTextIndexes.class), () -> { - }); + Assertions.assertThrows(MongoCommandException.class, () -> { + withTestConfig(buildConfig() + .applyIndexes(true), List.of(MultipleTextIndexes.class), () -> { + }); + }); } @Test @@ -132,16 +133,15 @@ public void testCanCreate2dSphereIndexesOnLegacyCoordinatePairs() { @Test public void testClassIndexInherit() { final EntityModel entityModel = getMapper().getEntityModel(Circle.class); - assertNotNull(entityModel); + Assertions.assertNotNull(entityModel); - assertNotNull(entityModel.getAnnotation(Indexes.class)); + Assertions.assertNotNull(entityModel.getAnnotation(Indexes.class)); - assertEquals(getIndexInfo(Circle.class) + Assertions.assertEquals(List.of("_id_", "description_1", "foo_1", "radius_1"), getIndexInfo(Circle.class) .stream() .map(i -> (String) i.get("name")) .sorted() - .collect(Collectors.toList()), - List.of("_id_", "description_1", "foo_1", "radius_1")); + .collect(Collectors.toList())); } @Test @@ -149,16 +149,16 @@ public void testExpireAfterClassAnnotation() { getDs().save(new ClassAnnotation()); final List indexes = getIndexInfo(ClassAnnotation.class); - assertEquals(indexes.size(), 2); + Assertions.assertEquals(2, indexes.size()); Document index = null; for (Document candidateIndex : indexes) { if (candidateIndex.containsKey("expireAfterSeconds")) { index = candidateIndex; } } - assertNotNull(index); - assertTrue(index.containsKey("expireAfterSeconds")); - assertEquals(((Number) index.get("expireAfterSeconds")).intValue(), 5); + Assertions.assertNotNull(index); + Assertions.assertTrue(index.containsKey("expireAfterSeconds")); + Assertions.assertEquals(5, ((Number) index.get("expireAfterSeconds")).intValue()); } @Test @@ -167,16 +167,16 @@ public void testIndexedField() { final List indexes = getIndexInfo(HasExpiryField.class); - assertNotNull(indexes); - assertEquals(indexes.size(), 2); + Assertions.assertNotNull(indexes); + Assertions.assertEquals(2, indexes.size()); Document index = null; for (Document candidateIndex : indexes) { if (candidateIndex.containsKey("expireAfterSeconds")) { index = candidateIndex; } } - assertNotNull(index); - assertEquals(((Number) index.get("expireAfterSeconds")).intValue(), 5); + Assertions.assertNotNull(index); + Assertions.assertEquals(5, ((Number) index.get("expireAfterSeconds")).intValue()); } @Test @@ -191,12 +191,11 @@ public void testIndexedRecursiveEntity() { public void testIndexes() { getDs().ensureIndexes(TestWithIndexOption.class); List indexInfo = getIndexInfo(TestWithIndexOption.class); - assertEquals(indexInfo.size(), 2); + Assertions.assertEquals(2, indexInfo.size()); assertBackground(indexInfo); for (Document document : indexInfo) { if (document.get("name").equals("collated")) { - assertEquals(document.get("partialFilterExpression"), - parse("{ name : { $exists : true } }")); + Assertions.assertEquals(parse("{ name : { $exists : true } }"), document.get("partialFilterExpression")); Document collation = (Document) document.get("collation"); collation.remove("version"); @@ -209,23 +208,23 @@ public void testIndexes() { + "'normalization': true," + "'numericOrdering': true," + "'strength': 5 }"); - assertEquals(collation, parse, collation.toJson()); + assertDocumentEquals(toJson(collation), parse, collation); } } getDs().ensureIndexes(TestWithDeprecatedIndex.class); - assertEquals(getIndexInfo(TestWithDeprecatedIndex.class).size(), 2); + Assertions.assertEquals(2, getIndexInfo(TestWithDeprecatedIndex.class).size()); assertBackground(getIndexInfo(TestWithDeprecatedIndex.class)); getDs().ensureIndexes(TestWithHashedIndex.class); - assertEquals(getIndexInfo(TestWithHashedIndex.class).size(), 2); + Assertions.assertEquals(2, getIndexInfo(TestWithHashedIndex.class).size()); assertHashed(getIndexInfo(TestWithHashedIndex.class)); } private void assertBackground(List indexInfo) { for (Document document : indexInfo) { if (!document.getString("name").equals("_id_")) { - assertTrue(document.getBoolean("background")); + Assertions.assertTrue(document.getBoolean("background")); } } } @@ -233,14 +232,14 @@ private void assertBackground(List indexInfo) { private void assertHashed(List indexInfo) { for (Document document : indexInfo) { if (!document.getString("name").equals("_id_")) { - assertEquals(((Document) document.get("key")).get("hashedValue"), "hashed"); + Assertions.assertEquals("hashed", ((Document) document.get("key")).get("hashedValue")); } } } @Test public void testInheritedFieldIndex() { - assertEquals(getIndexInfo(Circle.class).size(), 4); + Assertions.assertEquals(4, getIndexInfo(Circle.class).size()); } @Test @@ -248,7 +247,7 @@ public void testMethodMapping() { withConfig(buildConfig(MethodMappedUser.class) .applyIndexes(true) .propertyDiscovery(PropertyDiscovery.METHODS), () -> { - assertEquals(getIndexInfo(MethodMappedUser.class).size(), 3); + Assertions.assertEquals(3, getIndexInfo(MethodMappedUser.class).size()); }); } @@ -266,19 +265,19 @@ public void testNamedIndexEntity() { @Test public void testSingleAnnotation() { List indexInfo = getIndexInfo(CompoundTextIndex.class); - Assert.assertEquals(indexInfo.size(), 2); + Assertions.assertEquals(2, indexInfo.size()); boolean found = false; for (Document document : indexInfo) { if (document.get("name").equals("indexing_test")) { found = true; - Assert.assertEquals(document.get("default_language"), "russian", document.toString()); - Assert.assertEquals(document.get("language_override"), "nativeTongue", document.toString()); - Assert.assertEquals(((Document) document.get("weights")).get("name"), 1, document.toString()); - Assert.assertEquals(((Document) document.get("weights")).get("nick"), 10, document.toString()); - Assert.assertEquals(((Document) document.get("key")).get("age"), 1, document.toString()); + Assertions.assertEquals("russian", document.get("default_language"), document.toString()); + Assertions.assertEquals("nativeTongue", document.get("language_override"), document.toString()); + Assertions.assertEquals(1, ((Document) document.get("weights")).get("name"), document.toString()); + Assertions.assertEquals(10, ((Document) document.get("weights")).get("nick"), document.toString()); + Assertions.assertEquals(1, ((Document) document.get("key")).get("age"), document.toString()); } } - Assert.assertTrue(found); + Assertions.assertTrue(found); } @Test @@ -286,17 +285,17 @@ public void testTextAnnotation() { Class clazz = SingleFieldTextIndex.class; List indexInfo = getIndexInfo(clazz); - Assert.assertEquals(indexInfo.size(), 2, indexInfo.toString()); + Assertions.assertEquals(2, indexInfo.size(), indexInfo.toString()); boolean found = false; for (Document document : indexInfo) { if (document.get("name").equals("single_annotation")) { found = true; - Assert.assertEquals(document.get("default_language"), "english", document.toString()); - Assert.assertEquals(document.get("language_override"), "nativeTongue", document.toString()); - Assert.assertEquals(((Document) document.get("weights")).get("nickName"), 10, document.toString()); + Assertions.assertEquals("english", document.get("default_language"), document.toString()); + Assertions.assertEquals("nativeTongue", document.get("language_override"), document.toString()); + Assertions.assertEquals(10, ((Document) document.get("weights")).get("nickName"), document.toString()); } } - Assert.assertTrue(found, indexInfo.toString()); + Assertions.assertTrue(found, indexInfo.toString()); } diff --git a/core/src/test/java/dev/morphia/test/internal/PathTargetTest.java b/core/src/test/java/dev/morphia/test/internal/PathTargetTest.java index 04e0220944e..d171492c458 100644 --- a/core/src/test/java/dev/morphia/test/internal/PathTargetTest.java +++ b/core/src/test/java/dev/morphia/test/internal/PathTargetTest.java @@ -39,8 +39,8 @@ import dev.morphia.test.models.generics.FatherEntity; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static java.util.Arrays.asList; @@ -53,11 +53,11 @@ public void arrays() { EntityModel entityModel = mapper.getEntityModel(EntityWithListsAndArrays.class); PathTarget pathTarget = new PathTarget(mapper, entityModel, "listEmbeddedType.1.anotherField"); - Assert.assertEquals(pathTarget.translatedPath(), "listEmbeddedType.1.anotherField"); - Assert.assertEquals(mapper.getEntityModel(Another.class).getProperty("anotherField"), pathTarget.target()); + Assertions.assertEquals("listEmbeddedType.1.anotherField", pathTarget.translatedPath()); + Assertions.assertEquals(pathTarget.target(), mapper.getEntityModel(Another.class).getProperty("anotherField")); - Assert.assertEquals(new PathTarget(mapper, entityModel, "listEmbeddedType.$").translatedPath(), "listEmbeddedType.$"); - Assert.assertEquals(new PathTarget(mapper, entityModel, "listEmbeddedType.1").translatedPath(), "listEmbeddedType.1"); + Assertions.assertEquals("listEmbeddedType.$", new PathTarget(mapper, entityModel, "listEmbeddedType.$").translatedPath()); + Assertions.assertEquals("listEmbeddedType.1", new PathTarget(mapper, entityModel, "listEmbeddedType.1").translatedPath()); }); } @@ -67,8 +67,8 @@ public void disableValidation() { Mapper mapper = getMapper(); final PathTarget pathTarget = new PathTarget(mapper, FatherEntity.class, "nested.field.fail", false); - Assert.assertEquals(pathTarget.translatedPath(), "nested.field.fail"); - Assert.assertNull(pathTarget.target()); + Assertions.assertEquals("nested.field.fail", pathTarget.translatedPath()); + Assertions.assertNull(pathTarget.target()); }); } @@ -78,8 +78,8 @@ public void dottedPath() { Mapper mapper = getMapper(); PathTarget pathTarget = new PathTarget(mapper, State.class, "biggestCity.population"); - Assert.assertEquals(pathTarget.translatedPath(), "biggestCity.pop"); - Assert.assertEquals(mapper.getEntityModel(CityPopulation.class).getProperty("population"), pathTarget.target()); + Assertions.assertEquals("biggestCity.pop", pathTarget.translatedPath()); + Assertions.assertEquals(pathTarget.target(), mapper.getEntityModel(CityPopulation.class).getProperty("population")); }); } @@ -92,12 +92,12 @@ public void interfaces() { EntityModel entityModel = mapper.getEntityModel(HoldsAnInterface.class); PathTarget pathTarget = new PathTarget(mapper, entityModel, "mapped.value"); - Assert.assertEquals(pathTarget.translatedPath(), "mapped.value"); - Assert.assertEquals(mapper.getEntityModel(InterfaceTypeB.class).getProperty("value"), pathTarget.target()); + Assertions.assertEquals("mapped.value", pathTarget.translatedPath()); + Assertions.assertEquals(pathTarget.target(), mapper.getEntityModel(InterfaceTypeB.class).getProperty("value")); pathTarget = new PathTarget(mapper, entityModel, "mapped.field"); - Assert.assertEquals(pathTarget.translatedPath(), "mapped.field"); - Assert.assertEquals(mapper.getEntityModel(InterfaceTypeA.class).getProperty("field"), pathTarget.target()); + Assertions.assertEquals("mapped.field", pathTarget.translatedPath()); + Assertions.assertEquals(pathTarget.target(), mapper.getEntityModel(InterfaceTypeA.class).getProperty("field")); }); } @@ -108,12 +108,12 @@ public void maps() { EntityModel entityModel = mapper.getEntityModel(Student.class); PathTarget pathTarget = new PathTarget(mapper, entityModel, "grades.$.data.name"); - Assert.assertEquals(pathTarget.translatedPath(), "grades.$.d.name"); - Assert.assertEquals(mapper.getEntityModel(Grade.class).getProperty("data"), pathTarget.target()); + Assertions.assertEquals("grades.$.d.name", pathTarget.translatedPath()); + Assertions.assertEquals(pathTarget.target(), mapper.getEntityModel(Grade.class).getProperty("data")); pathTarget = new PathTarget(mapper, entityModel, "grades.$.d.name"); - Assert.assertEquals(pathTarget.translatedPath(), "grades.$.d.name"); - Assert.assertEquals(mapper.getEntityModel(Grade.class).getProperty("d"), pathTarget.target()); + Assertions.assertEquals("grades.$.d.name", pathTarget.translatedPath()); + Assertions.assertEquals(pathTarget.target(), mapper.getEntityModel(Grade.class).getProperty("d")); }); } @@ -124,12 +124,12 @@ public void propertyNameResolution() { EntityModel entityModel = mapper.getEntityModel(City.class); PathTarget pathTarget = new PathTarget(mapper, entityModel, "name"); - Assert.assertEquals(pathTarget.translatedPath(), "city"); - Assert.assertEquals(entityModel.getProperty("name"), pathTarget.target()); + Assertions.assertEquals("city", pathTarget.translatedPath()); + Assertions.assertEquals(pathTarget.target(), entityModel.getProperty("name")); pathTarget = new PathTarget(mapper, entityModel, "city"); - Assert.assertEquals(pathTarget.translatedPath(), "city"); - Assert.assertEquals(entityModel.getProperty("city"), pathTarget.target()); + Assertions.assertEquals("city", pathTarget.translatedPath()); + Assertions.assertEquals(pathTarget.target(), entityModel.getProperty("city")); }); } @@ -139,8 +139,8 @@ public void subClasses() { Mapper mapper = getMapper(); PathTarget pathTarget = new PathTarget(mapper, FatherEntity.class, "embedded.anotherField"); - Assert.assertEquals(pathTarget.translatedPath(), "embedded.anotherField"); - Assert.assertEquals(mapper.getEntityModel(Another.class).getProperty("anotherField"), pathTarget.target()); + Assertions.assertEquals("embedded.anotherField", pathTarget.translatedPath()); + Assertions.assertEquals(pathTarget.target(), mapper.getEntityModel(Another.class).getProperty("anotherField")); }); } diff --git a/core/src/test/java/dev/morphia/test/lifecycle/TestLifecycles.java b/core/src/test/java/dev/morphia/test/lifecycle/TestLifecycles.java index f907ccdd9f4..7145c041556 100644 --- a/core/src/test/java/dev/morphia/test/lifecycle/TestLifecycles.java +++ b/core/src/test/java/dev/morphia/test/lifecycle/TestLifecycles.java @@ -28,14 +28,12 @@ import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static java.lang.String.format; import static java.util.Arrays.asList; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertTrue; @SuppressWarnings({ "resource", "DataFlowIssue", "unused", "removal" }) public class TestLifecycles extends TestBase { @@ -54,8 +52,8 @@ public void ensureDateConfigurationIsAppliedEverywhere() { SimpleBean reloaded = getDs().find(SimpleBean.class).first(); - Assert.assertEquals(reloaded.ldt.getHour(), simpleBean.ldt.getHour(), format("'%s' vs '%s'", reloaded.ldt, simpleBean.ldt)); - Assert.assertEquals(reloaded.date, simpleBean.date, format("'%s' vs '%s'", reloaded.date, simpleBean.date)); + Assertions.assertEquals(simpleBean.ldt.getHour(), reloaded.ldt.getHour(), format("'%s' vs '%s'", reloaded.ldt, simpleBean.ldt)); + Assertions.assertEquals(simpleBean.date, reloaded.date, format("'%s' vs '%s'", reloaded.date, simpleBean.date)); }); } @@ -66,8 +64,8 @@ public void classMethodPairings() { var parent = getMapper().getEntityModel(Parent.class); var child = getMapper().getEntityModel(Child.class); - assertTrue(parent.hasLifecycle(PrePersist.class)); - assertFalse(child.hasLifecycle(PrePersist.class)); + Assertions.assertTrue(parent.hasLifecycle(PrePersist.class)); + Assertions.assertFalse(child.hasLifecycle(PrePersist.class)); }); } @@ -77,51 +75,51 @@ public void testCallbackMethods() { a.b = new LifecycleB(); a.bs.add(new LifecycleB()); - Assert.assertFalse(a.isPostLoad()); - Assert.assertFalse(a.b.isPostLoad()); - Assert.assertFalse(a.bs.get(0).isPostLoad()); + Assertions.assertFalse(a.isPostLoad()); + Assertions.assertFalse(a.b.isPostLoad()); + Assertions.assertFalse(a.bs.get(0).isPostLoad()); - Assert.assertFalse(a.isPostPersist()); - Assert.assertFalse(a.b.isPostPersist()); - Assert.assertFalse(a.bs.get(0).isPostPersist()); + Assertions.assertFalse(a.isPostPersist()); + Assertions.assertFalse(a.b.isPostPersist()); + Assertions.assertFalse(a.bs.get(0).isPostPersist()); - Assert.assertFalse(a.isPreLoad()); - Assert.assertFalse(a.b.isPreLoad()); - Assert.assertFalse(a.bs.get(0).isPreLoad()); + Assertions.assertFalse(a.isPreLoad()); + Assertions.assertFalse(a.b.isPreLoad()); + Assertions.assertFalse(a.bs.get(0).isPreLoad()); - Assert.assertFalse(a.isPrePersist()); - Assert.assertFalse(a.b.isPrePersist()); - Assert.assertFalse(a.bs.get(0).isPrePersist()); + Assertions.assertFalse(a.isPrePersist()); + Assertions.assertFalse(a.b.isPrePersist()); + Assertions.assertFalse(a.bs.get(0).isPrePersist()); getDs().save(a); - Assert.assertFalse(a.isPreLoad()); - Assert.assertFalse(a.b.isPreLoad()); - Assert.assertFalse(a.bs.get(0).isPreLoad()); + Assertions.assertFalse(a.isPreLoad()); + Assertions.assertFalse(a.b.isPreLoad()); + Assertions.assertFalse(a.bs.get(0).isPreLoad()); - Assert.assertTrue(a.isPostPersist()); - Assert.assertTrue(a.b.isPostPersist()); //PostPersist in not only called on entities - Assert.assertTrue(a.bs.get(0).isPostPersist()); //PostPersist is not only called on entities + Assertions.assertTrue(a.isPostPersist()); + Assertions.assertTrue(a.b.isPostPersist()); //PostPersist in not only called on entities + Assertions.assertTrue(a.bs.get(0).isPostPersist()); //PostPersist is not only called on entities - Assert.assertFalse(a.isPreLoad()); - Assert.assertFalse(a.b.isPreLoad()); - Assert.assertFalse(a.bs.get(0).isPreLoad()); + Assertions.assertFalse(a.isPreLoad()); + Assertions.assertFalse(a.b.isPreLoad()); + Assertions.assertFalse(a.bs.get(0).isPreLoad()); - Assert.assertTrue(a.isPrePersist()); - Assert.assertTrue(a.b.isPrePersist()); - Assert.assertTrue(a.bs.get(0).isPrePersist()); + Assertions.assertTrue(a.isPrePersist()); + Assertions.assertTrue(a.b.isPrePersist()); + Assertions.assertTrue(a.bs.get(0).isPrePersist()); a = getDs().find(LifecyleA.class) .filter(eq("_id", a.id)).iterator() .tryNext(); - Assert.assertTrue(a.isPostLoad()); - Assert.assertTrue(a.b.isPostLoad()); - Assert.assertTrue(a.bs.get(0).isPostLoad()); + Assertions.assertTrue(a.isPostLoad()); + Assertions.assertTrue(a.b.isPostLoad()); + Assertions.assertTrue(a.bs.get(0).isPostLoad()); - Assert.assertTrue(a.isPreLoad()); - Assert.assertTrue(a.b.isPreLoad()); - Assert.assertTrue(a.bs.get(0).isPreLoad()); + Assertions.assertTrue(a.isPreLoad()); + Assertions.assertTrue(a.b.isPreLoad()); + Assertions.assertTrue(a.bs.get(0).isPreLoad()); } @Test @@ -132,7 +130,7 @@ public void testGlobalInterceptorRunsAfterEntityCallback() { getDs().save(new ValidNullHolder()); try { getDs().save(new InvalidNullHolder()); - Assert.fail(); + Assertions.fail(); } catch (NonNullValidationException e) { // expected } @@ -142,13 +140,13 @@ public void testGlobalInterceptorRunsAfterEntityCallback() { @Test public void testMultipleCallbackAnnotation() { final SomeEntity entity = new SomeEntity(); - Assert.assertFalse(entity.isPersistent()); + Assertions.assertFalse(entity.isPersistent()); getDs().save(entity); - Assert.assertTrue(entity.isPersistent()); + Assertions.assertTrue(entity.isPersistent()); final SomeEntity reloaded = getDs().find(SomeEntity.class) .filter(eq("id", entity.getId())).iterator() .tryNext(); - Assert.assertTrue(reloaded.isPersistent()); + Assertions.assertTrue(reloaded.isPersistent()); } @Test @@ -157,9 +155,9 @@ public void testWithGeoJson() { asList(new Position(0d, 0d), new Position(1d, 1d), new Position(2d, 2d), new Position(3d, 3d), new Position(0d, 0d))); getDs().save(new HoldsPolygon(ObjectId.get(), polygon)); - Assert.assertFalse(HoldsPolygon.lifecycle); - Assert.assertNotNull(getDs().find(HoldsPolygon.class).first()); - Assert.assertTrue(HoldsPolygon.lifecycle); + Assertions.assertFalse(HoldsPolygon.lifecycle); + Assertions.assertNotNull(getDs().find(HoldsPolygon.class).first()); + Assertions.assertTrue(HoldsPolygon.lifecycle); } private static class Callbacks { diff --git a/core/src/test/java/dev/morphia/test/lifecycle/TestParentChildDisambiguation.java b/core/src/test/java/dev/morphia/test/lifecycle/TestParentChildDisambiguation.java index 34ac9865e56..df74bf56b36 100644 --- a/core/src/test/java/dev/morphia/test/lifecycle/TestParentChildDisambiguation.java +++ b/core/src/test/java/dev/morphia/test/lifecycle/TestParentChildDisambiguation.java @@ -12,8 +12,8 @@ import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.updates.UpdateOperators.setOnInsert; @@ -29,9 +29,9 @@ public void testUpdate() { setOnInsert(Map.of("name", "Fred"))); Parent parent = getDs().find(Parent.class).filter(Filters.eq("name", "Fred")).first(); - Assert.assertNotNull(parent); - Assert.assertNotNull(parent.child); - Assert.assertEquals(parent.child.color, "purple"); + Assertions.assertNotNull(parent); + Assertions.assertNotNull(parent.child); + Assertions.assertEquals("purple", parent.child.color); }); } } diff --git a/core/src/test/java/dev/morphia/test/mapping/InstanceCreationTest.java b/core/src/test/java/dev/morphia/test/mapping/InstanceCreationTest.java index cda06dccbfb..b7bbf14fff6 100644 --- a/core/src/test/java/dev/morphia/test/mapping/InstanceCreationTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/InstanceCreationTest.java @@ -3,9 +3,8 @@ import dev.morphia.test.TestBase; import dev.morphia.test.models.Author; -import org.testng.annotations.Test; - -import static org.testng.Assert.assertEquals; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class InstanceCreationTest extends TestBase { @Test @@ -14,6 +13,6 @@ public void basicReference() { getDs().save(author); final Author loaded = getDs().find(Author.class).iterator().tryNext(); - assertEquals(author, loaded); + Assertions.assertEquals(loaded, author); } } diff --git a/core/src/test/java/dev/morphia/test/mapping/Java8EntityTest.java b/core/src/test/java/dev/morphia/test/mapping/Java8EntityTest.java index dda3ac7a9a8..8c21a5b3d4b 100644 --- a/core/src/test/java/dev/morphia/test/mapping/Java8EntityTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/Java8EntityTest.java @@ -30,8 +30,8 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.filters.Filters.lte; @@ -53,11 +53,11 @@ public void dateForm() { Java8Entity created2 = createEntity(getDs(), null, localDate, localDateTime, null); final Java8Entity loaded2 = getDs().find(Java8Entity.class).first(); - Assert.assertNotEquals(created, created2); - Assert.assertEquals(loaded.getLocalDate(), loaded2.getLocalDate()); - Assert.assertEquals(loaded.getLocalDateTime(), loaded2.getLocalDateTime()); + Assertions.assertNotEquals(created2, created); + Assertions.assertEquals(loaded2.getLocalDate(), loaded.getLocalDate()); + Assertions.assertEquals(loaded2.getLocalDateTime(), loaded.getLocalDateTime()); - Assert.assertEquals(loaded.getLocalDate(), loaded3.getLocalDate()); + Assertions.assertEquals(loaded3.getLocalDate(), loaded.getLocalDate()); } @Test @@ -89,16 +89,16 @@ public void rangeQueries() { localDateTime.plus(i, DAYS), localTime.plus(i, ChronoUnit.HOURS)); } - Assert.assertEquals(getDs().find(Java8Entity.class).filter(lte("instant", instant.plus(1, DAYS))).count(), 2L); - Assert.assertEquals(getDs().find(Java8Entity.class).filter(eq("localDate", localDate.plus(1, DAYS))).count(), 1L); - Assert.assertEquals(getDs().find(Java8Entity.class).filter(eq("localDate", localDate.minus(1, DAYS))).count(), 0L); - Assert.assertEquals(getDs().find(Java8Entity.class).filter(ne("localDateTime", localDateTime.plus(6, DAYS))).count(), 9L); + Assertions.assertEquals(2L, getDs().find(Java8Entity.class).filter(lte("instant", instant.plus(1, DAYS))).count()); + Assertions.assertEquals(1L, getDs().find(Java8Entity.class).filter(eq("localDate", localDate.plus(1, DAYS))).count()); + Assertions.assertEquals(0L, getDs().find(Java8Entity.class).filter(eq("localDate", localDate.minus(1, DAYS))).count()); + Assertions.assertEquals(9L, getDs().find(Java8Entity.class).filter(ne("localDateTime", localDateTime.plus(6, DAYS))).count()); } private void compare(Datastore datastore, Java8Entity entity, String field, Object value) { Query query = datastore.find(Java8Entity.class, new FindOptions().logQuery().limit(1)) .filter(eq(field, value)); - Assert.assertEquals(query.first(), entity, query.getLoggedQuery()); + Assertions.assertEquals(entity, query.first(), query.getLoggedQuery()); } private Java8Entity createEntity(Datastore ds, Instant instant, LocalDate localDate, diff --git a/core/src/test/java/dev/morphia/test/mapping/LocaleMappingTest.java b/core/src/test/java/dev/morphia/test/mapping/LocaleMappingTest.java index 509a77cd7e1..889ae673ebb 100644 --- a/core/src/test/java/dev/morphia/test/mapping/LocaleMappingTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/LocaleMappingTest.java @@ -11,10 +11,10 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; -import static org.testng.Assert.assertEquals; public class LocaleMappingTest extends TestBase { @@ -31,15 +31,15 @@ public void testLocaleMapping() { .filter(eq("_id", e.id)) .first(); - assertEquals(e.l1, Locale.CANADA_FRENCH); + Assertions.assertEquals(Locale.CANADA_FRENCH, e.l1); - assertEquals(e.l2.size(), 2); - assertEquals(e.l2.get(0), Locale.GERMANY); - assertEquals(e.l2.get(1), Locale.TRADITIONAL_CHINESE); + Assertions.assertEquals(2, e.l2.size()); + Assertions.assertEquals(Locale.GERMANY, e.l2.get(0)); + Assertions.assertEquals(Locale.TRADITIONAL_CHINESE, e.l2.get(1)); - assertEquals(e.l3.length, 2); - assertEquals(e.l3[0], Locale.TRADITIONAL_CHINESE); - assertEquals(e.l3[1], Locale.FRENCH); + Assertions.assertEquals(2, e.l3.length); + Assertions.assertEquals(Locale.TRADITIONAL_CHINESE, e.l3[0]); + Assertions.assertEquals(Locale.FRENCH, e.l3[1]); } diff --git a/core/src/test/java/dev/morphia/test/mapping/MapWithNonStringKeyAndReferenceValueTest.java b/core/src/test/java/dev/morphia/test/mapping/MapWithNonStringKeyAndReferenceValueTest.java index 96dbe7befd7..a81ec34dc9e 100644 --- a/core/src/test/java/dev/morphia/test/mapping/MapWithNonStringKeyAndReferenceValueTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/MapWithNonStringKeyAndReferenceValueTest.java @@ -7,15 +7,14 @@ import dev.morphia.annotations.Reference; import dev.morphia.test.models.TestEntity; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static java.util.Arrays.asList; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; -@Test(groups = "references") +@Tag("references") public class MapWithNonStringKeyAndReferenceValueTest extends ProxyTestBase { @Test public void testMapKeyShouldBeInteger() { @@ -33,13 +32,13 @@ public void testMapKeyShouldBeInteger() { getDs().save(asList(ce1, ce2, pe)); final ParentEntity fetched = getDs().find(ParentEntity.class).filter(eq("_id", pe.getId())).first(); - assertNotNull(fetched); - assertNotNull(fetched.childMap); - assertEquals(fetched.childMap.size(), 2); + Assertions.assertNotNull(fetched); + Assertions.assertNotNull(fetched.childMap); + Assertions.assertEquals(2, fetched.childMap.size()); //it is really String without fixing the reference mapper //so ignore IDE's complains if any Set set = fetched.childMap.keySet(); - assertTrue(set.iterator().next() != null); + Assertions.assertTrue(set.iterator().next() != null); } @Test @@ -62,12 +61,12 @@ public void testWithProxy() { final ParentEntity fetched = getDs().find(ParentEntity.class) .filter(eq("_id", pe.getId())) .first(); - assertNotNull(fetched); + Assertions.assertNotNull(fetched); assertIsProxy(fetched.lazyChildMap); assertNotFetched(fetched.lazyChildMap); - assertEquals(fetched.lazyChildMap.size(), 2); + Assertions.assertEquals(2, fetched.lazyChildMap.size()); assertNotFetched(fetched.lazyChildMap); - assertNotNull(fetched.lazyChildMap.keySet().iterator().next()); + Assertions.assertNotNull(fetched.lazyChildMap.keySet().iterator().next()); } private static class ParentEntity extends TestEntity { diff --git a/core/src/test/java/dev/morphia/test/mapping/NamingStrategyTest.java b/core/src/test/java/dev/morphia/test/mapping/NamingStrategyTest.java index 2c637712cb3..010c399ba23 100644 --- a/core/src/test/java/dev/morphia/test/mapping/NamingStrategyTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/NamingStrategyTest.java @@ -3,16 +3,16 @@ import dev.morphia.mapping.NamingStrategy; import dev.morphia.test.TestBase; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class NamingStrategyTest extends TestBase { @Test public void apply() { - Assert.assertEquals(NamingStrategy.identity().apply("TestValue"), "TestValue", "Should be unchanged"); - Assert.assertEquals(NamingStrategy.snakeCase().apply("TestValue"), "test_value", "Should be in snake case"); - Assert.assertEquals(NamingStrategy.camelCase().apply("TestValue"), "testValue", "Should be in camel case"); - Assert.assertEquals(NamingStrategy.kebabCase().apply("TestValue"), "test-value", "Should be in kebab case"); - Assert.assertEquals(NamingStrategy.lowerCase().apply("TestValue"), "testvalue", "Should be in lower case"); + Assertions.assertEquals("TestValue", NamingStrategy.identity().apply("TestValue"), "Should be unchanged"); + Assertions.assertEquals("test_value", NamingStrategy.snakeCase().apply("TestValue"), "Should be in snake case"); + Assertions.assertEquals("testValue", NamingStrategy.camelCase().apply("TestValue"), "Should be in camel case"); + Assertions.assertEquals("test-value", NamingStrategy.kebabCase().apply("TestValue"), "Should be in kebab case"); + Assertions.assertEquals("testvalue", NamingStrategy.lowerCase().apply("TestValue"), "Should be in lower case"); } } \ No newline at end of file diff --git a/core/src/test/java/dev/morphia/test/mapping/PolymorphismWithGenericsTest.java b/core/src/test/java/dev/morphia/test/mapping/PolymorphismWithGenericsTest.java index 51365bafe22..3a0647fb2e8 100644 --- a/core/src/test/java/dev/morphia/test/mapping/PolymorphismWithGenericsTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/PolymorphismWithGenericsTest.java @@ -5,7 +5,7 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Test; public class PolymorphismWithGenericsTest extends TestBase { diff --git a/core/src/test/java/dev/morphia/test/mapping/ProxyTestBase.java b/core/src/test/java/dev/morphia/test/mapping/ProxyTestBase.java index 03f83fc2fe1..74ed7f06656 100644 --- a/core/src/test/java/dev/morphia/test/mapping/ProxyTestBase.java +++ b/core/src/test/java/dev/morphia/test/mapping/ProxyTestBase.java @@ -3,19 +3,19 @@ import dev.morphia.mapping.codec.references.MorphiaProxy; import dev.morphia.test.TestBase; -import org.testng.Assert; +import org.junit.jupiter.api.Assertions; public class ProxyTestBase extends TestBase { protected void assertFetched(Object e) { - Assert.assertTrue(isFetched(e)); + Assertions.assertTrue(isFetched(e)); } protected void assertIsProxy(Object p) { - Assert.assertTrue(p instanceof MorphiaProxy, "Should be a proxy: " + p.getClass()); + Assertions.assertTrue(p instanceof MorphiaProxy, "Should be a proxy: " + p.getClass()); } protected void assertNotFetched(Object e) { - Assert.assertFalse(isFetched(e)); + Assertions.assertFalse(isFetched(e)); } private MorphiaProxy asMorphiaProxy(Object e) { diff --git a/core/src/test/java/dev/morphia/test/mapping/TestCommonTypes.java b/core/src/test/java/dev/morphia/test/mapping/TestCommonTypes.java index 1528f311799..82010f3aab1 100644 --- a/core/src/test/java/dev/morphia/test/mapping/TestCommonTypes.java +++ b/core/src/test/java/dev/morphia/test/mapping/TestCommonTypes.java @@ -11,10 +11,8 @@ import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.annotations.Test; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class TestCommonTypes extends TestBase { @Test @@ -23,7 +21,7 @@ public void testBigDecimal() { money.amount = new BigDecimal("123456.7890"); getDs().save(money); - assertNotNull(getDs().find(Money.class).first()); + Assertions.assertNotNull(getDs().find(Money.class).first()); MongoCollection collection = getDs() .getCollection(Money.class) @@ -35,7 +33,7 @@ public void testBigDecimal() { List monies = getDs().find(Money.class).iterator().toList(); - assertEquals(monies.get(0).amount, monies.get(1).amount); + Assertions.assertEquals(monies.get(1).amount, monies.get(0).amount); } @Entity diff --git a/core/src/test/java/dev/morphia/test/mapping/TestEntityModel.java b/core/src/test/java/dev/morphia/test/mapping/TestEntityModel.java index c044724355a..8edd2f99606 100644 --- a/core/src/test/java/dev/morphia/test/mapping/TestEntityModel.java +++ b/core/src/test/java/dev/morphia/test/mapping/TestEntityModel.java @@ -12,11 +12,10 @@ import dev.morphia.test.models.generics.EmbeddedType; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static java.util.List.of; -import static org.testng.Assert.assertEquals; @SuppressWarnings("DataFlowIssue") public class TestEntityModel extends TestBase { @@ -26,7 +25,7 @@ public void childParentPairings() { .packages(of(ChildLevel3a.class.getPackageName())), () -> { EntityModel entityModel = getMapper().getEntityModel(RootParent.class); Set subtypes = entityModel.getSubtypes(); - assertEquals(subtypes.size(), 6); + Assertions.assertEquals(6, subtypes.size()); checkParent(RootParent.class, ChildLevel1a.class, ChildLevel1b.class, ChildLevel1c.class); checkParent(ChildLevel1a.class, ChildLevel2a.class, ChildLevel2b.class); checkParent(ChildLevel2b.class, ChildLevel3a.class); @@ -36,7 +35,7 @@ public void childParentPairings() { private void checkParent(Class parent, Class... classes) { for (var klass : classes) { - assertEquals(getMapper().getEntityModel(klass).getSuperClass().getType(), parent); + Assertions.assertEquals(parent, getMapper().getEntityModel(klass).getSuperClass().getType()); } } @@ -46,8 +45,8 @@ public void subTypes() { Mapper mapper = getMapper(); Set subTypes = mapper.getEntityModel(EmbeddedType.class).getSubtypes(); - Assert.assertTrue(subTypes.contains(mapper.getEntityModel(Another.class))); - Assert.assertTrue(subTypes.contains(mapper.getEntityModel(Child.class))); + Assertions.assertTrue(subTypes.contains(mapper.getEntityModel(Another.class))); + Assertions.assertTrue(subTypes.contains(mapper.getEntityModel(Child.class))); } @Entity diff --git a/core/src/test/java/dev/morphia/test/mapping/TestEnumMapping.java b/core/src/test/java/dev/morphia/test/mapping/TestEnumMapping.java index 811c4dbffff..171b74cb689 100644 --- a/core/src/test/java/dev/morphia/test/mapping/TestEnumMapping.java +++ b/core/src/test/java/dev/morphia/test/mapping/TestEnumMapping.java @@ -12,11 +12,10 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; -import static org.testng.Assert.assertEquals; public class TestEnumMapping extends TestBase { @@ -29,7 +28,7 @@ public void getMapOfEnum() { getMapper().map(Class1.class); entity = getDs().find(Class1.class).first(); - Assert.assertNotNull(entity.map.get("key")); + Assertions.assertNotNull(entity.map.get("key")); } @Test @@ -42,7 +41,7 @@ public void testCustomer() { Customer loaded = getDs().find(Customer.class) .filter(eq("_id", customer.id)) .first(); - assertEquals(loaded.map, customer.map); + Assertions.assertEquals(customer.map, loaded.map); } @Test @@ -71,7 +70,7 @@ public void testCustomerWithArrayList() { .filter(eq("_id", customer.id)) .first(); - assertEquals(loaded.mapWithArrayList, customer.mapWithArrayList); + Assertions.assertEquals(customer.mapWithArrayList, loaded.mapWithArrayList); }); } @@ -103,7 +102,7 @@ public void testCustomerWithList() { .filter(eq("_id", customer.id)) .first(); - assertEquals(loaded.mapWithList, customer.mapWithList); + Assertions.assertEquals(customer.mapWithList, loaded.mapWithList); }); } @@ -112,10 +111,10 @@ public void testEnumMapping() { getMapper().map(ContainsEnum.class); getDs().save(new ContainsEnum()); - assertEquals(getDs().find(ContainsEnum.class).filter(eq("foo", Foo.BAR)) - .count(), 1); - assertEquals(getDs().find(ContainsEnum.class).disableValidation().filter(eq("foo", Foo.BAR)) - .count(), 1); + Assertions.assertEquals(1, getDs().find(ContainsEnum.class).filter(eq("foo", Foo.BAR)) + .count()); + Assertions.assertEquals(1, getDs().find(ContainsEnum.class).disableValidation().filter(eq("foo", Foo.BAR)) + .count()); } private enum Foo { diff --git a/core/src/test/java/dev/morphia/test/mapping/TestIgnoreMissingReferences.java b/core/src/test/java/dev/morphia/test/mapping/TestIgnoreMissingReferences.java index 8a57b5dee5a..9c476b183ab 100644 --- a/core/src/test/java/dev/morphia/test/mapping/TestIgnoreMissingReferences.java +++ b/core/src/test/java/dev/morphia/test/mapping/TestIgnoreMissingReferences.java @@ -8,14 +8,15 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -@Test(groups = "references") +@Tag("references") public class TestIgnoreMissingReferences extends TestBase { + @Test public void testMissingReference() { final Container c = new Container(); c.refs = new StringHolder[] { new StringHolder(), new StringHolder() }; @@ -24,20 +25,20 @@ public void testMissingReference() { Container reloadedContainer = getDs().find(Container.class).iterator() .tryNext(); - assertNotNull(reloadedContainer); - assertNotNull(reloadedContainer.refs); - assertEquals(reloadedContainer.refs.length, 1); + Assertions.assertNotNull(reloadedContainer); + Assertions.assertNotNull(reloadedContainer.refs); + Assertions.assertEquals(1, reloadedContainer.refs.length); reloadedContainer = getDs().find(Container.class) .filter(eq("_id", c.id)) .first(); - assertNotNull(reloadedContainer); - assertNotNull(reloadedContainer.refs); - assertEquals(reloadedContainer.refs.length, 1); + Assertions.assertNotNull(reloadedContainer); + Assertions.assertNotNull(reloadedContainer.refs); + Assertions.assertEquals(1, reloadedContainer.refs.length); final List cs = getDs().find(Container.class).iterator().toList(); - assertNotNull(cs); - assertEquals(cs.size(), 1); + Assertions.assertNotNull(cs); + Assertions.assertEquals(1, cs.size()); } diff --git a/core/src/test/java/dev/morphia/test/mapping/TestMapper.java b/core/src/test/java/dev/morphia/test/mapping/TestMapper.java index e96e7758c3e..fbf42c9575d 100644 --- a/core/src/test/java/dev/morphia/test/mapping/TestMapper.java +++ b/core/src/test/java/dev/morphia/test/mapping/TestMapper.java @@ -9,24 +9,20 @@ import dev.morphia.test.TestBase; import dev.morphia.test.models.generics.ChildEntity; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static java.lang.String.format; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNotSame; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; public class TestMapper extends TestBase { @Test public void testMapperCopying() { withConfig(buildConfig(ChildEntity.class), () -> { Mapper mapper = getMapper(); - assertFalse(mapper.getMappedEntities().isEmpty()); + Assertions.assertFalse(mapper.getMappedEntities().isEmpty()); var cloned = mapper.copy(); - assertEquals(cloned.getMappedEntities().size(), mapper.getMappedEntities().size(), + Assertions.assertEquals(mapper.getMappedEntities().size(), cloned.getMappedEntities().size(), "Should find an equal number of mapped entities"); mapper.getMappedEntities().forEach(originalEntity -> { assertModelNotSame(originalEntity, cloned.getEntityModel(originalEntity.getType())); @@ -41,13 +37,13 @@ public void testMapperTypeProducesCorrectModelTypes() { withConfig(buildConfig(), () -> { Mapper mapper = getMapper(); EntityModel model = mapper.mapEntity(CritterMapperTestEntity.class); - assertFalse(mapper.getMappedEntities().isEmpty()); + Assertions.assertFalse(mapper.getMappedEntities().isEmpty()); if (configuredType == MapperType.CRITTER) { - assertTrue(model instanceof CritterEntityModel, + Assertions.assertTrue(model instanceof CritterEntityModel, format("Expected CritterEntityModel for CRITTER mapper but got %s", model.getClass().getName())); } else { - assertFalse(model instanceof CritterEntityModel, + Assertions.assertFalse(model instanceof CritterEntityModel, format("Expected plain EntityModel for REFLECTION mapper but got CritterEntityModel for %s", model.getType().getName())); } @@ -55,18 +51,18 @@ public void testMapperTypeProducesCorrectModelTypes() { } private static void assertModelNotSame(EntityModel originalEntity, EntityModel clonedEntity) { - assertNotSame(originalEntity, clonedEntity, + Assertions.assertNotSame(clonedEntity, originalEntity, format("The models for %s should not be the same object reference", clonedEntity.getType().getName())); if (originalEntity.superClass == null) { - assertNull(clonedEntity.superClass, "Cloned entity's superClass should also be null"); + Assertions.assertNull(clonedEntity.superClass, "Cloned entity's superClass should also be null"); } else { - assertNotSame(originalEntity.superClass, clonedEntity.superClass); + Assertions.assertNotSame(clonedEntity.superClass, originalEntity.superClass); } originalEntity.getSubtypes().forEach(subtype -> { - assertNotSame(subtype, findSubtype(clonedEntity, subtype)); + Assertions.assertNotSame(findSubtype(clonedEntity, subtype), subtype); }); originalEntity.getProperties().forEach(propertyModel -> { - assertNotSame(propertyModel, clonedEntity.getProperty(propertyModel.getName()), + Assertions.assertNotSame(clonedEntity.getProperty(propertyModel.getName()), propertyModel, format("The %s property on %s should not be the same", propertyModel.getName(), originalEntity.getType().getName())); }); } diff --git a/core/src/test/java/dev/morphia/test/mapping/TestMapping.java b/core/src/test/java/dev/morphia/test/mapping/TestMapping.java index 03ab741c351..fd8bab66e7e 100644 --- a/core/src/test/java/dev/morphia/test/mapping/TestMapping.java +++ b/core/src/test/java/dev/morphia/test/mapping/TestMapping.java @@ -10,6 +10,7 @@ import java.util.Set; import java.util.StringJoiner; import java.util.stream.Collectors; +import java.util.stream.Stream; import com.mongodb.client.model.Filters; @@ -64,40 +65,35 @@ import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Ignore; -import org.testng.annotations.Test; - -import static dev.morphia.mapping.PropertyDiscovery.*; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +import static dev.morphia.mapping.PropertyDiscovery.FIELDS; import static dev.morphia.mapping.PropertyDiscovery.METHODS; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.filters.Filters.exists; import static java.util.List.of; import static java.util.stream.Collectors.toList; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertThrows; -import static org.testng.Assert.assertTrue; -import static org.testng.Assert.fail; @SuppressWarnings({ "unchecked", "unused" }) public class TestMapping extends TestBase { - @DataProvider - public static Object[][] discovery() { - return new Object[][] { - new Object[] { buildConfig() + static Stream discovery() { + return Stream.of( + Arguments.of(buildConfig() .packages(of(ShadowedGrandParent.class.getPackageName())) - .propertyDiscovery(FIELDS) }, - new Object[] { buildConfig() + .propertyDiscovery(FIELDS)), + Arguments.of(buildConfig() .packages(of(ShadowedGrandParent.class.getPackageName())) - .propertyDiscovery(METHODS) } - }; + .propertyDiscovery(METHODS))); } - @Test(dataProvider = "discovery") + @ParameterizedTest + @MethodSource("discovery") public void testShadowing(MorphiaConfig config) { assumeTrue(config.propertyDiscovery() != FIELDS, "Shadowing only works with METHODS discovery"); withTestConfig(config, List.of(ShadowedGrandParent.class, ShadowedChild.class, ShadowedGrandChild.class), @@ -112,7 +108,7 @@ public void testShadowing(MorphiaConfig config) { private void checkShadowing(String name, Class classType, Class propertyType) { try { Class actual = getMapper().getEntityModel(classType).getProperty(name).getType(); - assertEquals(actual, propertyType, "Expected the field '%s' to be type '%s' on '%s' but was '%s'".formatted( + Assertions.assertEquals(propertyType, actual, "Expected the field '%s' to be type '%s' on '%s' but was '%s'".formatted( name, propertyType.getSimpleName(), classType.getSimpleName(), actual.getSimpleName())); } catch (NullPointerException e) { throw e; @@ -121,8 +117,8 @@ private void checkShadowing(String name, Class classType, Class propertyTy @Test public void childMapping() { - assertEquals(getMapper().getEntityModel(User.class).collectionName(), "users"); - assertEquals(getMapper().getEntityModel(BannedUser.class).collectionName(), "banned"); + Assertions.assertEquals("users", getMapper().getEntityModel(User.class).collectionName()); + Assertions.assertEquals("banned", getMapper().getEntityModel(BannedUser.class).collectionName()); } @Test @@ -130,16 +126,16 @@ public void collectionNaming() { withConfig(buildConfig() .packages(of(ContainsMapWithEmbeddedInterface.class.getPackageName())) .collectionNaming(NamingStrategy.lowerCase()), () -> { - assertEquals(getMapper().getEntityModel(ContainsMapWithEmbeddedInterface.class).collectionName(), - "containsmapwithembeddedinterface"); - assertEquals(getMapper().getEntityModel(ContainsIntegerList.class).collectionName(), "cil"); + Assertions.assertEquals("containsmapwithembeddedinterface", + getMapper().getEntityModel(ContainsMapWithEmbeddedInterface.class).collectionName()); + Assertions.assertEquals("cil", getMapper().getEntityModel(ContainsIntegerList.class).collectionName()); }); withConfig(buildConfig() .packages(of(ContainsMapWithEmbeddedInterface.class.getPackageName())) .collectionNaming(NamingStrategy.kebabCase()), () -> { - assertEquals(getMapper().getEntityModel(ContainsMapWithEmbeddedInterface.class).collectionName(), - "contains-map-with-embedded-interface"); - assertEquals(getMapper().getEntityModel(ContainsIntegerList.class).collectionName(), "cil"); + Assertions.assertEquals("contains-map-with-embedded-interface", + getMapper().getEntityModel(ContainsMapWithEmbeddedInterface.class).collectionName()); + Assertions.assertEquals("cil", getMapper().getEntityModel(ContainsIntegerList.class).collectionName()); }); } @@ -151,14 +147,16 @@ public void constructors() { getDs().save(of(value, instance)); ConstructorBased first = getDs().find(ConstructorBased.class).first(); - assertNotNull(first); - assertEquals(instance, first); + Assertions.assertNotNull(first); + Assertions.assertEquals(first, instance); } - @Test(expectedExceptions = MappingException.class) + @Test public final void multipleIds() { - withConfig(buildConfig().packages(of(TwoIds.class.getPackageName())), () -> { - getMapper().getEntityModel(TwoIds.class); + Assertions.assertThrows(MappingException.class, () -> { + withConfig(buildConfig().packages(of(TwoIds.class.getPackageName())), () -> { + getMapper().getEntityModel(TwoIds.class); + }); }); } @@ -180,25 +178,25 @@ public void shouldOnlyMapEntitiesInTheGivenPackage() { List list = getMapper().getMappedEntities(); Collection> classes = list.stream().map(EntityModel::getType) .collect(Collectors.toList()); - assertEquals(classes.size(), 3); - assertTrue(classes.contains(AbstractVersionedBase.class)); - assertTrue(classes.contains(Versioned.class)); - assertTrue(classes.contains(VersionedChildEntity.class)); + Assertions.assertEquals(3, classes.size()); + Assertions.assertTrue(classes.contains(AbstractVersionedBase.class)); + Assertions.assertTrue(classes.contains(Versioned.class)); + Assertions.assertTrue(classes.contains(VersionedChildEntity.class)); }); } @Test public void shouldSupportGenericArrays() { - assertNotNull(getMapper().getEntityModel(MyEntity.class)); + Assertions.assertNotNull(getMapper().getEntityModel(MyEntity.class)); } @Test public void subtypes() { EntityModel model = getMapper().getEntityModel(MappedInterface.class); - assertEquals(model.getSubtypes().size(), 1, "Should find 1 subtype: " + model); + Assertions.assertEquals(1, model.getSubtypes().size(), "Should find 1 subtype: " + model); model = getMapper().getEntityModel(User.class); - assertEquals(model.getSubtypes().size(), 1, "Should find 1 subtype: " + model); + Assertions.assertEquals(1, model.getSubtypes().size(), "Should find 1 subtype: " + model); } @Test @@ -209,39 +207,39 @@ public void testAlsoLoad() { final ContainsIntegerList cilLoaded = getDs().find(ContainsIntegerList.class) .filter(eq("_id", cil.id)) .first(); - assertNotNull(cilLoaded); - assertNotNull(cilLoaded.intList); - assertEquals(cilLoaded.intList.size(), cil.intList.size()); - assertEquals(cilLoaded.intList.get(0), cil.intList.get(0)); + Assertions.assertNotNull(cilLoaded); + Assertions.assertNotNull(cilLoaded.intList); + Assertions.assertEquals(cil.intList.size(), cilLoaded.intList.size()); + Assertions.assertEquals(cil.intList.get(0), cilLoaded.intList.get(0)); final ContainsIntegerListNew cilNew = getDs().find(ContainsIntegerListNew.class).filter(eq("_id", cil.id)).first(); - assertNotNull(cilNew); - assertNotNull(cilNew.integers); - assertEquals(cilNew.integers.size(), 1); - assertEquals((int) cil.intList.get(0), 1); + Assertions.assertNotNull(cilNew); + Assertions.assertNotNull(cilNew.integers); + Assertions.assertEquals(1, cilNew.integers.size()); + Assertions.assertEquals(1, (int) cil.intList.get(0)); } @Test public void testBadMappings() { withConfig(buildConfig() .packages(of(UnannotatedEntity.class.getPackageName())), () -> { - assertThrows(NotMappableException.class, () -> { + Assertions.assertThrows(NotMappableException.class, () -> { getMapper().getEntityModel(UnannotatedEntity.class); - fail("Missing @Entity and @Embedded should have been caught"); + Assertions.fail("Missing @Entity and @Embedded should have been caught"); }); }); withConfig(buildConfig() .packages(of(ThirdPartyEmbedded.class.getPackageName())), () -> { - assertThrows(NotMappableException.class, () -> { + Assertions.assertThrows(NotMappableException.class, () -> { getMapper().getEntityModel(ThirdPartyEmbedded.class); - fail("Missing @Entity and @Embedded should have been caught"); + Assertions.fail("Missing @Entity and @Embedded should have been caught"); }); }); withConfig(buildConfig() .packages(of(NonStaticInnerClass.class.getPackageName())), () -> { - assertThrows(MappingException.class, () -> { + Assertions.assertThrows(MappingException.class, () -> { getMapper().getEntityModel(NonStaticInnerClass.class); - fail("Validation: Non-static inner class allowed"); + Assertions.fail("Validation: Non-static inner class allowed"); }); }); } @@ -261,12 +259,12 @@ public void testBasicMapping() { .filter(eq("_id", state.id)); State loaded = query.first(); - assertEquals(loaded, state); + Assertions.assertEquals(state, loaded); - assertEquals(mapper.getEntityModel(State.class) + Assertions.assertEquals(of("_id", "state", "biggestCity", "smallestCity"), mapper.getEntityModel(State.class) .getProperties().stream() .map(PropertyModel::getMappedName) - .collect(toList()), of("_id", "state", "biggestCity", "smallestCity")); + .collect(toList())); } @Test @@ -275,8 +273,8 @@ public void testByteArrayMapping() { final ContainsByteArray loaded = getDs().find(ContainsByteArray.class) .filter(eq("_id", savedKey)) .first(); - assertEquals(new String(loaded.bytes), new String((new ContainsByteArray()).bytes)); - assertNotNull(loaded.id); + Assertions.assertEquals(new String((new ContainsByteArray()).bytes), new String(loaded.bytes)); + Assertions.assertNotNull(loaded.id); } @Test @@ -300,8 +298,8 @@ public void testCollectionMapping() { final ContainsCollection loaded = getDs().find(ContainsCollection.class) .filter(eq("_id", savedKey)) .first(); - assertEquals((new ContainsCollection()).coll, loaded.coll); - assertNotNull(loaded.id); + Assertions.assertEquals(loaded.coll, (new ContainsCollection()).coll); + Assertions.assertNotNull(loaded.id); } @Test @@ -311,14 +309,14 @@ public void testEmbeddedArrayElementHasNoClassname() { final Document document = toDocument(cea); List res = (List) document.get("res"); - assertFalse(res.get(0).containsKey(getMapper().getConfig().discriminatorKey())); + Assertions.assertFalse(res.get(0).containsKey(getMapper().getConfig().discriminatorKey())); } @Test public void testEmbeddedDocument() { withConfig(buildConfig(ContainsDocument.class), () -> { getDs().save(new ContainsDocument()); - assertNotNull(getDs().find(ContainsDocument.class).iterator() + Assertions.assertNotNull(getDs().find(ContainsDocument.class).iterator() .next()); }); } @@ -329,10 +327,10 @@ public void testEmbeddedEntity() { final ContainsEmbeddedEntity ceeLoaded = getDs().find(ContainsEmbeddedEntity.class) .iterator() .next(); - assertNotNull(ceeLoaded); - assertNotNull(ceeLoaded.id); - assertNotNull(ceeLoaded.cil); - assertNull(ceeLoaded.cil.id); + Assertions.assertNotNull(ceeLoaded); + Assertions.assertNotNull(ceeLoaded.id); + Assertions.assertNotNull(ceeLoaded.cil); + Assertions.assertNull(ceeLoaded.cil.id); } @@ -342,7 +340,7 @@ public void testEmbeddedEntityDocumentHasNoClassname() { cee.cil = new ContainsIntegerList(); cee.cil.intList = Collections.singletonList(1); final Document document = toDocument(cee); - assertFalse(((Document) document.get("cil")).containsKey(getMapper().getConfig().discriminatorKey())); + Assertions.assertFalse(((Document) document.get("cil")).containsKey(getMapper().getConfig().discriminatorKey())); } @Test @@ -357,29 +355,29 @@ public void testEnumKeyedMap() { final ContainsEnum1KeyMap mapLoaded = getDs().find(ContainsEnum1KeyMap.class).filter(eq("_id", map.id)).first(); - assertNotNull(mapLoaded); - assertEquals(mapLoaded.values.size(), 2); - assertNotNull(mapLoaded.values.get(Enum1.A)); - assertNotNull(mapLoaded.values.get(Enum1.B)); - assertEquals(mapLoaded.embeddedValues.size(), 2); - assertNotNull(mapLoaded.embeddedValues.get(Enum1.A)); - assertNotNull(mapLoaded.embeddedValues.get(Enum1.B)); + Assertions.assertNotNull(mapLoaded); + Assertions.assertEquals(2, mapLoaded.values.size()); + Assertions.assertNotNull(mapLoaded.values.get(Enum1.A)); + Assertions.assertNotNull(mapLoaded.values.get(Enum1.B)); + Assertions.assertEquals(2, mapLoaded.embeddedValues.size()); + Assertions.assertNotNull(mapLoaded.embeddedValues.get(Enum1.A)); + Assertions.assertNotNull(mapLoaded.embeddedValues.get(Enum1.B)); } @Test public void testExternalClass() { - assertFalse(getDs().getMapper().isMapped(HoldsUnannotated.class)); - assertFalse(getDs().getMapper().isMapped(ThirdPartyEmbedded.class)); - assertFalse(getDs().getMapper().isMapped(ThirdPartyEntity.class)); + Assertions.assertFalse(getDs().getMapper().isMapped(HoldsUnannotated.class)); + Assertions.assertFalse(getDs().getMapper().isMapped(ThirdPartyEmbedded.class)); + Assertions.assertFalse(getDs().getMapper().isMapped(ThirdPartyEntity.class)); - assertThrows(MappingException.class, () -> withTestConfig(List.of(ThirdPartyEntity.class), () -> { + Assertions.assertThrows(MappingException.class, () -> withTestConfig(List.of(ThirdPartyEntity.class), () -> { })); - assertThrows(MappingException.class, () -> withTestConfig(List.of(ThirdPartyEmbedded.class), () -> { + Assertions.assertThrows(MappingException.class, () -> withTestConfig(List.of(ThirdPartyEmbedded.class), () -> { })); withConfig(buildConfig(HoldsUnannotated.class), () -> { - assertTrue(getDs().getMapper().isMapped(ThirdPartyEmbedded.class)); - assertTrue(getDs().getMapper().isMapped(ThirdPartyEntity.class)); + Assertions.assertTrue(getDs().getMapper().isMapped(ThirdPartyEmbedded.class)); + Assertions.assertTrue(getDs().getMapper().isMapped(ThirdPartyEntity.class)); HoldsUnannotated holdsUnannotated = new HoldsUnannotated(); holdsUnannotated.embedded = new ThirdPartyEmbedded(); @@ -387,26 +385,26 @@ public void testExternalClass() { holdsUnannotated.embedded.field = "Left"; getDs().save(holdsUnannotated); - assertEquals(getDs().find(HoldsUnannotated.class).first(), holdsUnannotated); + Assertions.assertEquals(holdsUnannotated, getDs().find(HoldsUnannotated.class).first()); }); withTestConfig(List.of(ThirdPartyEntityProxy.class, ThirdPartyEmbeddedProxy.class), () -> { EntityModel model = getDs().getMapper().getEntityModel(ThirdPartyEntity.class); - assertEquals(model.collectionName(), "extEnt"); - assertEquals(model.discriminator(), "ext"); - assertEquals(model.discriminatorKey(), "_xt"); + Assertions.assertEquals("extEnt", model.collectionName()); + Assertions.assertEquals("ext", model.discriminator()); + Assertions.assertEquals("_xt", model.discriminatorKey()); Entity annotation = model.getAnnotation(Entity.class); - assertEquals(annotation.concern(), "JOURNALED"); - assertEquals(annotation.cap().count(), 123); - assertEquals(annotation.cap().value(), 456); + Assertions.assertEquals("JOURNALED", annotation.concern()); + Assertions.assertEquals(123, annotation.cap().count()); + Assertions.assertEquals(456, annotation.cap().value()); ThirdPartyEntity entity = new ThirdPartyEntity(); entity.field = "hi"; entity.number = 42L; getDs().save(entity); - assertEquals(getDs().find(ThirdPartyEntity.class).first(), entity); + Assertions.assertEquals(entity, getDs().find(ThirdPartyEntity.class).first()); }); } @@ -415,7 +413,7 @@ public void testExternalClassUsingMethods() { withConfig(buildConfig(ThirdPartyEntityProxy.class) .propertyDiscovery(METHODS), () -> { List mappedEntities = getMapper().getMappedEntities(); - assertFalse(mappedEntities.stream() + Assertions.assertFalse(mappedEntities.stream() .map(EntityModel::getType) .anyMatch(type -> type.equals(ThirdPartyEntityProxy.class) || type.equals(ThirdPartyEmbeddedProxy.class))); @@ -424,20 +422,20 @@ public void testExternalClassUsingMethods() { .findFirst() .orElseThrow( () -> new MappingException(ThirdPartyEntity.class.getName() + " was not found")); - assertEquals(model.collectionName(), "extEnt"); - assertEquals(model.discriminator(), "ext"); - assertEquals(model.discriminatorKey(), "_xt"); + Assertions.assertEquals("extEnt", model.collectionName()); + Assertions.assertEquals("ext", model.discriminator()); + Assertions.assertEquals("_xt", model.discriminatorKey()); Entity annotation = model.getAnnotation(Entity.class); - assertEquals(annotation.concern(), "JOURNALED"); - assertEquals(annotation.cap().count(), 123); - assertEquals(annotation.cap().value(), 456); + Assertions.assertEquals("JOURNALED", annotation.concern()); + Assertions.assertEquals(123, annotation.cap().count()); + Assertions.assertEquals(456, annotation.cap().value()); ThirdPartyEntity entity = new ThirdPartyEntity(); entity.setField("hi"); entity.setNumber(42L); getDs().save(entity); - assertEquals(getDs().find(ThirdPartyEntity.class).first(), entity); + Assertions.assertEquals(entity, getDs().find(ThirdPartyEntity.class).first()); }); } @@ -455,7 +453,7 @@ public void testFieldAsDiscriminator() { findFirst(getDs(), Png.class, png); findFirst(getDs(), Jpg.class, jpg); Query query = getDs().find(BlogImage.class); - assertEquals(query.count(), 2, query.toString()); + Assertions.assertEquals(2, query.count(), query.toString()); assertListEquals(query.iterator().toList(), of(jpg, png)); }); @@ -467,9 +465,9 @@ public void testFinalField() { final ContainsFinalField loaded = getDs().find(ContainsFinalField.class) .filter(eq("_id", savedKey)) .first(); - assertNotNull(loaded); - assertNotNull(loaded.name); - assertEquals(loaded.name, "blah"); + Assertions.assertNotNull(loaded); + Assertions.assertNotNull(loaded.name); + Assertions.assertEquals("blah", loaded.name); } @Test @@ -481,8 +479,8 @@ public void testFinalFieldNotPersisted() { .withDocumentClass(Document.class) .find(Filters.eq("_id", savedKey)) .first(); - assertNotNull(loaded); - assertNull(loaded.get("name")); + Assertions.assertNotNull(loaded); + Assertions.assertNull(loaded.get("name")); }); } @@ -492,12 +490,12 @@ public void testFinalIdField() { final HasFinalFieldId loaded = getDs().find(HasFinalFieldId.class) .filter(eq("_id", savedKey)) .first(); - assertNotNull(loaded); - assertEquals(loaded.id, 12); + Assertions.assertNotNull(loaded); + Assertions.assertEquals(12, loaded.id); } @Test - @Ignore("need to add this feature") + @Disabled("need to add this feature") @SuppressWarnings("unchecked") public void testGenericKeyedMap() { final ContainsXKeyMap map = new ContainsXKeyMap<>(); @@ -508,12 +506,12 @@ public void testGenericKeyedMap() { final ContainsXKeyMap mapLoaded = getDs().find(ContainsXKeyMap.class).filter(eq("_id", map.id)).first(); - assertNotNull(mapLoaded); + Assertions.assertNotNull(mapLoaded); Map values = mapLoaded.values; - assertEquals(values.size(), 2); - assertNotNull(values.get(1)); - assertNotNull(values.get(2)); + Assertions.assertEquals(2, values.size()); + Assertions.assertNotNull(values.get(1)); + Assertions.assertNotNull(values.get(2)); } @Test @@ -528,16 +526,16 @@ public void testIntKeySetStringMap() { .filter(eq("_id", map.id)) .first(); - assertNotNull(mapLoaded); - assertEquals(mapLoaded.values.size(), 2); - assertNotNull(mapLoaded.values.get(1)); - assertNotNull(mapLoaded.values.get(2)); - assertEquals(mapLoaded.values.get(1).size(), 1); + Assertions.assertNotNull(mapLoaded); + Assertions.assertEquals(2, mapLoaded.values.size()); + Assertions.assertNotNull(mapLoaded.values.get(1)); + Assertions.assertNotNull(mapLoaded.values.get(2)); + Assertions.assertEquals(1, mapLoaded.values.get(1).size()); - assertNotNull(getDs().find(ContainsIntKeyMap.class).filter(exists("values.2"))); - assertEquals(getDs().find(ContainsIntKeyMap.class).filter(exists("values.2").not()).count(), 0); - assertNotNull(getDs().find(ContainsIntKeyMap.class).filter(exists("values.4").not())); - assertEquals(getDs().find(ContainsIntKeyMap.class).filter(exists("values.4")).count(), 0); + Assertions.assertNotNull(getDs().find(ContainsIntKeyMap.class).filter(exists("values.2"))); + Assertions.assertEquals(0, getDs().find(ContainsIntKeyMap.class).filter(exists("values.2").not()).count()); + Assertions.assertNotNull(getDs().find(ContainsIntKeyMap.class).filter(exists("values.4").not())); + Assertions.assertEquals(0, getDs().find(ContainsIntKeyMap.class).filter(exists("values.4")).count()); } @Test @@ -552,21 +550,21 @@ public void testIntKeyedMap() { .filter(eq("_id", map.id)) .first(); - assertNotNull(mapLoaded); - assertEquals(mapLoaded.values.size(), 2); - assertNotNull(mapLoaded.values.get(1)); - assertNotNull(mapLoaded.values.get(2)); + Assertions.assertNotNull(mapLoaded); + Assertions.assertEquals(2, mapLoaded.values.size()); + Assertions.assertNotNull(mapLoaded.values.get(1)); + Assertions.assertNotNull(mapLoaded.values.get(2)); - assertNotNull(getDs().find(ContainsIntKeyMap.class) + Assertions.assertNotNull(getDs().find(ContainsIntKeyMap.class) .filter(exists("values.2"))); - assertEquals(getDs().find(ContainsIntKeyMap.class) + Assertions.assertEquals(0, getDs().find(ContainsIntKeyMap.class) .filter(exists("values.2").not()) - .count(), 0); - assertNotNull(getDs().find(ContainsIntKeyMap.class) + .count()); + Assertions.assertNotNull(getDs().find(ContainsIntKeyMap.class) .filter(exists("values.4").not())); - assertEquals(getDs().find(ContainsIntKeyMap.class) + Assertions.assertEquals(0, getDs().find(ContainsIntKeyMap.class) .filter(exists("values.4")) - .count(), 0); + .count()); } @Test @@ -576,9 +574,9 @@ public void testIntLists() { ContainsIntegerList cilLoaded = getDs().find(ContainsIntegerList.class) .filter(eq("_id", cil.id)) .first(); - assertNotNull(cilLoaded); - assertNotNull(cilLoaded.intList); - assertEquals(cilLoaded.intList.size(), cil.intList.size()); + Assertions.assertNotNull(cilLoaded); + Assertions.assertNotNull(cilLoaded.intList); + Assertions.assertEquals(cil.intList.size(), cilLoaded.intList.size()); cil = new ContainsIntegerList(); cil.intList = null; @@ -586,9 +584,9 @@ public void testIntLists() { cilLoaded = getDs().find(ContainsIntegerList.class) .filter(eq("_id", cil.id)) .first(); - assertNotNull(cilLoaded); - assertNotNull(cilLoaded.intList); - assertEquals(cilLoaded.intList.size(), 0); + Assertions.assertNotNull(cilLoaded); + Assertions.assertNotNull(cilLoaded.intList); + Assertions.assertEquals(0, cilLoaded.intList.size()); cil = new ContainsIntegerList(); cil.intList.add(1); @@ -596,10 +594,10 @@ public void testIntLists() { cilLoaded = getDs().find(ContainsIntegerList.class) .filter(eq("_id", cil.id)) .first(); - assertNotNull(cilLoaded); - assertNotNull(cilLoaded.intList); - assertEquals(cilLoaded.intList.size(), 1); - assertEquals((int) cilLoaded.intList.get(0), 1); + Assertions.assertNotNull(cilLoaded); + Assertions.assertNotNull(cilLoaded.intList); + Assertions.assertEquals(1, cilLoaded.intList.size()); + Assertions.assertEquals(1, (int) cilLoaded.intList.get(0)); } @Test @@ -607,21 +605,21 @@ public void testLoadOnly() { getDs().save(new Normal("value")); Normal n = getDs().find(Normal.class).iterator() .next(); - assertNotNull(n); - assertNotNull(n.name); + Assertions.assertNotNull(n); + Assertions.assertNotNull(n.name); getDs().delete(n); getDs().save(new NormalWithLoadOnly()); n = getDs().find(Normal.class).iterator() .next(); - assertNotNull(n); - assertNull(n.name); + Assertions.assertNotNull(n); + Assertions.assertNull(n.name); getDs().delete(n); getDs().save(new Normal("value21")); final NormalWithLoadOnly notSaved = getDs().find(NormalWithLoadOnly.class).iterator() .next(); - assertNotNull(notSaved); - assertNotNull(notSaved.name); - assertEquals(notSaved.name, "never"); + Assertions.assertNotNull(notSaved); + Assertions.assertNotNull(notSaved.name); + Assertions.assertEquals("never", notSaved.name); } @Test @@ -629,8 +627,8 @@ public void testLongArrayMapping() { getDs().save(new ContainsLongAndStringArray()); ContainsLongAndStringArray loaded = getDs().find(ContainsLongAndStringArray.class).iterator() .next(); - assertEquals((new ContainsLongAndStringArray()).longs, loaded.longs); - assertEquals((new ContainsLongAndStringArray()).strings, loaded.strings); + Assertions.assertArrayEquals((new ContainsLongAndStringArray()).longs, loaded.longs); + Assertions.assertArrayEquals((new ContainsLongAndStringArray()).strings, loaded.strings); final ContainsLongAndStringArray array = new ContainsLongAndStringArray(); array.strings = new String[] { "a", "B", "c" }; @@ -639,18 +637,18 @@ public void testLongArrayMapping() { loaded = getDs().find(ContainsLongAndStringArray.class) .filter(eq("_id", array.id)) .first(); - assertEquals(loaded.longs, array.longs); - assertEquals(loaded.strings, array.strings); + Assertions.assertArrayEquals(array.longs, loaded.longs); + Assertions.assertArrayEquals(array.strings, loaded.strings); - assertNotNull(loaded.id); + Assertions.assertNotNull(loaded.id); } @Test public void testMapAsId() { final MapAsId mai = new MapAsId(); mai.id.put("test", "string"); - assertNotNull(getDs().save(mai)); - assertNotNull(getDs().find(MapAsId.class) + Assertions.assertNotNull(getDs().save(mai)); + Assertions.assertNotNull(getDs().find(MapAsId.class) .filter(eq("_id", new Document("test", "string"))) .first()); } @@ -662,9 +660,9 @@ public void testMapLike() { getDs().save(ml); final ContainsMapLike mlLoaded = getDs().find(ContainsMapLike.class).iterator() .next(); - assertNotNull(mlLoaded); - assertNotNull(mlLoaded.m); - assertTrue(mlLoaded.m.containsKey("first")); + Assertions.assertNotNull(mlLoaded); + Assertions.assertNotNull(mlLoaded.m); + Assertions.assertTrue(mlLoaded.m.containsKey("first")); } @Test @@ -681,10 +679,10 @@ public void testMapWithEmbeddedInterface() { .iterator() .next(); - assertNotNull(mapLoaded); - assertEquals(mapLoaded.embeddedValues.size(), 2); - assertTrue(mapLoaded.embeddedValues.get("first") instanceof Foo1); - assertTrue(mapLoaded.embeddedValues.get("second") instanceof Foo2); + Assertions.assertNotNull(mapLoaded); + Assertions.assertEquals(2, mapLoaded.embeddedValues.size()); + Assertions.assertTrue(mapLoaded.embeddedValues.get("first") instanceof Foo1); + Assertions.assertTrue(mapLoaded.embeddedValues.get("second") instanceof Foo2); } @@ -692,12 +690,12 @@ public void testMapWithEmbeddedInterface() { public void testMethodMapping() { withConfig(buildConfig(MethodMappedUser.class).propertyDiscovery(METHODS), () -> { EntityModel model = getDs().getMapper().getEntityModel(MethodMappedUser.class); - assertTrue(model.getProperties().size() > 0); - assertNotNull(model.getVersionProperty(), model.getProperties().toString()); - assertNotNull(model.getProperty("dateJoined")); - assertNotNull(model.getProperty("joined")); - assertNotNull(model.getProperty("friend_reference")); - assertNotNull(model.getProperty("morphia_reference")); + Assertions.assertTrue(model.getProperties().size() > 0); + Assertions.assertNotNull(model.getVersionProperty(), model.getProperties().toString()); + Assertions.assertNotNull(model.getProperty("dateJoined")); + Assertions.assertNotNull(model.getProperty("joined")); + Assertions.assertNotNull(model.getProperty("friend_reference")); + Assertions.assertNotNull(model.getProperty("morphia_reference")); }); } @@ -714,15 +712,15 @@ public void testObjectIdKeyedMap() { final ContainsObjectIdKeyMap mapLoaded = getDs().find(ContainsObjectIdKeyMap.class).filter(eq("_id", map.id)).first(); - assertNotNull(mapLoaded); - assertEquals(mapLoaded.values.size(), 2); - assertNotNull(mapLoaded.values.get(o1)); - assertNotNull(mapLoaded.values.get(o2)); + Assertions.assertNotNull(mapLoaded); + Assertions.assertEquals(2, mapLoaded.values.size()); + Assertions.assertNotNull(mapLoaded.values.get(o1)); + Assertions.assertNotNull(mapLoaded.values.get(o2)); - assertNotNull(getDs().find(ContainsIntKeyMap.class).filter(exists("values.111111111111111111111111"))); - assertEquals(getDs().find(ContainsIntKeyMap.class).filter(exists("values.111111111111111111111111").not()).count(), 0); - assertNotNull(getDs().find(ContainsIntKeyMap.class).filter(exists("values.4").not())); - assertEquals(getDs().find(ContainsIntKeyMap.class).filter(exists("values.4")).count(), 0); + Assertions.assertNotNull(getDs().find(ContainsIntKeyMap.class).filter(exists("values.111111111111111111111111"))); + Assertions.assertEquals(0, getDs().find(ContainsIntKeyMap.class).filter(exists("values.111111111111111111111111").not()).count()); + Assertions.assertNotNull(getDs().find(ContainsIntKeyMap.class).filter(exists("values.4").not())); + Assertions.assertEquals(0, getDs().find(ContainsIntKeyMap.class).filter(exists("values.4")).count()); } @Test @@ -738,9 +736,9 @@ public void testPrimMap() { .filter(eq("_id", primMap.id)) .first(); - assertNotNull(primMapLoaded); - assertEquals(primMapLoaded.embeddedValues.size(), 2); - assertEquals(primMapLoaded.values.size(), 2); + Assertions.assertNotNull(primMapLoaded); + Assertions.assertEquals(2, primMapLoaded.embeddedValues.size()); + Assertions.assertEquals(2, primMapLoaded.values.size()); } @Test @@ -756,14 +754,14 @@ public void testPrimMapWithNullValue() { .filter(eq("_id", primMap.id)) .first(); - assertNotNull(primMapLoaded); - assertEquals(primMapLoaded.embeddedValues.size(), 2); - assertEquals(primMapLoaded.values.size(), 2); + Assertions.assertNotNull(primMapLoaded); + Assertions.assertEquals(2, primMapLoaded.embeddedValues.size()); + Assertions.assertEquals(2, primMapLoaded.values.size()); } @Test - // @Tag("references") - @Ignore("entity caching needs to be implemented") + @Tag("references") + @Disabled("entity caching needs to be implemented") public void testRecursiveReference() { /* * getMapper().map(RecursiveParent.class, RecursiveChild.class); @@ -799,7 +797,7 @@ public void testRecursiveReference() { @Test public void testReferenceWithoutIdValue() { - assertThrows(QueryException.class, () -> { + Assertions.assertThrows(QueryException.class, () -> { final Book book = new Book(); book.author = new Author(); getDs().save(book); @@ -814,13 +812,13 @@ public void testSubPackagesMapping() { // then List list = getMapper().getMappedEntities(); - assertEquals(list.size(), 4, list.toString()); + Assertions.assertEquals(4, list.size(), list.toString()); Collection> classes = list.stream().map(EntityModel::getType) .collect(Collectors.toList()); - assertTrue(classes.contains(AbstractVersionedBase.class)); - assertTrue(classes.contains(Versioned.class)); - assertTrue(classes.contains(VersionedToo.class)); - assertTrue(classes.contains(VersionedChildEntity.class)); + Assertions.assertTrue(classes.contains(AbstractVersionedBase.class)); + Assertions.assertTrue(classes.contains(Versioned.class)); + Assertions.assertTrue(classes.contains(VersionedToo.class)); + Assertions.assertTrue(classes.contains(VersionedChildEntity.class)); }); } @@ -836,20 +834,20 @@ public void transientFields() { getDs().save(entity); Document document = getDocumentCollection(HasTransientFields.class).find().first(); String string = toString(document); - Assert.assertFalse(document.containsKey("morphiaTransientString"), string); - Assert.assertFalse(document.containsKey("morphiaTransientInt"), string); - Assert.assertFalse(document.containsKey("javaTransientString"), string); - Assert.assertFalse(document.containsKey("javaTransientInt"), string); + Assertions.assertFalse(document.containsKey("morphiaTransientString"), string); + Assertions.assertFalse(document.containsKey("morphiaTransientInt"), string); + Assertions.assertFalse(document.containsKey("javaTransientString"), string); + Assertions.assertFalse(document.containsKey("javaTransientInt"), string); } protected void findFirst(Datastore datastore, Class type, BlogImage expected) { Query query = datastore.find(type); - assertEquals(query.count(), 1, query.toString()); - assertEquals(query.first(), expected, query.toString()); + Assertions.assertEquals(1, query.count(), query.toString()); + Assertions.assertEquals(expected, query.first(), query.toString()); } private void validateField(List fields, String mapped, String java) { - assertNotNull(fields.stream().filter(f -> f.getMappedName().equals(mapped) + Assertions.assertNotNull(fields.stream().filter(f -> f.getMappedName().equals(mapped) && f.getName().equals(java)), mapped); } diff --git a/core/src/test/java/dev/morphia/test/mapping/TestMappingOptions.java b/core/src/test/java/dev/morphia/test/mapping/TestMappingOptions.java index 4ce629ef4b9..7ecd45f36ed 100644 --- a/core/src/test/java/dev/morphia/test/mapping/TestMappingOptions.java +++ b/core/src/test/java/dev/morphia/test/mapping/TestMappingOptions.java @@ -19,16 +19,13 @@ import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.Morphia.*; import static dev.morphia.mapping.DiscriminatorFunction.lowerSimpleName; import static dev.morphia.mapping.NamingStrategy.lowerCase; import static dev.morphia.query.filters.Filters.ne; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; @SuppressWarnings({ "ConstantConditions", "unused" }) public class TestMappingOptions extends TestBase { @@ -148,7 +145,7 @@ public void customDiscriminators() { Query query = getDs().find(EntityDiscriminator2.class, new FindOptions().logQuery()) .filter(ne("name", "hi")); List list = query.iterator().toList(); - assertEquals(list.size(), 1, query.getLoggedQuery()); + Assertions.assertEquals(1, list.size(), query.getLoggedQuery()); } @Test @@ -202,16 +199,16 @@ public void discriminator() { datastore.getMapper().map(EntityDiscriminator.class, EmbeddedDiscriminator.class, HasMap.class); EntityModel entityModel = datastore.getMapper().getEntityModel(EntityDiscriminator.class); - assertEquals(entityModel.discriminatorKey(), "_t"); - assertEquals(entityModel.discriminator(), "h"); + Assertions.assertEquals("_t", entityModel.discriminatorKey()); + Assertions.assertEquals("h", entityModel.discriminator()); entityModel = datastore.getMapper().getEntityModel(EmbeddedDiscriminator.class); - assertEquals(entityModel.discriminatorKey(), "_e"); - assertEquals(entityModel.discriminator(), "b"); + Assertions.assertEquals("_e", entityModel.discriminatorKey()); + Assertions.assertEquals("b", entityModel.discriminator()); entityModel = datastore.getMapper().getEntityModel(HasMap.class); - assertEquals(entityModel.discriminatorKey(), "_t"); - assertEquals(entityModel.discriminator(), HasMap.class.getSimpleName().toLowerCase()); + Assertions.assertEquals("_t", entityModel.discriminatorKey()); + Assertions.assertEquals(HasMap.class.getSimpleName().toLowerCase(), entityModel.discriminator()); } @Test @@ -219,21 +216,21 @@ public void lowercaseDefaultCollection() { DummyEntity entity = new DummyEntity(); String collectionName = getMapper().getEntityModel(entity.getClass()).collectionName(); - assertEquals(collectionName, "dummyEntity", "camelCase"); + Assertions.assertEquals("dummyEntity", collectionName, "camelCase"); withConfig(buildConfig() .collectionNaming(lowerCase()), () -> { String name = getMapper().getEntityModel(entity.getClass()).collectionName(); - assertEquals(name, "dummyentity", "lowercase"); + Assertions.assertEquals("dummyentity", name, "lowercase"); }); } private void shouldFindField(Datastore datastore, HasList hl, List expected) { datastore.save(hl); final Document document = getDocumentCollection(HasList.class).find().first(); - assertTrue(document.containsKey("names"), "Should find the field"); - assertEquals(datastore.find(HasList.class).first().names, expected); + Assertions.assertTrue(document.containsKey("names"), "Should find the field"); + Assertions.assertEquals(expected, datastore.find(HasList.class).first().names); cleanup(); } @@ -241,9 +238,9 @@ private void shouldFindField(Datastore datastore, HasMap hl, Map final Document document; datastore.save(hl); document = getDocumentCollection(HasMap.class).find().first(); - assertTrue(document.containsKey("properties"), "Should find the field"); - assertEquals(datastore.find(HasMap.class).iterator() - .tryNext().properties, expected); + Assertions.assertTrue(document.containsKey("properties"), "Should find the field"); + Assertions.assertEquals(expected, datastore.find(HasMap.class).iterator() + .tryNext().properties); cleanup(); } @@ -253,8 +250,8 @@ private void shouldFindField(Datastore datastore, final Document document; datastore.save(hm); document = getDocumentCollection(HasCollectionValuedMap.class).find().first(); - assertTrue(document.containsKey("properties"), "Should find the field"); - assertEquals(datastore.find(HasCollectionValuedMap.class).first().properties, expected); + Assertions.assertTrue(document.containsKey("properties"), "Should find the field"); + Assertions.assertEquals(expected, datastore.find(HasCollectionValuedMap.class).first().properties); cleanup(); } @@ -262,42 +259,42 @@ private void shouldFindField(Datastore datastore, HasComplexObjectValuedMap hm, final Document document; datastore.save(hm); document = getDocumentCollection(HasComplexObjectValuedMap.class).find().first(); - assertTrue(document.containsKey("properties"), "Should find the field"); - assertEquals(datastore.find(HasComplexObjectValuedMap.class).first().properties, expected); + Assertions.assertTrue(document.containsKey("properties"), "Should find the field"); + Assertions.assertEquals(expected, datastore.find(HasComplexObjectValuedMap.class).first().properties); cleanup(); } private void shouldNotFindField(Datastore datastore, HasCollectionValuedMap hm) { datastore.save(hm); Document document = getDocumentCollection(HasCollectionValuedMap.class).find().first(); - assertFalse(document.containsKey("properties"), "field should not exist, value = " + document.get("properties")); - assertNull(datastore.find(HasCollectionValuedMap.class).first().properties); + Assertions.assertFalse(document.containsKey("properties"), "field should not exist, value = " + document.get("properties")); + Assertions.assertNull(datastore.find(HasCollectionValuedMap.class).first().properties); cleanup(); } private void shouldNotFindField(Datastore datastore, HasMap hl) { datastore.save(hl); Document document = getDocumentCollection(HasMap.class).find().first(); - assertFalse(document.containsKey("properties"), "field should not exist, value = " + document.get("properties")); - assertNull(datastore.find(HasMap.class).first().properties); + Assertions.assertFalse(document.containsKey("properties"), "field should not exist, value = " + document.get("properties")); + Assertions.assertNull(datastore.find(HasMap.class).first().properties); cleanup(); } private void shouldNotFindField(Datastore datastore, HasComplexObjectValuedMap hm) { datastore.save(hm); Document document = getDocumentCollection(HasComplexObjectValuedMap.class).find().first(); - assertFalse(document.containsKey("properties"), "field should not exist, value = " + document.get("properties")); - assertNull(datastore.find(HasComplexObjectValuedMap.class).first().properties); + Assertions.assertFalse(document.containsKey("properties"), "field should not exist, value = " + document.get("properties")); + Assertions.assertNull(datastore.find(HasComplexObjectValuedMap.class).first().properties); cleanup(); } private void shouldNotFindField(Datastore datastore, HasList hl) { datastore.save(hl); Document document = getDocumentCollection(HasList.class).find().first(); - assertFalse(document.containsKey("names"), "field should not exist, value = " + document.get("names")); + Assertions.assertFalse(document.containsKey("names"), "field should not exist, value = " + document.get("names")); HasList hasList = datastore.find(HasList.class).iterator() .tryNext(); - assertNull(hasList.names); + Assertions.assertNull(hasList.names); cleanup(); } diff --git a/core/src/test/java/dev/morphia/test/mapping/TestPropertyModel.java b/core/src/test/java/dev/morphia/test/mapping/TestPropertyModel.java index 80ac1d88306..80fba6f655d 100644 --- a/core/src/test/java/dev/morphia/test/mapping/TestPropertyModel.java +++ b/core/src/test/java/dev/morphia/test/mapping/TestPropertyModel.java @@ -15,9 +15,9 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; @@ -25,7 +25,7 @@ public class TestPropertyModel extends TestBase { private EntityModel entityModel; - @BeforeMethod + @BeforeEach public void mapEntity() { entityModel = getMapper().getEntityModel(TestEntity.class); } @@ -34,59 +34,59 @@ public void mapEntity() { public void arrayFieldMapping() { final PropertyModel property = getMappedField("arrayOfInt"); - Assert.assertFalse(property.isScalarValue()); - Assert.assertTrue(property.isArray()); - Assert.assertTrue(property.getType().isArray()); - Assert.assertEquals(property.getName(), "arrayOfInt"); - Assert.assertEquals(property.getMappedName(), "arrayOfInt"); + Assertions.assertFalse(property.isScalarValue()); + Assertions.assertTrue(property.isArray()); + Assertions.assertTrue(property.getType().isArray()); + Assertions.assertEquals("arrayOfInt", property.getName()); + Assertions.assertEquals("arrayOfInt", property.getMappedName()); } @Test public void basicFieldMapping() { final PropertyModel property = getMappedField("name"); - Assert.assertTrue(property.isScalarValue()); - Assert.assertSame(property.getType(), String.class); - Assert.assertEquals(property.getName(), "name"); - Assert.assertEquals(property.getMappedName(), "n"); + Assertions.assertTrue(property.isScalarValue()); + Assertions.assertSame(String.class, property.getType()); + Assertions.assertEquals("name", property.getName()); + Assertions.assertEquals("n", property.getMappedName()); } @Test public void collectionFieldMapping() { final PropertyModel property = getMappedField("listOfString"); - Assert.assertFalse(property.isScalarValue()); - Assert.assertFalse(property.isArray()); - Assert.assertSame(property.getType(), List.class); - Assert.assertSame(property.getNormalizedType(), String.class); - Assert.assertEquals(property.getName(), "listOfString"); - Assert.assertEquals(property.getMappedName(), "listOfString"); + Assertions.assertFalse(property.isScalarValue()); + Assertions.assertFalse(property.isArray()); + Assertions.assertSame(List.class, property.getType()); + Assertions.assertSame(String.class, property.getNormalizedType()); + Assertions.assertEquals("listOfString", property.getName()); + Assertions.assertEquals("listOfString", property.getMappedName()); } @Test public void idFieldMapping() { final PropertyModel property = getMappedField("id"); - Assert.assertTrue(property.isScalarValue()); - Assert.assertSame(property.getType(), ObjectId.class); - Assert.assertEquals(property.getName(), "id"); - Assert.assertEquals(property.getMappedName(), "_id"); + Assertions.assertTrue(property.isScalarValue()); + Assertions.assertSame(ObjectId.class, property.getType()); + Assertions.assertEquals("id", property.getName()); + Assertions.assertEquals("_id", property.getMappedName()); } @Test public void nestedCollectionsMapping() { final PropertyModel property = getMappedField("listOfListOfString"); - Assert.assertFalse(property.isScalarValue()); - Assert.assertFalse(property.isArray()); - Assert.assertSame(property.getType(), List.class); + Assertions.assertFalse(property.isScalarValue()); + Assertions.assertFalse(property.isArray()); + Assertions.assertSame(List.class, property.getType()); final TypeData typeData = property.getTypeData(); - Assert.assertSame(typeData.getType(), List.class); + Assertions.assertSame(List.class, typeData.getType()); - Assert.assertEquals(typeData.getTypeParameters().get(0).getTypeParameters().get(0).getType(), String.class); - Assert.assertEquals(property.getName(), "listOfListOfString"); - Assert.assertEquals(property.getMappedName(), "listOfListOfString"); + Assertions.assertEquals(String.class, typeData.getTypeParameters().get(0).getTypeParameters().get(0).getType()); + Assertions.assertEquals("listOfListOfString", property.getName()); + Assertions.assertEquals("listOfListOfString", property.getMappedName()); final List> list = new ArrayList<>(); list.add(dbList("a", "b", "c")); @@ -95,19 +95,19 @@ public void nestedCollectionsMapping() { testEntity.listOfListOfString = list; getDs().save(testEntity); - Assert.assertEquals(list, getDs().find(TestEntity.class) + Assertions.assertEquals(getDs().find(TestEntity.class) .filter(eq("_id", testEntity.id)) - .first().listOfListOfString); + .first().listOfListOfString, list); } @Test public void nestedGenerics() { final PropertyModel property = getMappedField("nestedList"); - Assert.assertFalse(property.isScalarValue()); - Assert.assertFalse(property.isArray()); - Assert.assertSame(property.getType(), List.class); - Assert.assertSame(property.getNormalizedType(), Nested.class); + Assertions.assertFalse(property.isScalarValue()); + Assertions.assertFalse(property.isArray()); + Assertions.assertSame(List.class, property.getType()); + Assertions.assertSame(Nested.class, property.getNormalizedType()); } private PropertyModel getMappedField(String name) { diff --git a/core/src/test/java/dev/morphia/test/mapping/TestReferenceAnnotationOrdering.java b/core/src/test/java/dev/morphia/test/mapping/TestReferenceAnnotationOrdering.java index 51f0e0c2cc1..0413daa7edb 100644 --- a/core/src/test/java/dev/morphia/test/mapping/TestReferenceAnnotationOrdering.java +++ b/core/src/test/java/dev/morphia/test/mapping/TestReferenceAnnotationOrdering.java @@ -15,11 +15,11 @@ import dev.morphia.test.TestBase; import org.bson.Document; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import static org.testng.Assert.assertEquals; //this is a random annotation which doesn't play any role beside separating @Reference and field @Target({ FIELD }) @@ -94,7 +94,7 @@ public void testReferenceAnnotationShouldNeverEmbedDocuments() { Object items = firstDoc.get("items"); Object moreItems = firstDoc.get("moreItems"); - assertEquals(items, moreItems, "Items should be stored as the same documents"); + Assertions.assertEquals(moreItems, items, "Items should be stored as the same documents"); } } diff --git a/core/src/test/java/dev/morphia/test/mapping/TestReferences.java b/core/src/test/java/dev/morphia/test/mapping/TestReferences.java index c07928ec175..d2e46092ee9 100644 --- a/core/src/test/java/dev/morphia/test/mapping/TestReferences.java +++ b/core/src/test/java/dev/morphia/test/mapping/TestReferences.java @@ -36,8 +36,10 @@ import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.annotations.Ignore; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import static dev.morphia.Morphia.createDatastore; import static dev.morphia.aggregation.stages.Lookup.lookup; @@ -46,10 +48,6 @@ import static dev.morphia.query.updates.UpdateOperators.setOnInsert; import static java.util.Arrays.asList; import static java.util.List.of; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertSame; @SuppressWarnings("removal") public class TestReferences extends ProxyTestBase { @@ -65,7 +63,7 @@ public void maps() { getDs().save(sets); // this query throws a NullPointerException - assertNotNull(getDs().find(Sets.class) + Assertions.assertNotNull(getDs().find(Sets.class) .filter(eq("refs", ref)) .first()); @@ -74,7 +72,7 @@ public void maps() { map.strings.put("name", new TreeSet<>(asList("one", "two", "three"))); getDs().save(map); final MapOfSet first = getDs().find(MapOfSet.class).first(); - assertEquals(map, first); + Assertions.assertEquals(first, map); } @Test @@ -159,7 +157,7 @@ public final void testCallIdGetterWithoutFetching() { assertNotFetched(p); ObjectId idFromProxy = p.getId(); - assertEquals(id, idFromProxy); + Assertions.assertEquals(idFromProxy, id); // Since getId() is annotated with @IdGetter, it should not cause the // referenced entity to be fetched @@ -187,7 +185,7 @@ public void testComplexIds() { ComplexParent loaded = getDs().find(ComplexParent.class) .filter(eq("_id", parent.id)) .first(); - assertEquals(loaded, parent); + Assertions.assertEquals(parent, loaded); } @Test @@ -202,7 +200,7 @@ public void testDBRefSaves() { .find(new Document("_id", 1)) .first(); ((List) loaded.get("friends")) - .forEach(f -> assertEquals(f.getClass(), DBRef.class)); + .forEach(f -> Assertions.assertEquals(DBRef.class, f.getClass())); } @Test @@ -221,7 +219,7 @@ public void testFindByEntityReference() { container.singleRef = ref; getDs().save(container); - assertNotNull(getDs().find(Container.class) + Assertions.assertNotNull(getDs().find(Container.class) .filter(eq("singleRef", ref)).iterator() .next()); } @@ -265,7 +263,7 @@ public void testIdOnly() { .find(new Document()) .first(); ((List) loaded.get("list")) - .forEach(f -> assertEquals(f.getClass(), Long.class)); + .forEach(f -> Assertions.assertEquals(Long.class, f.getClass())); } @Test @@ -278,13 +276,13 @@ public void testInQueryAgainstReferences() { getDs().save(new Org("Test Org2", plan2)); long count = getDs().find(Org.class).filter(eq("name", "Test Org1")).count(); - assertEquals(count, 1); + Assertions.assertEquals(1, count); count = getDs().find(Org.class).filter(in("plan", of(plan1))).count(); - assertEquals(count, 1); + Assertions.assertEquals(1, count); count = getDs().find(Org.class).filter(in("plan", of(plan1, plan2))).count(); - assertEquals(count, 2); + Assertions.assertEquals(2, count); } @Test @@ -297,11 +295,11 @@ public void testLazyWithParent() { var entities = datastore.find(Entity2.class).iterator().toList(); - assertNotNull(entities.get(0)); + Assertions.assertNotNull(entities.get(0)); Entity1 reference = entities.get(0).getReference(); - assertNotNull(reference); - assertEquals(reference.getName(), "entity1", "name should cause a fetch"); - assertNotNull(reference.getId(), "ID shouldn't be null"); + Assertions.assertNotNull(reference); + Assertions.assertEquals("entity1", reference.getName(), "name should cause a fetch"); + Assertions.assertNotNull(reference.getId(), "ID shouldn't be null"); } @Test @@ -318,42 +316,48 @@ public void testMethodMapping() { getDs().save(List.of(friend, user)); MethodMappedUser loaded = getDs().find(MethodMappedUser.class).first(); - assertNotNull(loaded.getFriends()); - assertEquals(loaded.getFriend(), friend); - assertEquals(loaded.getFriends().get(0), friend); - assertEquals(loaded, user); + Assertions.assertNotNull(loaded.getFriends()); + Assertions.assertEquals(friend, loaded.getFriend()); + Assertions.assertEquals(friend, loaded.getFriends().get(0)); + Assertions.assertEquals(user, loaded); }); } - @Test(expectedExceptions = ReferenceException.class) + @Test public void testMissingRef() { - final Source source = new Source(); - source.setTarget(new Target()); + Assertions.assertThrows(ReferenceException.class, () -> { + final Source source = new Source(); + source.setTarget(new Target()); - getDs().save(source); + getDs().save(source); - getDs().find(Source.class).iterator().toList(); + getDs().find(Source.class).iterator().toList(); + }); } - @Test(expectedExceptions = ReferenceException.class) + @Test public void testMissingRefLazy() { - final Source e = new Source(); - e.setLazy(new Target()); + Assertions.assertThrows(ReferenceException.class, () -> { + final Source e = new Source(); + e.setLazy(new Target()); - getDs().save(e); - Source source = getDs().find(Source.class).first(); - assertNull(source.getLazy().getFoo()); + getDs().save(e); + Source source = getDs().find(Source.class).first(); + Assertions.assertNull(source.getLazy().getFoo()); + }); } - @Test(expectedExceptions = ReferenceException.class) + @Test public void testMissingRefLazyIgnoreMissing() { - final Source e = new Source(); - e.setIgnoreMissing(new Target()); + Assertions.assertThrows(ReferenceException.class, () -> { + final Source e = new Source(); + e.setIgnoreMissing(new Target()); - getDs().save(e); // does not fail due to pre-initialized Ids + getDs().save(e); // does not fail due to pre-initialized Ids - Source source = getDs().find(Source.class).first(); - source.getIgnoreMissing().getFoo(); + Source source = getDs().find(Source.class).first(); + source.getIgnoreMissing().getFoo(); + }); } @Test @@ -370,9 +374,9 @@ public final void testMultiDimArrayPersistence() { a.lists = List.of(List.of(List.of(ref1), List.of(ref2))); getDs().save(asList(ref2, ref1, a)); - assertEquals(a, getDs().find(MultiDimArrayOfReferences.class) + Assertions.assertEquals(getDs().find(MultiDimArrayOfReferences.class) .filter(eq("_id", a.getId())) - .first()); + .first(), a); } @Test @@ -396,7 +400,7 @@ public void testMultipleDatabasesSingleThreaded() { testSecondDatastore(ds2); for (int i = 1; i <= 4; i++) { - assertNull(getDs().find(FacebookUser.class).filter(eq("id", i)).first()); + Assertions.assertNull(getDs().find(FacebookUser.class).filter(eq("id", i)).first()); } getMongoClient().getDatabase("db1").drop(); getMongoClient().getDatabase("db2").drop(); @@ -404,28 +408,29 @@ public void testMultipleDatabasesSingleThreaded() { private void testFirstDatastore(Datastore datastore) { final FacebookUser user = datastore.find(FacebookUser.class).filter(eq("id", 1)).first(); - assertNotNull(user); - assertNotNull(datastore.find(FacebookUser.class).filter(eq("id", 3)).first()); + Assertions.assertNotNull(user); + Assertions.assertNotNull(datastore.find(FacebookUser.class).filter(eq("id", 3)).first()); - assertEquals(user.friends.size(), 1, "Should find 1 friend"); - assertEquals(user.friends.get(0).id, 3, "Should find the right friend"); + Assertions.assertEquals(1, user.friends.size(), "Should find 1 friend"); + Assertions.assertEquals(3, user.friends.get(0).id, "Should find the right friend"); - assertNull(datastore.find(FacebookUser.class).filter(eq("id", 2)).first()); - assertNull(datastore.find(FacebookUser.class).filter(eq("id", 4)).first()); + Assertions.assertNull(datastore.find(FacebookUser.class).filter(eq("id", 2)).first()); + Assertions.assertNull(datastore.find(FacebookUser.class).filter(eq("id", 4)).first()); } private void testSecondDatastore(Datastore datastore) { - assertNull(datastore.find(FacebookUser.class).filter(eq("id", 1)).first()); - assertNull(datastore.find(FacebookUser.class).filter(eq("id", 3)).first()); + Assertions.assertNull(datastore.find(FacebookUser.class).filter(eq("id", 1)).first()); + Assertions.assertNull(datastore.find(FacebookUser.class).filter(eq("id", 3)).first()); final FacebookUser db2FoundUser = datastore.find(FacebookUser.class).filter(eq("id", 2)).first(); - assertNotNull(db2FoundUser); - assertNotNull(datastore.find(FacebookUser.class).filter(eq("id", 4)).first()); - assertEquals(db2FoundUser.friends.size(), 1, "Should find 1 friend"); - assertEquals(db2FoundUser.friends.get(0).id, 4, "Should find the right friend"); + Assertions.assertNotNull(db2FoundUser); + Assertions.assertNotNull(datastore.find(FacebookUser.class).filter(eq("id", 4)).first()); + Assertions.assertEquals(1, db2FoundUser.friends.size(), "Should find 1 friend"); + Assertions.assertEquals(4, db2FoundUser.friends.get(0).id, "Should find the right friend"); } - @Test(groups = "references") + @Test + @Tag("references") public void testReference() { getMapper().map(CompoundIdEntity.class, CompoundId.class); @@ -439,7 +444,7 @@ public void testReference() { entity.sibling = sibling; getDs().save(entity); - assertEquals(entity, getDs().find(entity.getClass()).filter(eq("_id", entity.id)).first()); + Assertions.assertEquals(getDs().find(entity.getClass()).filter(eq("_id", entity.id)).first(), entity); } @Test @@ -452,15 +457,15 @@ public void testReferencesWithoutMapping() { getDs().save(parent1); List parentList = getDs().find(Parent.class).iterator().toList(); - assertEquals(parentList.size(), 1); + Assertions.assertEquals(1, parentList.size()); withConfig(buildConfig(), () -> { - assertEquals(getDs().find(Parent.class).iterator().toList().size(), 1); + Assertions.assertEquals(1, getDs().find(Parent.class).iterator().toList().size()); }); } @Test - @Ignore("entity caching needs to be implemented") + @Disabled("entity caching needs to be implemented") public final void testSameProxy() { checkForProxyTypes(); @@ -477,7 +482,7 @@ public final void testSameProxy() { root = getDs().find(RootEntity.class) .filter(eq("_id", root.getId())) .first(); - assertSame(root.r, root.secondReference); + Assertions.assertSame(root.secondReference, root.r); } @Test @@ -493,8 +498,8 @@ public void testSetOnInsert() { .upsert(true), setOnInsert(Map.of("unique", id, "child", child))); - assertEquals(parent.unique, id.toString()); - assertEquals(parent.child.name, child.name); + Assertions.assertEquals(id.toString(), parent.unique); + Assertions.assertEquals(child.name, parent.child.name); } @Test @@ -713,7 +718,7 @@ public boolean equals(Object o) { Objects.equals(complex, that.complex) && Objects.equals(list, that.list)); - assertEquals(lazyList.size(), that.lazyList.size()); + Assertions.assertEquals(that.lazyList.size(), lazyList.size()); lazyList.forEach( d -> equals.set(equals.get() && that.lazyList.contains(d))); diff --git a/core/src/test/java/dev/morphia/test/mapping/TestReferencesInEmbedded.java b/core/src/test/java/dev/morphia/test/mapping/TestReferencesInEmbedded.java index 4952035eb3e..d09ec624ff6 100644 --- a/core/src/test/java/dev/morphia/test/mapping/TestReferencesInEmbedded.java +++ b/core/src/test/java/dev/morphia/test/mapping/TestReferencesInEmbedded.java @@ -6,13 +6,15 @@ import dev.morphia.test.mapping.TestReferences.ReferencedEntity; import dev.morphia.test.models.TestEntity; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; -@Test(groups = "references") +@Tag("references") public class TestReferencesInEmbedded extends TestBase { + @Test public void testLazyReferencesInEmbedded() { final ContainerEntity container = new ContainerEntity(); container.name = "lazy"; @@ -24,7 +26,7 @@ public void testLazyReferencesInEmbedded() { container.embed.lazyRef = referencedEntity; getDs().save(container); - Assert.assertNotNull(getDs().find(ContainerEntity.class) + Assertions.assertNotNull(getDs().find(ContainerEntity.class) .filter(eq("_id", container.getId())) .first()); } diff --git a/core/src/test/java/dev/morphia/test/mapping/TestSingleToMultipleConversion.java b/core/src/test/java/dev/morphia/test/mapping/TestSingleToMultipleConversion.java index 9d3eec3816e..25e9b0158f6 100644 --- a/core/src/test/java/dev/morphia/test/mapping/TestSingleToMultipleConversion.java +++ b/core/src/test/java/dev/morphia/test/mapping/TestSingleToMultipleConversion.java @@ -9,8 +9,8 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class TestSingleToMultipleConversion extends TestBase { @Test @@ -18,37 +18,37 @@ public void testBasicType() { getDs().find(HasSingleString.class) .delete(); getDs().save(new HasSingleString()); - Assert.assertNotNull(getDs().find(HasSingleString.class).iterator() + Assertions.assertNotNull(getDs().find(HasSingleString.class).iterator() .next()); - Assert.assertEquals(getDs().find(HasSingleString.class).count(), 1); + Assertions.assertEquals(1, getDs().find(HasSingleString.class).count()); final HasManyStringsArray hms = getDs().find(HasManyStringsArray.class).iterator() .next(); - Assert.assertNotNull(hms); - Assert.assertNotNull(hms.strings); - Assert.assertEquals(hms.strings.length, 1); + Assertions.assertNotNull(hms); + Assertions.assertNotNull(hms.strings); + Assertions.assertEquals(1, hms.strings.length); final HasManyStringsList hms2 = getDs().find(HasManyStringsList.class).iterator() .next(); - Assert.assertNotNull(hms2); - Assert.assertNotNull(hms2.strings); - Assert.assertEquals(hms2.strings.size(), 1); + Assertions.assertNotNull(hms2); + Assertions.assertNotNull(hms2.strings); + Assertions.assertEquals(1, hms2.strings.size()); } @Test public void testEmbeddedType() { getDs().save(new HasEmbeddedStringy()); - Assert.assertNotNull(getDs().find(HasEmbeddedStringy.class).iterator() + Assertions.assertNotNull(getDs().find(HasEmbeddedStringy.class).iterator() .next()); - Assert.assertEquals(getDs().find(HasEmbeddedStringy.class).count(), 1); + Assertions.assertEquals(1, getDs().find(HasEmbeddedStringy.class).count()); final HasEmbeddedStringyArray has = getDs().find(HasEmbeddedStringyArray.class).first(); - Assert.assertNotNull(has); - Assert.assertNotNull(has.hss); - Assert.assertEquals(has.hss.length, 1); + Assertions.assertNotNull(has); + Assertions.assertNotNull(has.hss); + Assertions.assertEquals(1, has.hss.length); final HasEmbeddedStringySet has2 = getDs().find(HasEmbeddedStringySet.class).first(); - Assert.assertNotNull(has2); - Assert.assertNotNull(has2.hss); - Assert.assertEquals(has2.hss.size(), 1); + Assertions.assertNotNull(has2); + Assertions.assertNotNull(has2.hss); + Assertions.assertEquals(1, has2.hss.size()); } @Entity(value = "B", useDiscriminator = false) diff --git a/core/src/test/java/dev/morphia/test/mapping/TestUriMapping.java b/core/src/test/java/dev/morphia/test/mapping/TestUriMapping.java index 9f8e28409ae..6eb88f7f9a3 100644 --- a/core/src/test/java/dev/morphia/test/mapping/TestUriMapping.java +++ b/core/src/test/java/dev/morphia/test/mapping/TestUriMapping.java @@ -10,10 +10,8 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.annotations.Test; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class TestUriMapping extends TestBase { @@ -25,8 +23,8 @@ public void testURIField() throws URISyntaxException { entity.uri = testURI; getDs().save(entity); final ContainsURI loaded = getDs().find(ContainsURI.class).iterator().tryNext(); - assertNotNull(loaded.uri); - assertEquals(testURI, loaded.uri); + Assertions.assertNotNull(loaded.uri); + Assertions.assertEquals(loaded.uri, testURI); } @@ -38,9 +36,9 @@ public void testURIMap() throws URISyntaxException { entity.uris.put(testURI, "first"); getDs().save(entity); final ContainsURIKeyedMap loaded = getDs().find(ContainsURIKeyedMap.class).iterator().tryNext(); - assertNotNull(loaded.uris); - assertEquals(loaded.uris.size(), 1); - assertEquals(testURI, loaded.uris.keySet().iterator().next()); + Assertions.assertNotNull(loaded.uris); + Assertions.assertEquals(1, loaded.uris.size()); + Assertions.assertEquals(loaded.uris.keySet().iterator().next(), testURI); } diff --git a/core/src/test/java/dev/morphia/test/mapping/codec/BitSetCodecTest.java b/core/src/test/java/dev/morphia/test/mapping/codec/BitSetCodecTest.java index fba867d454e..c2471f60356 100644 --- a/core/src/test/java/dev/morphia/test/mapping/codec/BitSetCodecTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/codec/BitSetCodecTest.java @@ -8,12 +8,10 @@ import dev.morphia.test.TestBase; import org.bson.Document; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static java.util.List.of; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; public class BitSetCodecTest extends TestBase { public BitSetCodecTest() { @@ -44,12 +42,12 @@ public void testBitSetBasicUsage() { getMapper().map(ClassWithBitSet.class); ClassWithBitSet found = getDs().find(ClassWithBitSet.class).filter(Filters.eq("id", testClass.id)).first(); - assertEquals(found.bits.get(3), false); - assertEquals(found.bits.get(4), true); - assertEquals(found.bits.get(5), false); - assertEquals(found.bits.get(43), false); - assertEquals(found.bits.get(44), true); - assertEquals(found.bits.get(45), false); + Assertions.assertEquals(false, found.bits.get(3)); + Assertions.assertEquals(true, found.bits.get(4)); + Assertions.assertEquals(false, found.bits.get(5)); + Assertions.assertEquals(false, found.bits.get(43)); + Assertions.assertEquals(true, found.bits.get(44)); + Assertions.assertEquals(false, found.bits.get(45)); } @Test @@ -60,7 +58,7 @@ public void testBitSetEmptyCase() { ClassWithBitSet found = getDs().find(ClassWithBitSet.class).filter(Filters.eq("id", testClass.id)).first(); for (int i = 0; i < found.bits.size(); ++i) { - assertEquals(found.bits.get(i), false); + Assertions.assertEquals(false, found.bits.get(i)); } } @@ -71,8 +69,8 @@ public void testBitSetNullCase() { getMapper().map(ClassWithBitSet.class); ClassWithBitSet found = getDs().find(ClassWithBitSet.class).filter(Filters.eq("id", testClass.id)).first(); - assertNotNull(found); - assertNull(found.bits); + Assertions.assertNotNull(found); + Assertions.assertNull(found.bits); } @Test @@ -87,13 +85,13 @@ public void testBitSetDecodeLegacyFormat() { // retrieve document, make sure it's still the same ClassWithBitSet result = getDs().find(ClassWithBitSet.class).filter(Filters.eq("_id", 2L)).first(); - assertNotNull(result); - assertEquals(result.bits.get(3), false); - assertEquals(result.bits.get(4), true); - assertEquals(result.bits.get(5), false); - assertEquals(result.bits.get(64), true); - assertEquals(result.bits.get(65), false); - assertEquals(result.bits.get(66), true); + Assertions.assertNotNull(result); + Assertions.assertEquals(false, result.bits.get(3)); + Assertions.assertEquals(true, result.bits.get(4)); + Assertions.assertEquals(false, result.bits.get(5)); + Assertions.assertEquals(true, result.bits.get(64)); + Assertions.assertEquals(false, result.bits.get(65)); + Assertions.assertEquals(true, result.bits.get(66)); } } diff --git a/core/src/test/java/dev/morphia/test/mapping/codec/DocumentReaderTest.java b/core/src/test/java/dev/morphia/test/mapping/codec/DocumentReaderTest.java index 0ad478bbcb6..c1f474d3127 100644 --- a/core/src/test/java/dev/morphia/test/mapping/codec/DocumentReaderTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/codec/DocumentReaderTest.java @@ -24,12 +24,11 @@ import org.bson.codecs.DecoderContext; import org.bson.types.Binary; import org.bson.types.ObjectId; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static org.bson.Document.parse; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; public class DocumentReaderTest extends TestBase { @@ -43,16 +42,16 @@ public void mark() { step(BsonReader::readStartDocument); BsonReaderMark docMark = reader.getMark(); - step(r -> assertEquals(r.readName(), "key")); - step(r -> assertEquals(r.readString(), "value")); + step(r -> Assertions.assertEquals("key", r.readName())); + step(r -> Assertions.assertEquals("value", r.readString())); docMark.reset(); - step(r -> assertEquals(r.readName(), "key")); - step(r -> assertEquals(r.readString(), "value")); + step(r -> Assertions.assertEquals("key", r.readName())); + step(r -> Assertions.assertEquals("value", r.readString())); - step(r -> assertEquals(r.readName(), "nested")); - step(r -> assertEquals(r.readString(), "detsen")); + step(r -> Assertions.assertEquals("nested", r.readName())); + step(r -> Assertions.assertEquals("detsen", r.readString())); step(BsonReader::readEndDocument); } @@ -66,13 +65,13 @@ public void nested() { new Document("list3", "value3")))); step(BsonReader::readStartDocument); - step(r -> assertEquals(r.getCurrentBsonType(), BsonType.DOCUMENT)); - step(r -> assertEquals(r.readName(), "key")); + step(r -> Assertions.assertEquals(BsonType.DOCUMENT, r.getCurrentBsonType())); + step(r -> Assertions.assertEquals("key", r.readName())); step(BsonReader::readStartDocument); - step(r -> assertEquals(r.readName(), "nested")); - step(r -> assertEquals(r.readString(), "detsen")); + step(r -> Assertions.assertEquals("nested", r.readName())); + step(r -> Assertions.assertEquals("detsen", r.readString())); step(BsonReader::readEndDocument); - step(r -> assertEquals(r.readName(), "list")); + step(r -> Assertions.assertEquals("list", r.readName())); step(BsonReader::readStartArray); readDocument(1); readDocument(2); @@ -98,7 +97,7 @@ public void nestedDatabaseRead() { Parent decode = getDs().getCodecRegistry().get(Parent.class) .decode(new DocumentReader(first, getDs().getMapper().getConversions()), DecoderContext.builder().build()); - assertEquals(parent, decode); + Assertions.assertEquals(decode, parent); } @Test @@ -108,18 +107,18 @@ public void read() { .append("another", "entry")); step(BsonReader::readStartDocument); - step(r -> assertEquals(r.getCurrentBsonType(), BsonType.STRING)); - step(r -> assertEquals(r.readName(), "key")); - step(r -> assertEquals(r.readString(), "value")); - step(r -> assertEquals(r.readName(), "numbers")); + step(r -> Assertions.assertEquals(BsonType.STRING, r.getCurrentBsonType())); + step(r -> Assertions.assertEquals("key", r.readName())); + step(r -> Assertions.assertEquals("value", r.readString())); + step(r -> Assertions.assertEquals("numbers", r.readName())); step(BsonReader::readStartArray); for (int i = 1; i < 6; i++) { final int finalI = i; - step(r -> assertEquals(finalI, r.readInt32())); + step(r -> Assertions.assertEquals(r.readInt32(), finalI)); } step(BsonReader::readEndArray); - step(r -> assertEquals(r.readName(), "another")); - step(r -> assertEquals(r.readString(), "entry")); + step(r -> Assertions.assertEquals("another", r.readName())); + step(r -> Assertions.assertEquals("entry", r.readString())); step(BsonReader::readEndDocument); } @@ -127,33 +126,33 @@ public void read() { public void testBookmarkingAndSkips() { setup(Document.parse("{ key: { subKey: 3 }, second: 2 }")); - step(r -> assertEquals(r.getCurrentBsonType(), BsonType.DOCUMENT)); + step(r -> Assertions.assertEquals(BsonType.DOCUMENT, r.getCurrentBsonType())); step(BsonReader::readStartDocument); - step(r -> assertEquals(r.readName(), "key")); + step(r -> Assertions.assertEquals("key", r.readName())); BsonReaderMark mark = reader.getMark(); step(BsonReader::readStartDocument); - step(r -> assertEquals(r.readName(), "subKey")); - step(r -> assertEquals(r.readInt32(), 3)); + step(r -> Assertions.assertEquals("subKey", r.readName())); + step(r -> Assertions.assertEquals(3, r.readInt32())); step(BsonReader::readEndDocument); mark.reset(); reader.skipValue(); - step(r -> assertEquals(r.readName(), "second")); - step(r -> assertEquals(r.readInt32(), 2)); + step(r -> Assertions.assertEquals("second", r.readName())); + step(r -> Assertions.assertEquals(2, r.readInt32())); step(BsonReader::readEndDocument); setup(Document.parse("{ key: [ 1, 2, 3 ], second: 8 }")); - step(r -> assertEquals(r.getCurrentBsonType(), BsonType.DOCUMENT)); + step(r -> Assertions.assertEquals(BsonType.DOCUMENT, r.getCurrentBsonType())); step(BsonReader::readStartDocument); - step(r -> assertEquals(r.readName(), "key")); + step(r -> Assertions.assertEquals("key", r.readName())); mark = reader.getMark(); step(BsonReader::readStartArray); - step(r -> assertEquals(r.readInt32(), 1)); - step(r -> assertEquals(r.readInt32(), 2)); + step(r -> Assertions.assertEquals(1, r.readInt32())); + step(r -> Assertions.assertEquals(2, r.readInt32())); mark.reset(); reader.skipValue(); - step(r -> assertEquals(r.readName(), "second")); - step(r -> assertEquals(r.readInt32(), 8)); + step(r -> Assertions.assertEquals("second", r.readName())); + step(r -> Assertions.assertEquals(8, r.readInt32())); step(BsonReader::readEndDocument); } @@ -164,17 +163,17 @@ public void testBsonBinary() { setup(new Document("bin", bsonBinary)); step(BsonReader::readStartDocument); - step(r -> assertEquals(r.readName(), "bin")); - step(r -> assertEquals(r.getCurrentBsonType(), BsonType.BINARY)); - step(r -> assertEquals(r.readBinaryData(), bsonBinary)); + step(r -> Assertions.assertEquals("bin", r.readName())); + step(r -> Assertions.assertEquals(BsonType.BINARY, r.getCurrentBsonType())); + step(r -> Assertions.assertEquals(bsonBinary, r.readBinaryData())); step(BsonReader::readEndDocument); Binary legacy = new Binary(data); setup(new Document("bin", legacy)); step(BsonReader::readStartDocument); - step(r -> assertEquals(r.readName(), "bin")); - step(r -> assertEquals(r.getCurrentBsonType(), BsonType.BINARY)); - step(r -> assertTrue(Arrays.equals(r.readBinaryData().getData(), data))); + step(r -> Assertions.assertEquals("bin", r.readName())); + step(r -> Assertions.assertEquals(BsonType.BINARY, r.getCurrentBsonType())); + step(r -> Assertions.assertTrue(Arrays.equals(r.readBinaryData().getData(), data))); step(BsonReader::readEndDocument); } @@ -187,7 +186,7 @@ public void testBsonBinaryRoundTrip() { .withDocumentClass(Document.class) .find().first(); HasBsonBinary decoded = fromDocument(HasBsonBinary.class, first); - assertEquals(decoded.data, entity.data); + Assertions.assertEquals(entity.data, decoded.data); } @Test @@ -247,14 +246,14 @@ public void testDates() { public void testNestedArrays() { setup(parse("{ coordinates : [ [ [ 0, 1 ], [ 1, 2 ], [ 2, 3 ], [ 3, 4 ], [ 4, 5 ] ] ] }")); - step(r -> assertEquals(r.getCurrentBsonType(), BsonType.DOCUMENT)); + step(r -> Assertions.assertEquals(BsonType.DOCUMENT, r.getCurrentBsonType())); step(BsonReader::readStartDocument); - step(r -> assertEquals(r.readName(), "coordinates")); + step(r -> Assertions.assertEquals("coordinates", r.readName())); - step(r -> assertEquals(r.getCurrentBsonType(), BsonType.ARRAY)); + step(r -> Assertions.assertEquals(BsonType.ARRAY, r.getCurrentBsonType())); step(BsonReader::readStartArray); - step(r -> assertEquals(r.getCurrentBsonType(), BsonType.ARRAY)); + step(r -> Assertions.assertEquals(BsonType.ARRAY, r.getCurrentBsonType())); step(BsonReader::readStartArray); for (int i = 0; i < 5; i++) { @@ -270,22 +269,22 @@ public void testNestedArrays() { public void testNulls() { setup(Document.parse("{ key: null, another: 'fun' }")); - step(r -> assertEquals(r.getCurrentBsonType(), BsonType.DOCUMENT)); + step(r -> Assertions.assertEquals(BsonType.DOCUMENT, r.getCurrentBsonType())); step(BsonReader::readStartDocument); - assertTrue(reader.currentState() instanceof NameState); + Assertions.assertTrue(reader.currentState() instanceof NameState); step(r -> { - assertEquals(r.readName(), "key"); - assertTrue(reader.currentState() instanceof ValueState); + Assertions.assertEquals("key", r.readName()); + Assertions.assertTrue(reader.currentState() instanceof ValueState); }); step(r -> { r.readNull(); - assertTrue(reader.currentState() instanceof NameState); + Assertions.assertTrue(reader.currentState() instanceof NameState); }); step(r -> { - assertEquals(r.readName(), "another"); - assertTrue(reader.currentState() instanceof ValueState); + Assertions.assertEquals("another", r.readName()); + Assertions.assertTrue(reader.currentState() instanceof ValueState); }); - step(r -> assertEquals(r.readString(), "fun")); + step(r -> Assertions.assertEquals("fun", r.readString())); step(BsonReader::readEndDocument); } @@ -294,24 +293,24 @@ public void testSkips() { setup(Document.parse("{ key: 'value', second: 2 }")); step(r -> { - assertEquals(r.getCurrentBsonType(), BsonType.DOCUMENT); + Assertions.assertEquals(BsonType.DOCUMENT, r.getCurrentBsonType()); r.readStartDocument(); - assertTrue(reader.currentState() instanceof NameState); + Assertions.assertTrue(reader.currentState() instanceof NameState); }); step(r -> { r.skipName(); - assertTrue(reader.currentState() instanceof ValueState); + Assertions.assertTrue(reader.currentState() instanceof ValueState); }); step(r -> { r.skipValue(); - assertTrue(reader.currentState() instanceof NameState); + Assertions.assertTrue(reader.currentState() instanceof NameState); }); } private void readDocument(int count) { step(BsonReader::readStartDocument); - step(r -> assertEquals("list" + count, r.readName())); - step(r -> assertEquals("value" + count, r.readString())); + step(r -> Assertions.assertEquals(r.readName(), "list" + count)); + step(r -> Assertions.assertEquals(r.readString(), "value" + count)); step(BsonReader::readEndDocument); } @@ -324,12 +323,12 @@ private void step(Consumer function) { } private void testArray(int i) { - step(r -> assertEquals(r.getCurrentBsonType(), BsonType.ARRAY)); + step(r -> Assertions.assertEquals(BsonType.ARRAY, r.getCurrentBsonType())); step(BsonReader::readStartArray); - step(r -> assertEquals(r.getCurrentBsonType(), BsonType.INT32)); + step(r -> Assertions.assertEquals(BsonType.INT32, r.getCurrentBsonType())); int expected = i; - step(r -> assertEquals(r.readInt32(), expected)); - step(r -> assertEquals(r.readInt32(), expected + 1)); + step(r -> Assertions.assertEquals(expected, r.readInt32())); + step(r -> Assertions.assertEquals(expected + 1, r.readInt32())); step(BsonReader::readEndArray); } diff --git a/core/src/test/java/dev/morphia/test/mapping/codec/TestDocumentWriter.java b/core/src/test/java/dev/morphia/test/mapping/codec/TestDocumentWriter.java index 243f8bdb89f..eea060fec16 100644 --- a/core/src/test/java/dev/morphia/test/mapping/codec/TestDocumentWriter.java +++ b/core/src/test/java/dev/morphia/test/mapping/codec/TestDocumentWriter.java @@ -10,18 +10,17 @@ import dev.morphia.test.models.User; import org.bson.Document; -import org.json.JSONException; -import org.skyscreamer.jsonassert.JSONAssert; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.mapping.codec.CodecHelper.array; import static dev.morphia.mapping.codec.CodecHelper.document; import static dev.morphia.query.filters.Filters.*; import static java.util.Arrays.asList; import static java.util.List.of; -import static org.testng.Assert.assertEquals; +import static org.bson.Document.parse; +@SuppressWarnings("CodeBlock2Expr") public class TestDocumentWriter extends TestBase { @Test @@ -34,8 +33,8 @@ public void testAnd() { query.filter(Filters.lt("field2", 2000)); Document document = query.toDocument(); - assertEquals(((Map) document.get("field1")).size(), 2); - assertEquals(((Map) document.get("field2")).size(), 2); + Assertions.assertEquals(2, ((Map) document.get("field1")).size()); + Assertions.assertEquals(2, ((Map) document.get("field2")).size()); } @Test @@ -67,8 +66,7 @@ public void arrays() { writer.writeString("something simple"); }); - Assert.assertEquals(writer.getDocument(), new Document("stuff", asList("hello", 42)) - .append("next", "something simple")); + assertDocumentEquals(new Document("stuff", asList("hello", 42)).append("next", "something simple"), writer.getDocument()); } @Test @@ -83,7 +81,7 @@ public void arraysWithDocs() { }); }); - Assert.assertEquals(writer.getDocument(), new MergingDocument("stuff", of(new MergingDocument("doc", 42)))); + assertDocumentEquals(new MergingDocument("stuff", of(new MergingDocument("doc", 42))), writer.getDocument()); } @Test @@ -99,7 +97,7 @@ public void basic() { expected.put("entry " + j, j); } }); - Assert.assertEquals(expected, writer.getDocument()); + assertDocumentEquals(expected, writer.getDocument()); } } @@ -113,21 +111,16 @@ public void nestedArrays() { writer.writeInt32(1); writer.writeInt32(2); writer.writeInt32(3); - document(writer, () -> { - writer.writeString("nested", "string"); - }); + document(writer, () -> writer.writeString("nested", "string")); }); }); }); Document top = new MergingDocument("top", of(of(1, 2, 3, new MergingDocument("nested", "string")))); - Assert.assertEquals(top, writer.getDocument()); + assertDocumentEquals(writer.getDocument(), top); } @Test - public void nesting() throws JSONException { - String expected = "{$group : {_id : {$dateToString: {format: \"%Y-%m-%d\", date: \"$date\"}}, totalSaleAmount: {$sum: " - + "{$multiply: [ \"$price\", \"$quantity\" ]}}, averageQuantity: {$avg: \"$quantity\"},count: {$sum: 1}}}"; - + public void nesting() { DocumentWriter writer = new DocumentWriter(getMapper().getConfig()); document(writer, () -> { document(writer, "$group", () -> { @@ -156,8 +149,9 @@ public void nesting() throws JSONException { }); }); - String s = writer.getDocument().toJson(); - JSONAssert.assertEquals(expected, s, false); + assertDocumentEquals(parse("{$group : {_id : {$dateToString: {format: \"%Y-%m-%d\", date: \"$date\"}}, totalSaleAmount: {$sum: " + + "{$multiply: [ \"$price\", \"$quantity\" ]}}, averageQuantity: {$avg: \"$quantity\"},count: {$sum: 1}}}"), + writer.getDocument(), false); } @Test @@ -168,7 +162,7 @@ public void subdocuments() { document(writer, () -> writer.writeInt32("nested", 42)); }); - Assert.assertEquals(writer.getDocument(), new MergingDocument("subdoc", new MergingDocument("nested", 42))); + assertDocumentEquals(new MergingDocument("subdoc", new MergingDocument("nested", 42)), writer.getDocument()); } } diff --git a/core/src/test/java/dev/morphia/test/mapping/codec/pojo/DiscriminantLifecycleTest.java b/core/src/test/java/dev/morphia/test/mapping/codec/pojo/DiscriminantLifecycleTest.java index e4235801efe..619aade2c8b 100644 --- a/core/src/test/java/dev/morphia/test/mapping/codec/pojo/DiscriminantLifecycleTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/codec/pojo/DiscriminantLifecycleTest.java @@ -1,5 +1,7 @@ package dev.morphia.test.mapping.codec.pojo; +import java.util.stream.Stream; + import dev.morphia.annotations.Entity; import dev.morphia.annotations.Id; import dev.morphia.annotations.PostLoad; @@ -10,9 +12,10 @@ import org.bson.Document; import org.bson.codecs.configuration.CodecConfigurationException; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import static java.util.List.of; @@ -26,34 +29,39 @@ public DiscriminantLifecycleTest() { .packages(of("dev.morphia.test.mapping.codec.pojo"))); } - @DataProvider(name = "classes") - public Object[][] classes() { - return new Object[][] { - { BaseLifecycleEntity.class, ChildLifecycleEntity.class }, - { BaseEntity.class, ChildEntity.class } - }; + static Stream classes() { + return Stream.of( + Arguments.of(BaseLifecycleEntity.class, ChildLifecycleEntity.class), + Arguments.of(BaseEntity.class, ChildEntity.class)); } - @Test(dataProvider = "classes") + @ParameterizedTest + @MethodSource("classes") public void testCorrectEntity(Class baseClass, Class childClass) { ObjectId id = saveChildEntity(childClass); Child saved = (Child) getDs().find(baseClass).filter(Filters.eq("_id", id)).first(); - Assert.assertTrue(childClass.isInstance(saved)); - Assert.assertTrue(saved.getAudited()); - Assert.assertEquals("embedded", saved.getEmbed().embeddedValue); + Assertions.assertTrue(childClass.isInstance(saved)); + Assertions.assertTrue(saved.getAudited()); + Assertions.assertEquals(saved.getEmbed().embeddedValue, "embedded"); } - @Test(expectedExceptions = CodecConfigurationException.class, dataProvider = "classes") + @ParameterizedTest + @MethodSource("classes") public void testWrongDiscriminator(Class baseClass, Class childClass) { - Document entity = new Document("_t", "Nonsense"); - ObjectId id = getDatabase().getCollection("entity").insertOne(entity).getInsertedId().asObjectId().getValue(); - getDs().find(baseClass).filter(Filters.eq("_id", id)).first(); + Assertions.assertThrows(CodecConfigurationException.class, () -> { + Document entity = new Document("_t", "Nonsense"); + ObjectId id = getDatabase().getCollection("entity").insertOne(entity).getInsertedId().asObjectId().getValue(); + getDs().find(baseClass).filter(Filters.eq("_id", id)).first(); + }); } - @Test(expectedExceptions = CodecConfigurationException.class, dataProvider = "classes") + @ParameterizedTest + @MethodSource("classes") public void testNonEntityDiscriminator(Class baseClass, Class childClass) { - ObjectId id = saveChildEntity(NonEntity.class); - getDs().find(baseClass).filter(Filters.eq("_id", id)).first(); + Assertions.assertThrows(CodecConfigurationException.class, () -> { + ObjectId id = saveChildEntity(NonEntity.class); + getDs().find(baseClass).filter(Filters.eq("_id", id)).first(); + }); } private ObjectId saveChildEntity(Class entityClass) { diff --git a/core/src/test/java/dev/morphia/test/mapping/codec/pojo/EntityModelTest.java b/core/src/test/java/dev/morphia/test/mapping/codec/pojo/EntityModelTest.java index 0aea60d0909..2cdd4496abf 100644 --- a/core/src/test/java/dev/morphia/test/mapping/codec/pojo/EntityModelTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/codec/pojo/EntityModelTest.java @@ -12,37 +12,37 @@ import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static java.util.stream.Collectors.joining; -import static org.testng.Assert.assertEquals; public class EntityModelTest extends TestBase { @Test public void testFindParameterization() { EntityModel model = getMapper().mapEntity(Child.class); - assertEquals(model.getProperty("someField").getType(), LocalDate.class); + Assertions.assertEquals(LocalDate.class, model.getProperty("someField").getType()); } @Test public void testGenericFields() { EntityModel model = getDs().getMapper().map(Base.class).get(0); - assertEquals(model.getProperties().size(), 3, model.getProperties().stream() + Assertions.assertEquals(3, model.getProperties().size(), model.getProperties().stream() .map(PropertyModel::getName) .collect(joining(", "))); model = getDs().getMapper().map(Parent.class).get(0); - assertEquals(model.getProperties().size(), 4, model.getProperties().stream() + Assertions.assertEquals(4, model.getProperties().size(), model.getProperties().stream() .map(PropertyModel::getName) .collect(joining(", "))); model = getDs().getMapper().map(Child.class).get(0); - assertEquals(model.getProperties().size(), 5, model.getProperties().stream() + Assertions.assertEquals(5, model.getProperties().size(), model.getProperties().stream() .map(PropertyModel::getName) .collect(joining(", "))); - assertEquals(model.getProperty("t").getType(), String.class); - assertEquals(model.getProperty("someField").getType(), LocalDate.class); + Assertions.assertEquals(String.class, model.getProperty("t").getType()); + Assertions.assertEquals(LocalDate.class, model.getProperty("someField").getType()); } @Test @@ -56,9 +56,9 @@ public void testInheritedTypes() { beforeDB.setNumber2(14); getDs().save(beforeDB); - assertEquals(model.getProperty("id").getType(), UUID.class); - assertEquals(model.getProperty("test").getType(), String.class); - assertEquals(model.getProperty("test2").getType(), UUID.class); + Assertions.assertEquals(UUID.class, model.getProperty("id").getType()); + Assertions.assertEquals(String.class, model.getProperty("test").getType()); + Assertions.assertEquals(UUID.class, model.getProperty("test2").getType()); getDs().getDatabase() .getCollection("specificEntity") diff --git a/core/src/test/java/dev/morphia/test/mapping/codec/pojo/TypeDataTest.java b/core/src/test/java/dev/morphia/test/mapping/codec/pojo/TypeDataTest.java index 2152c5fcd60..4d6595c92a7 100644 --- a/core/src/test/java/dev/morphia/test/mapping/codec/pojo/TypeDataTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/codec/pojo/TypeDataTest.java @@ -17,24 +17,23 @@ import dev.morphia.test.models.Hotel; import dev.morphia.test.models.Hotel.Type; -import org.testng.annotations.Test; - -import static org.testng.Assert.assertEquals; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class TypeDataTest extends TestBase { @Test public void testWildcards() throws NoSuchFieldException { TypeData typeData = TypeData.get(WildCard.class.getDeclaredField("listOfLists")); - assertEquals(typeData.getType(), List.class); + Assertions.assertEquals(List.class, typeData.getType()); List> typeParameters = typeData.getTypeParameters(); typeData = typeParameters.get(0); - assertEquals(typeData.getType(), List.class); + Assertions.assertEquals(List.class, typeData.getType()); typeParameters = typeData.getTypeParameters(); typeData = typeParameters.get(0); - assertEquals(typeData.getType(), String.class); + Assertions.assertEquals(String.class, typeData.getType()); } @@ -97,11 +96,11 @@ private static void typeData(Class owner, String fieldName, Class fieldTyp throws NoSuchFieldException { Field field = owner.getDeclaredField(fieldName); TypeData typeData = TypeData.get(field); - assertEquals(typeData.getType(), fieldType); + Assertions.assertEquals(fieldType, typeData.getType()); List> typeParameters = typeData.getTypeParameters(); - assertEquals(typeParameters.size(), parameterTypes.length); + Assertions.assertEquals(parameterTypes.length, typeParameters.size()); for (int i = 0; i < parameterTypes.length; i++) { - assertEquals(typeParameters.get(i).getType(), parameterTypes[i]); + Assertions.assertEquals(parameterTypes[i], typeParameters.get(i).getType()); } } diff --git a/core/src/test/java/dev/morphia/test/mapping/internal/ConstructorCreatorTest.java b/core/src/test/java/dev/morphia/test/mapping/internal/ConstructorCreatorTest.java index 629c2a639b0..b5b6b102e4b 100644 --- a/core/src/test/java/dev/morphia/test/mapping/internal/ConstructorCreatorTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/internal/ConstructorCreatorTest.java @@ -33,15 +33,13 @@ import org.bson.BsonString; import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.Sort.ascending; import static dev.morphia.query.Sort.descending; import static dev.morphia.query.filters.Filters.lte; import static java.util.Arrays.asList; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; public class ConstructorCreatorTest extends TestBase { @@ -65,34 +63,34 @@ public void embeds() { .filter(lte("orderDate", LocalDateTime.now().plusDays(5))) .iterator(); List list = criteria1.toList(); - assertEquals(list.get(0).getAddresses().get(0).getCity(), "NYC", + Assertions.assertEquals("NYC", list.get(0).getAddresses().get(0).getCity(), list.stream().map(Invoice::getId).collect(Collectors.toList()).toString()); - assertEquals(list.get(0), invoice, list.stream().map(Invoice::getId).collect(Collectors.toList()).toString()); + Assertions.assertEquals(invoice, list.get(0), list.stream().map(Invoice::getId).collect(Collectors.toList()).toString()); MorphiaCursor criteria2 = getDs().find(Invoice.class, new FindOptions() .sort(descending("addresses"))) .iterator(); - assertEquals(criteria2.toList().get(0).getAddresses().get(0).getCity(), "New York City"); + Assertions.assertEquals("New York City", criteria2.toList().get(0).getAddresses().get(0).getCity()); } @Test public void testBestConstructor() { Constructor constructor = ConstructorCreator.bestConstructor(getDs().getMapper().map(SomeProps.class).get(0)); - assertNotNull(constructor); - assertEquals(constructor.getParameterCount(), 2); + Assertions.assertNotNull(constructor); + Assertions.assertEquals(2, constructor.getParameterCount()); constructor = ConstructorCreator.bestConstructor(getDs().getMapper().map(AllProps.class).get(0)); - assertNotNull(constructor); - assertEquals(constructor.getParameterCount(), 3); + Assertions.assertNotNull(constructor); + Assertions.assertEquals(3, constructor.getParameterCount()); constructor = ConstructorCreator.bestConstructor(getDs().getMapper().map(NoProps.class).get(0)); - assertNull(constructor); + Assertions.assertNull(constructor); constructor = ConstructorCreator.bestConstructor(getDs().getMapper().map(Default.class).get(0)); - assertNotNull(constructor); - assertEquals(constructor.getParameterCount(), 0); + Assertions.assertNotNull(constructor); + Assertions.assertEquals(0, constructor.getParameterCount()); } @Test @@ -105,11 +103,11 @@ public void typeConversions() { InsertOneResult result = collection .withDocumentClass(Document.class) .insertOne(document); - assertEquals(((BsonString) result.getInsertedId()).getValue(), "2"); + Assertions.assertEquals("2", ((BsonString) result.getInsertedId()).getValue()); var first = getDs().find(MyEntity.class).first(); - assertEquals(first.id, 2L); - assertEquals(first.embedded.myId, 1234L); + Assertions.assertEquals(2L, first.id); + Assertions.assertEquals(1234L, first.embedded.myId); } diff --git a/core/src/test/java/dev/morphia/test/mapping/lazy/LazyInEmbeddedTest.java b/core/src/test/java/dev/morphia/test/mapping/lazy/LazyInEmbeddedTest.java index 589464c2e59..747d026dc0b 100644 --- a/core/src/test/java/dev/morphia/test/mapping/lazy/LazyInEmbeddedTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/lazy/LazyInEmbeddedTest.java @@ -11,14 +11,16 @@ import dev.morphia.test.TestBase; import dev.morphia.test.models.TestEntity; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static java.util.Arrays.asList; -import static org.testng.Assert.assertNotNull; -@Test(groups = "references") +@Tag("references") public class LazyInEmbeddedTest extends TestBase { + @Test public void testLoadingOfRefInField() { checkForProxyTypes(); @@ -36,8 +38,8 @@ public void testLoadingOfRefInField() { containerWithRefInField = getDs().find(ContainerWithRefInField.class) .filter(eq("_id", containerWithRefInField.getId())) .first(); - assertNotNull(otherEntity); - assertNotNull(containerWithRefInField); + Assertions.assertNotNull(otherEntity); + Assertions.assertNotNull(containerWithRefInField); final EmbedWithRef embedWithRef = new EmbedWithRef(); embedWithRef.otherEntity = otherEntity; @@ -45,7 +47,7 @@ public void testLoadingOfRefInField() { getDs().save(containerWithRefInField); - assertNotNull(getDs().find(ContainerWithRefInField.class) + Assertions.assertNotNull(getDs().find(ContainerWithRefInField.class) .filter(eq("_id", containerWithRefInField.getId())) .first()); @@ -69,8 +71,8 @@ public void testLoadingOfRefInList() { containerWithRefInList = getDs().find(ContainerWithRefList.class) .filter(eq("_id", containerWithRefInList.getId())) .first(); - assertNotNull(otherEntity); - assertNotNull(containerWithRefInList); + Assertions.assertNotNull(otherEntity); + Assertions.assertNotNull(containerWithRefInList); final EmbedWithRef embedWithRef = new EmbedWithRef(); embedWithRef.otherEntity = otherEntity; @@ -81,11 +83,11 @@ public void testLoadingOfRefInList() { containerWithRefInList = getDs().find(ContainerWithRefList.class) .filter(eq("_id", containerWithRefInList.getId())) .first(); - assertNotNull(containerWithRefInList); + Assertions.assertNotNull(containerWithRefInList); final Query createQuery = getDs().find(ContainerWithRefList.class); containerWithRefInList = createQuery.iterator().tryNext(); - assertNotNull(containerWithRefInList); + Assertions.assertNotNull(containerWithRefInList); } @@ -107,8 +109,8 @@ public void testLoadingOfRefThroughInheritanceInField() { ContainerWithRefInField reload = getDs().find(ContainerWithRefInField.class) .filter(eq("_id", containerWithRefInField.getId())) .first(); - assertNotNull(otherEntity); - assertNotNull(reload); + Assertions.assertNotNull(otherEntity); + Assertions.assertNotNull(reload); final EmbedWithRef embedWithRef = new EmbedWithRef(); embedWithRef.otherEntity = otherEntity; @@ -121,7 +123,7 @@ public void testLoadingOfRefThroughInheritanceInField() { containerWithRefInField = getDs().find(ContainerWithRefInField.class) .filter(eq("_id", containerWithRefInField.getId())) .first(); - assertNotNull(containerWithRefInField); + Assertions.assertNotNull(containerWithRefInField); } @@ -143,8 +145,8 @@ public void testLoadingOfRefThroughInheritanceInList() { final ContainerWithRefList reload = getDs().find(ContainerWithRefList.class) .filter(eq("_id", containerWithRefInList.getId())) .first(); - assertNotNull(otherEntity); - assertNotNull(reload); + Assertions.assertNotNull(otherEntity); + Assertions.assertNotNull(reload); final EmbedWithRef embedWithRef = new EmbedWithRef(); embedWithRef.otherEntity = otherEntity; @@ -155,10 +157,10 @@ public void testLoadingOfRefThroughInheritanceInList() { containerWithRefInList = getDs().find(ContainerWithRefList.class) .filter(eq("_id", reload.getId())) .first(); - assertNotNull(containerWithRefInList); + Assertions.assertNotNull(containerWithRefInList); final Query createQuery = getDs().find(ContainerWithRefList.class); containerWithRefInList = createQuery.iterator().tryNext(); - assertNotNull(containerWithRefInList); + Assertions.assertNotNull(containerWithRefInList); } diff --git a/core/src/test/java/dev/morphia/test/mapping/lazy/TestLazyCircularReference.java b/core/src/test/java/dev/morphia/test/mapping/lazy/TestLazyCircularReference.java index 9b0be34575c..5fffbcee043 100644 --- a/core/src/test/java/dev/morphia/test/mapping/lazy/TestLazyCircularReference.java +++ b/core/src/test/java/dev/morphia/test/mapping/lazy/TestLazyCircularReference.java @@ -6,17 +6,19 @@ import dev.morphia.test.models.TestEntity; import org.bson.types.ObjectId; -import org.testng.annotations.Ignore; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static java.util.Arrays.asList; -import static org.testng.Assert.assertEquals; -@Test(groups = "references") -@Ignore("references need caching") +@Tag("references") +@Disabled("references need caching") public class TestLazyCircularReference extends ProxyTestBase { + @Test public void testCircularReferences() { RootEntity root = new RootEntity(); ReferencedEntity first = new ReferencedEntity(); @@ -31,11 +33,12 @@ public void testCircularReferences() { getDs().save(asList(root, first, second)); RootEntity rootEntity = getDs().find(RootEntity.class).iterator().tryNext(); - assertEquals(first.getId(), rootEntity.getR().getId()); - assertEquals(second.getId(), rootEntity.getSecondReference().getId()); - assertEquals(root.getId(), rootEntity.getR().getParent().getId()); + Assertions.assertEquals(rootEntity.getR().getId(), first.getId()); + Assertions.assertEquals(rootEntity.getSecondReference().getId(), second.getId()); + Assertions.assertEquals(rootEntity.getR().getParent().getId(), root.getId()); } + @Test public void testGetKeyWithoutFetching() { checkForProxyTypes(); diff --git a/core/src/test/java/dev/morphia/test/mapping/lazy/TestLazyIdOnly.java b/core/src/test/java/dev/morphia/test/mapping/lazy/TestLazyIdOnly.java index 9f2ad62f2f0..b8acba440d8 100644 --- a/core/src/test/java/dev/morphia/test/mapping/lazy/TestLazyIdOnly.java +++ b/core/src/test/java/dev/morphia/test/mapping/lazy/TestLazyIdOnly.java @@ -9,14 +9,13 @@ import dev.morphia.test.mapping.ProxyTestBase; import dev.morphia.test.models.TestEntity; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertThrows; -@Test(groups = "references") +@Tag("references") public class TestLazyIdOnly extends ProxyTestBase { @Test @@ -44,16 +43,16 @@ public void testQueryAfterReferentIsGone() { datastore.delete(reference); root = datastore.find(RootEntity.class).first(); - assertNotNull(root); + Assertions.assertNotNull(root); - assertThrows(ReferenceException.class, () -> { + Assertions.assertThrows(ReferenceException.class, () -> { datastore.find(RootEntity.class).filter(eq("dontIgnoreMissing", p)).first(); }); - assertNull(datastore.find(RootEntity.class).filter(eq("ignoreMissing", p)).first()); + Assertions.assertNull(datastore.find(RootEntity.class).filter(eq("ignoreMissing", p)).first()); ReferencedEntity r = root.dontIgnoreMissing; - assertThrows(ReferenceException.class, () -> { + Assertions.assertThrows(ReferenceException.class, () -> { r.getFoo(); }); } diff --git a/core/src/test/java/dev/morphia/test/mapping/lazy/TestLazyIdOnlyIgnoreMissing.java b/core/src/test/java/dev/morphia/test/mapping/lazy/TestLazyIdOnlyIgnoreMissing.java index 7fa95c210ea..e18c98e74d1 100644 --- a/core/src/test/java/dev/morphia/test/mapping/lazy/TestLazyIdOnlyIgnoreMissing.java +++ b/core/src/test/java/dev/morphia/test/mapping/lazy/TestLazyIdOnlyIgnoreMissing.java @@ -11,12 +11,13 @@ import dev.morphia.test.models.TestEntity; import org.bson.types.ObjectId; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; -import static org.testng.Assert.assertEquals; -@Test(groups = "references") +@Tag("references") public class TestLazyIdOnlyIgnoreMissing extends ProxyTestBase { @Test public void testDuplicatesInList() { @@ -32,9 +33,10 @@ public void testDuplicatesInList() { ListReferences first = getDs().find(ListReferences.class).first(); - assertEquals(first, references); + Assertions.assertEquals(references, first); } + @Test public void testSaveAfterReferentIsGone() { checkForProxyTypes(); diff --git a/core/src/test/java/dev/morphia/test/mapping/lazy/TestReferenceCollection.java b/core/src/test/java/dev/morphia/test/mapping/lazy/TestReferenceCollection.java index b947bbb3a9f..e6d64cbf3be 100644 --- a/core/src/test/java/dev/morphia/test/mapping/lazy/TestReferenceCollection.java +++ b/core/src/test/java/dev/morphia/test/mapping/lazy/TestReferenceCollection.java @@ -10,8 +10,8 @@ import dev.morphia.test.mapping.ProxyTestBase; import dev.morphia.test.models.TestEntity; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; @@ -33,16 +33,16 @@ public void testOrderingPreserved() { getDs().save(endpoint1); getDs().save(endpoint2); - Assert.assertEquals("b1", origin.lazyList.iterator().next().foo); + Assertions.assertEquals(origin.lazyList.iterator().next().foo, "b1"); getDs().save(origin); Origin reloaded = getDs().find(Origin.class) .filter(eq("_id", origin.getId())) .first(); - Assert.assertEquals("b1", reloaded.lazyList.iterator().next().foo); + Assertions.assertEquals(reloaded.lazyList.iterator().next().foo, "b1"); Collections.swap(reloaded.lazyList, 0, 1); - Assert.assertEquals("b2", reloaded.lazyList.iterator().next().foo); + Assertions.assertEquals(reloaded.lazyList.iterator().next().foo, "b2"); getDs().save(reloaded); @@ -50,9 +50,9 @@ public void testOrderingPreserved() { .filter(eq("_id", origin.getId())) .first(); final Collection lbs = reloaded.lazyList; - Assert.assertEquals(2, lbs.size()); + Assertions.assertEquals(lbs.size(), 2); final Iterator iterator = lbs.iterator(); - Assert.assertEquals("b2", iterator.next().foo); + Assertions.assertEquals(iterator.next().foo, "b2"); } diff --git a/core/src/test/java/dev/morphia/test/mapping/primitives/BooleanMappingTest.java b/core/src/test/java/dev/morphia/test/mapping/primitives/BooleanMappingTest.java index 10cb3d2b79d..e3ef13833ef 100644 --- a/core/src/test/java/dev/morphia/test/mapping/primitives/BooleanMappingTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/primitives/BooleanMappingTest.java @@ -9,8 +9,8 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static java.lang.String.format; @@ -37,30 +37,30 @@ public void testMapping() { .filter(eq("_id", ent.id)) .first(); - Assert.assertNotNull(loaded.id); + Assertions.assertNotNull(loaded.id); - Assert.assertEquals(ent.booleans.get(0), loaded.booleans.get(0)); - Assert.assertEquals(ent.list.toArray(new Boolean[0]), loaded.list.toArray(new Boolean[0])); + Assertions.assertArrayEquals(ent.booleans.get(0), loaded.booleans.get(0)); + Assertions.assertArrayEquals(ent.list.toArray(new Boolean[0]), loaded.list.toArray(new Boolean[0])); compare("booleanPrimitives", ent.booleanPrimitives.get(0), loaded.booleanPrimitives.get(0)); - Assert.assertEquals(ent.singlePrimitive, loaded.singlePrimitive); - Assert.assertEquals(ent.singleWrapper, loaded.singleWrapper); + Assertions.assertEquals(ent.singlePrimitive, loaded.singlePrimitive); + Assertions.assertEquals(ent.singleWrapper, loaded.singleWrapper); compare("primitiveArray", ent.primitiveArray, loaded.primitiveArray); - Assert.assertEquals(ent.wrapperArray, loaded.wrapperArray); + Assertions.assertArrayEquals(ent.wrapperArray, loaded.wrapperArray); compare(ent.nestedPrimitiveArray, loaded.nestedPrimitiveArray); - Assert.assertEquals(ent.nestedWrapperArray, loaded.nestedWrapperArray); + Assertions.assertArrayEquals(ent.nestedWrapperArray, loaded.nestedWrapperArray); } private void compare(String property, boolean[] expected, boolean[] received) { - Assert.assertEquals(received.length, expected.length, format("%s lengths should match", property)); + Assertions.assertEquals(expected.length, received.length, format("%s lengths should match", property)); for (int i = 0; i < expected.length; i++) { - Assert.assertEquals(received[i], expected[i], format("%s[%s] should match", property, i)); + Assertions.assertEquals(expected[i], received[i], format("%s[%s] should match", property, i)); } } private void compare(boolean[][] expected, boolean[][] received) { - Assert.assertEquals(received.length, expected.length, "nestedPrimitiveArray lengths should match"); + Assertions.assertEquals(expected.length, received.length, "nestedPrimitiveArray lengths should match"); for (int i = 0; i < expected.length; i++) { compare("nestedPrimitiveArray" + "[" + i + "]", expected[i], received[i]); } diff --git a/core/src/test/java/dev/morphia/test/mapping/primitives/ByteArrayMappingTest.java b/core/src/test/java/dev/morphia/test/mapping/primitives/ByteArrayMappingTest.java index 56e53d951bc..ba8b908c294 100644 --- a/core/src/test/java/dev/morphia/test/mapping/primitives/ByteArrayMappingTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/primitives/ByteArrayMappingTest.java @@ -5,8 +5,8 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; @@ -22,9 +22,9 @@ public void testCharMapping() { .first(); for (int i = 0; i < entity.ba.length; i++) { - Assert.assertEquals(loaded.ba[i], entity.ba[i]); + Assertions.assertEquals(entity.ba[i], loaded.ba[i]); } - Assert.assertNotNull(loaded.id); + Assertions.assertNotNull(loaded.id); } @Entity diff --git a/core/src/test/java/dev/morphia/test/mapping/primitives/ByteMappingTest.java b/core/src/test/java/dev/morphia/test/mapping/primitives/ByteMappingTest.java index 1d1e541ad7a..3598f84bab0 100644 --- a/core/src/test/java/dev/morphia/test/mapping/primitives/ByteMappingTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/primitives/ByteMappingTest.java @@ -10,8 +10,8 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; @@ -35,19 +35,19 @@ public void testMapping() { final Bytes loaded = datastore.find(Bytes.class).filter(eq("_id", ent.id)).first(); - Assert.assertNotNull(loaded.id); + Assertions.assertNotNull(loaded.id); - Assert.assertEquals(loaded.listWrapperArray.get(0), ent.listWrapperArray.get(0)); - Assert.assertEquals(loaded.listPrimitiveArray.get(0), ent.listPrimitiveArray.get(0)); - Assert.assertEquals(loaded.listWrapper, ent.listWrapper); + Assertions.assertArrayEquals(ent.listWrapperArray.get(0), loaded.listWrapperArray.get(0)); + Assertions.assertArrayEquals(ent.listPrimitiveArray.get(0), loaded.listPrimitiveArray.get(0)); + Assertions.assertEquals(ent.listWrapper, loaded.listWrapper); - Assert.assertEquals(loaded.singlePrimitive, ent.singlePrimitive, 0); - Assert.assertEquals(loaded.singleWrapper, ent.singleWrapper, 0); + Assertions.assertEquals(ent.singlePrimitive, loaded.singlePrimitive, 0); + Assertions.assertEquals(ent.singleWrapper, loaded.singleWrapper, 0); - Assert.assertEquals(loaded.primitiveArray, ent.primitiveArray); - Assert.assertEquals(loaded.wrapperArray, ent.wrapperArray); - Assert.assertEquals(loaded.nestedPrimitiveArray, ent.nestedPrimitiveArray); - Assert.assertEquals(loaded.nestedWrapperArray, ent.nestedWrapperArray); + Assertions.assertArrayEquals(ent.primitiveArray, loaded.primitiveArray); + Assertions.assertArrayEquals(ent.wrapperArray, loaded.wrapperArray); + Assertions.assertArrayEquals(ent.nestedPrimitiveArray, loaded.nestedPrimitiveArray); + Assertions.assertArrayEquals(ent.nestedWrapperArray, loaded.nestedWrapperArray); } @Entity diff --git a/core/src/test/java/dev/morphia/test/mapping/primitives/CharacterMappingTest.java b/core/src/test/java/dev/morphia/test/mapping/primitives/CharacterMappingTest.java index 213e314e88f..13020f99995 100644 --- a/core/src/test/java/dev/morphia/test/mapping/primitives/CharacterMappingTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/primitives/CharacterMappingTest.java @@ -9,8 +9,8 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; @@ -33,16 +33,16 @@ public void mapping() { final Characters loaded = getDs().find(Characters.class) .filter(eq("_id", entity.id)) .first(); - Assert.assertNotNull(loaded.id); - Assert.assertEquals(loaded.listWrapperArray.get(0), entity.listWrapperArray.get(0)); - Assert.assertEquals(loaded.listPrimitiveArray.get(0), entity.listPrimitiveArray.get(0)); - Assert.assertEquals(loaded.listWrapper, entity.listWrapper); - Assert.assertEquals(loaded.singlePrimitive, entity.singlePrimitive); - Assert.assertEquals(loaded.singleWrapper, entity.singleWrapper); - Assert.assertEquals(loaded.primitiveArray, entity.primitiveArray); - Assert.assertEquals(loaded.wrapperArray, entity.wrapperArray); - Assert.assertEquals(loaded.nestedPrimitiveArray, entity.nestedPrimitiveArray); - Assert.assertEquals(loaded.nestedWrapperArray, entity.nestedWrapperArray); + Assertions.assertNotNull(loaded.id); + Assertions.assertArrayEquals(entity.listWrapperArray.get(0), loaded.listWrapperArray.get(0)); + Assertions.assertArrayEquals(entity.listPrimitiveArray.get(0), loaded.listPrimitiveArray.get(0)); + Assertions.assertEquals(entity.listWrapper, loaded.listWrapper); + Assertions.assertEquals(entity.singlePrimitive, loaded.singlePrimitive); + Assertions.assertEquals(entity.singleWrapper, loaded.singleWrapper); + Assertions.assertArrayEquals(entity.primitiveArray, loaded.primitiveArray); + Assertions.assertArrayEquals(entity.wrapperArray, loaded.wrapperArray); + Assertions.assertArrayEquals(entity.nestedPrimitiveArray, loaded.nestedPrimitiveArray); + Assertions.assertArrayEquals(entity.nestedWrapperArray, loaded.nestedWrapperArray); } @Entity diff --git a/core/src/test/java/dev/morphia/test/mapping/primitives/DoubleMappingTest.java b/core/src/test/java/dev/morphia/test/mapping/primitives/DoubleMappingTest.java index b0dc383aa13..5bebdc688b6 100644 --- a/core/src/test/java/dev/morphia/test/mapping/primitives/DoubleMappingTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/primitives/DoubleMappingTest.java @@ -9,8 +9,8 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; @@ -33,19 +33,19 @@ public void testMapping() { final Doubles loaded = getDs().find(Doubles.class) .filter(eq("_id", ent.id)) .first(); - Assert.assertNotNull(loaded.id); + Assertions.assertNotNull(loaded.id); - Assert.assertEquals(loaded.listWrapperArray.get(0), ent.listWrapperArray.get(0)); - Assert.assertEquals(loaded.listWrapper, ent.listWrapper); - Assert.assertEquals(loaded.listPrimitiveArray.get(0), ent.listPrimitiveArray.get(0), 0.0); + Assertions.assertArrayEquals(ent.listWrapperArray.get(0), loaded.listWrapperArray.get(0)); + Assertions.assertEquals(ent.listWrapper, loaded.listWrapper); + Assertions.assertArrayEquals(ent.listPrimitiveArray.get(0), loaded.listPrimitiveArray.get(0), 0.0); - Assert.assertEquals(loaded.singlePrimitive, ent.singlePrimitive, 0); - Assert.assertEquals(loaded.singleWrapper, ent.singleWrapper, 0); + Assertions.assertEquals(ent.singlePrimitive, loaded.singlePrimitive, 0); + Assertions.assertEquals(ent.singleWrapper, loaded.singleWrapper, 0); - Assert.assertEquals(loaded.primitiveArray, ent.primitiveArray, 0.0); - Assert.assertEquals(loaded.wrapperArray, ent.wrapperArray); - Assert.assertEquals(loaded.nestedPrimitiveArray, ent.nestedPrimitiveArray); - Assert.assertEquals(loaded.nestedWrapperArray, ent.nestedWrapperArray); + Assertions.assertArrayEquals(ent.primitiveArray, loaded.primitiveArray, 0.0); + Assertions.assertArrayEquals(ent.wrapperArray, loaded.wrapperArray); + Assertions.assertArrayEquals(ent.nestedPrimitiveArray, loaded.nestedPrimitiveArray); + Assertions.assertArrayEquals(ent.nestedWrapperArray, loaded.nestedWrapperArray); } @Entity diff --git a/core/src/test/java/dev/morphia/test/mapping/primitives/FloatMappingTest.java b/core/src/test/java/dev/morphia/test/mapping/primitives/FloatMappingTest.java index b30f535db12..c237b2d6f16 100644 --- a/core/src/test/java/dev/morphia/test/mapping/primitives/FloatMappingTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/primitives/FloatMappingTest.java @@ -9,8 +9,8 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; @@ -33,20 +33,20 @@ public void testMapping() { .filter(eq("_id", ent.id)) .first(); - Assert.assertNotNull(loaded.id); + Assertions.assertNotNull(loaded.id); - Assert.assertEquals(loaded.listWrapperArray.get(0), ent.listWrapperArray.get(0)); - Assert.assertEquals(loaded.listWrapper, ent.listWrapper); - Assert.assertEquals(loaded.listPrimitiveArray.get(0), ent.listPrimitiveArray.get(0), 0.0f); + Assertions.assertArrayEquals(ent.listWrapperArray.get(0), loaded.listWrapperArray.get(0)); + Assertions.assertEquals(ent.listWrapper, loaded.listWrapper); + Assertions.assertArrayEquals(ent.listPrimitiveArray.get(0), loaded.listPrimitiveArray.get(0), 0.0f); - Assert.assertEquals(loaded.singlePrimitive, ent.singlePrimitive, 0); - Assert.assertEquals(loaded.singleWrapper, ent.singleWrapper, 0); + Assertions.assertEquals(ent.singlePrimitive, loaded.singlePrimitive, 0); + Assertions.assertEquals(ent.singleWrapper, loaded.singleWrapper, 0); - Assert.assertEquals(loaded.primitiveArray, ent.primitiveArray, 0.0f); - Assert.assertEquals(loaded.wrapperArray, ent.wrapperArray); + Assertions.assertArrayEquals(ent.primitiveArray, loaded.primitiveArray, 0.0f); + Assertions.assertArrayEquals(ent.wrapperArray, loaded.wrapperArray); - Assert.assertEquals(loaded.nestedPrimitiveArray, ent.nestedPrimitiveArray); - Assert.assertEquals(loaded.nestedWrapperArray, ent.nestedWrapperArray); + Assertions.assertArrayEquals(ent.nestedPrimitiveArray, loaded.nestedPrimitiveArray); + Assertions.assertArrayEquals(ent.nestedWrapperArray, loaded.nestedWrapperArray); } @Entity diff --git a/core/src/test/java/dev/morphia/test/mapping/primitives/IntegerMappingTest.java b/core/src/test/java/dev/morphia/test/mapping/primitives/IntegerMappingTest.java index bec66abe835..5ce73fbaa52 100644 --- a/core/src/test/java/dev/morphia/test/mapping/primitives/IntegerMappingTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/primitives/IntegerMappingTest.java @@ -9,8 +9,8 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; @@ -35,19 +35,19 @@ public void testMapping() { .filter(eq("_id", ent.id)) .first(); - Assert.assertNotNull(loaded.id); + Assertions.assertNotNull(loaded.id); - Assert.assertEquals(loaded.listWrapperArray.get(0), ent.listWrapperArray.get(0)); - Assert.assertEquals(loaded.listWrapper.toArray(new Integer[0]), ent.listWrapper.toArray(new Integer[0])); - Assert.assertEquals(loaded.listPrimitiveArray.get(0), ent.listPrimitiveArray.get(0)); + Assertions.assertArrayEquals(ent.listWrapperArray.get(0), loaded.listWrapperArray.get(0)); + Assertions.assertArrayEquals(ent.listWrapper.toArray(new Integer[0]), loaded.listWrapper.toArray(new Integer[0])); + Assertions.assertArrayEquals(ent.listPrimitiveArray.get(0), loaded.listPrimitiveArray.get(0)); - Assert.assertEquals(loaded.singlePrimitive, ent.singlePrimitive, 0); - Assert.assertEquals(loaded.singleWrapper, ent.singleWrapper, 0); + Assertions.assertEquals(ent.singlePrimitive, loaded.singlePrimitive, 0); + Assertions.assertEquals(ent.singleWrapper, loaded.singleWrapper, 0); - Assert.assertEquals(loaded.primitiveArray, ent.primitiveArray); - Assert.assertEquals(loaded.wrapperArray, ent.wrapperArray); - Assert.assertEquals(loaded.nestedPrimitiveArray, ent.nestedPrimitiveArray); - Assert.assertEquals(loaded.nestedWrapperArray, ent.nestedWrapperArray); + Assertions.assertArrayEquals(ent.primitiveArray, loaded.primitiveArray); + Assertions.assertArrayEquals(ent.wrapperArray, loaded.wrapperArray); + Assertions.assertArrayEquals(ent.nestedPrimitiveArray, loaded.nestedPrimitiveArray); + Assertions.assertArrayEquals(ent.nestedWrapperArray, loaded.nestedWrapperArray); } @Entity diff --git a/core/src/test/java/dev/morphia/test/mapping/primitives/LongMappingTest.java b/core/src/test/java/dev/morphia/test/mapping/primitives/LongMappingTest.java index fd204936f01..b4c077dbf19 100644 --- a/core/src/test/java/dev/morphia/test/mapping/primitives/LongMappingTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/primitives/LongMappingTest.java @@ -9,8 +9,8 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; @@ -33,18 +33,18 @@ public void testMapping() { .filter(eq("_id", ent.id)) .first(); - Assert.assertNotNull(loaded.id); + Assertions.assertNotNull(loaded.id); - Assert.assertEquals(loaded.listWrapperArray.get(0), ent.listWrapperArray.get(0)); - Assert.assertEquals(loaded.listPrimitiveArray.get(0), ent.listPrimitiveArray.get(0)); + Assertions.assertArrayEquals(ent.listWrapperArray.get(0), loaded.listWrapperArray.get(0)); + Assertions.assertArrayEquals(ent.listPrimitiveArray.get(0), loaded.listPrimitiveArray.get(0)); - Assert.assertEquals(loaded.singlePrimitive, ent.singlePrimitive, 0); - Assert.assertEquals(loaded.singleWrapper, ent.singleWrapper, 0); + Assertions.assertEquals(ent.singlePrimitive, loaded.singlePrimitive, 0); + Assertions.assertEquals(ent.singleWrapper, loaded.singleWrapper, 0); - Assert.assertEquals(loaded.primitiveArray, ent.primitiveArray); - Assert.assertEquals(loaded.wrapperArray, ent.wrapperArray); - Assert.assertEquals(loaded.nestedPrimitiveArray, ent.nestedPrimitiveArray); - Assert.assertEquals(loaded.nestedWrapperArray, ent.nestedWrapperArray); + Assertions.assertArrayEquals(ent.primitiveArray, loaded.primitiveArray); + Assertions.assertArrayEquals(ent.wrapperArray, loaded.wrapperArray); + Assertions.assertArrayEquals(ent.nestedPrimitiveArray, loaded.nestedPrimitiveArray); + Assertions.assertArrayEquals(ent.nestedWrapperArray, loaded.nestedWrapperArray); } @Entity diff --git a/core/src/test/java/dev/morphia/test/mapping/primitives/ShortMappingTest.java b/core/src/test/java/dev/morphia/test/mapping/primitives/ShortMappingTest.java index 6fd34803046..03f3f7acb0f 100644 --- a/core/src/test/java/dev/morphia/test/mapping/primitives/ShortMappingTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/primitives/ShortMappingTest.java @@ -9,8 +9,8 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; @@ -33,18 +33,18 @@ public void testMapping() { .filter(eq("_id", ent.id)) .first(); - Assert.assertNotNull(loaded.id); + Assertions.assertNotNull(loaded.id); - Assert.assertEquals(loaded.listWrapperArray.get(0), ent.listWrapperArray.get(0)); - Assert.assertEquals(loaded.listPrimitiveArray.get(0), ent.listPrimitiveArray.get(0)); + Assertions.assertArrayEquals(ent.listWrapperArray.get(0), loaded.listWrapperArray.get(0)); + Assertions.assertArrayEquals(ent.listPrimitiveArray.get(0), loaded.listPrimitiveArray.get(0)); - Assert.assertEquals(loaded.singlePrimitive, ent.singlePrimitive, 0); - Assert.assertEquals(loaded.singleWrapper, ent.singleWrapper, 0); + Assertions.assertEquals(ent.singlePrimitive, loaded.singlePrimitive, 0); + Assertions.assertEquals(ent.singleWrapper, loaded.singleWrapper, 0); - Assert.assertEquals(loaded.primitiveArray, ent.primitiveArray); - Assert.assertEquals(loaded.wrapperArray, ent.wrapperArray); - Assert.assertEquals(loaded.nestedPrimitiveArray, ent.nestedPrimitiveArray); - Assert.assertEquals(loaded.nestedWrapperArray, ent.nestedWrapperArray); + Assertions.assertArrayEquals(ent.primitiveArray, loaded.primitiveArray); + Assertions.assertArrayEquals(ent.wrapperArray, loaded.wrapperArray); + Assertions.assertArrayEquals(ent.nestedPrimitiveArray, loaded.nestedPrimitiveArray); + Assertions.assertArrayEquals(ent.nestedWrapperArray, loaded.nestedWrapperArray); } @Entity diff --git a/core/src/test/java/dev/morphia/test/mapping/validation/classrules/DuplicatePropertyNameTest.java b/core/src/test/java/dev/morphia/test/mapping/validation/classrules/DuplicatePropertyNameTest.java index 64d9c4ab21d..b7a815e1512 100644 --- a/core/src/test/java/dev/morphia/test/mapping/validation/classrules/DuplicatePropertyNameTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/validation/classrules/DuplicatePropertyNameTest.java @@ -8,17 +8,22 @@ import dev.morphia.mapping.MappingException; import dev.morphia.test.TestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class DuplicatePropertyNameTest extends TestBase { - @Test(expectedExceptions = MappingException.class) + @Test public void testDuplicatedPropertyNameDifferentType() { - getMapper().map(DuplicatedPropertyName2.class); + Assertions.assertThrows(MappingException.class, () -> { + getMapper().map(DuplicatedPropertyName2.class); + }); } - @Test(expectedExceptions = MappingException.class) + @Test public void testDuplicatedPropertyNameSameType() { - getMapper().map(DuplicatedPropertyName.class); + Assertions.assertThrows(MappingException.class, () -> { + getMapper().map(DuplicatedPropertyName.class); + }); } @Entity diff --git a/core/src/test/java/dev/morphia/test/mapping/validation/classrules/MultipleVersionsTest.java b/core/src/test/java/dev/morphia/test/mapping/validation/classrules/MultipleVersionsTest.java index 950ef6a1925..3dc633096d8 100644 --- a/core/src/test/java/dev/morphia/test/mapping/validation/classrules/MultipleVersionsTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/validation/classrules/MultipleVersionsTest.java @@ -5,12 +5,15 @@ import dev.morphia.test.TestBase; import dev.morphia.test.models.TestEntity; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class MultipleVersionsTest extends TestBase { - @Test(expectedExceptions = ConstraintViolationException.class) + @Test public void testCheck() { - getMapper().map(OK1.class, Fail1.class); + Assertions.assertThrows(ConstraintViolationException.class, () -> { + getMapper().map(OK1.class, Fail1.class); + }); } private static class Fail1 extends TestEntity { diff --git a/core/src/test/java/dev/morphia/test/mapping/validation/classrules/NonStaticInnerClassTest.java b/core/src/test/java/dev/morphia/test/mapping/validation/classrules/NonStaticInnerClassTest.java index 31d86d62cc0..3a2d40088d1 100644 --- a/core/src/test/java/dev/morphia/test/mapping/validation/classrules/NonStaticInnerClassTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/validation/classrules/NonStaticInnerClassTest.java @@ -6,13 +6,16 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class NonStaticInnerClassTest extends TestBase { - @Test(expectedExceptions = MappingException.class) + @Test public void testInValidInnerClass() { - getMapper().map(InValid.class); + Assertions.assertThrows(MappingException.class, () -> { + getMapper().map(InValid.class); + }); } @Test diff --git a/core/src/test/java/dev/morphia/test/mapping/validation/fieldrules/LazyReferenceOnArrayTest.java b/core/src/test/java/dev/morphia/test/mapping/validation/fieldrules/LazyReferenceOnArrayTest.java index 53a0bb6191f..12770323be8 100644 --- a/core/src/test/java/dev/morphia/test/mapping/validation/fieldrules/LazyReferenceOnArrayTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/validation/fieldrules/LazyReferenceOnArrayTest.java @@ -5,14 +5,18 @@ import dev.morphia.test.TestBase; import dev.morphia.test.models.TestEntity; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; -@Test(groups = "references") +@Tag("references") public class LazyReferenceOnArrayTest extends TestBase { - @Test(expectedExceptions = ConstraintViolationException.class) + @Test public void testLazyRefOnArray() { - getMapper().map(LazyOnArray.class); + Assertions.assertThrows(ConstraintViolationException.class, () -> { + getMapper().map(LazyOnArray.class); + }); } private static class LazyOnArray extends TestEntity { diff --git a/core/src/test/java/dev/morphia/test/mapping/validation/fieldrules/MapKeyTypeConstraintTest.java b/core/src/test/java/dev/morphia/test/mapping/validation/fieldrules/MapKeyTypeConstraintTest.java index 80b4716955f..c6caba81971 100644 --- a/core/src/test/java/dev/morphia/test/mapping/validation/fieldrules/MapKeyTypeConstraintTest.java +++ b/core/src/test/java/dev/morphia/test/mapping/validation/fieldrules/MapKeyTypeConstraintTest.java @@ -9,18 +9,25 @@ import dev.morphia.test.TestBase; import dev.morphia.test.models.TestEntity; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; public class MapKeyTypeConstraintTest extends TestBase { - @Test(expectedExceptions = ConstraintViolationException.class) + @Test public void testInvalidKeyType() { - getMapper().map(MapWithWrongKeyType3.class); + Assertions.assertThrows(ConstraintViolationException.class, () -> { + getMapper().map(MapWithWrongKeyType3.class); + }); } - @Test(groups = "references", expectedExceptions = ConstraintViolationException.class) + @Test + @Tag("references") public void testInvalidReferenceType() { - getMapper().map(MapWithWrongKeyType2.class); + Assertions.assertThrows(ConstraintViolationException.class, () -> { + getMapper().map(MapWithWrongKeyType2.class); + }); } private static class MapWithWrongKeyType2 extends TestEntity { diff --git a/core/src/test/java/dev/morphia/test/query/FiltersTest.java b/core/src/test/java/dev/morphia/test/query/FiltersTest.java index b1ca821d03a..a92913be7c9 100644 --- a/core/src/test/java/dev/morphia/test/query/FiltersTest.java +++ b/core/src/test/java/dev/morphia/test/query/FiltersTest.java @@ -21,9 +21,8 @@ import dev.morphia.test.models.User; import org.bson.Document; -import org.testng.Assert; -import org.testng.annotations.AfterClass; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.AggregationOptions.aggregationOptions; import static dev.morphia.aggregation.expressions.Miscellaneous.rand; @@ -43,18 +42,10 @@ import static java.util.Arrays.asList; import static java.util.List.of; import static org.bson.Document.parse; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; @Deprecated @SuppressWarnings("resource") public class FiltersTest extends TemplatedTestBase { - @AfterClass - @Override - public void testCoverage() { - } - @Test public void testType() { User entity = new User(); @@ -65,7 +56,7 @@ public void testType() { Query query = getDs().find(User.class); query.filter(type("name", Type.STRING)); - Assert.assertTrue(query.count() > 0); + Assertions.assertTrue(query.count() > 0); } @Test @@ -81,7 +72,7 @@ public void testExpr() { .filter(expr(ComparisonExpressions.gt("$spent", "$budget"))).iterator() .toList(); - assertEquals(budgets.size(), 3); + Assertions.assertEquals(3, budgets.size()); } @Test @@ -118,7 +109,7 @@ public void testJsonSchema() { .iterator() .toList(); - Assert.assertFalse(inventory.isEmpty(), "Should find some matches"); + Assertions.assertFalse(inventory.isEmpty(), "Should find some matches"); } @Test @@ -142,11 +133,11 @@ public void testMeta() { List list = query .iterator() .toList(); - assertEquals(list.size(), 4, query.getLoggedQuery()); + Assertions.assertEquals(4, list.size(), query.getLoggedQuery()); Document document = list.stream().filter(d -> d.get("_id").equals(4)) .findFirst() .orElseThrow(); - assertEquals(document.get("score"), 1.0, query.getLoggedQuery()); + Assertions.assertEquals(1.0, document.get("score"), query.getLoggedQuery()); } @@ -182,11 +173,11 @@ public void testRand() { } String collectionName = "rand"; InsertManyResult bulk = getDatabase().getCollection(collectionName).insertMany(list, new InsertManyOptions().ordered(false)); - assertEquals(bulk.getInsertedIds().size(), count); + Assertions.assertEquals(count, bulk.getInsertedIds().size()); long matches = getDs().find(collectionName, Document.class) .filter(expr(ComparisonExpressions.lt(0.5, rand()))) .count(); - assertTrue(matches < 100); + Assertions.assertTrue(matches < 100); } @Test @@ -198,13 +189,13 @@ public void testSampleRate() { } String collectionName = "sampleRate"; InsertManyResult bulk = getDatabase().getCollection(collectionName).insertMany(list, new InsertManyOptions().ordered(false)); - assertEquals(bulk.getInsertedIds().size(), count); + Assertions.assertEquals(count, bulk.getInsertedIds().size()); Document matches = getDs().aggregate(aggregationOptions().collection(collectionName)).pipeline( match(sampleRate(0.33)), Count.count("numMatches")) .iterator() .next(); - assertTrue(matches.getInteger("numMatches") < 100); + Assertions.assertTrue(matches.getInteger("numMatches") < 100); } @Test @@ -216,19 +207,19 @@ public void testSize() { .filter(size("likes", 3)).iterator() .next(); - assertEquals(likes.name, "John"); + Assertions.assertEquals("John", likes.name); likes = getDs().find(User.class) .filter(size("likes", 2)).iterator() .next(); - assertEquals(likes.name, "Janice"); + Assertions.assertEquals("Janice", likes.name); likes = getDs().find(User.class) .filter(size("likes", 20)).iterator() .tryNext(); - assertNull(likes); + Assertions.assertNull(likes); } @Test @@ -242,7 +233,7 @@ public void testWhere() { .filter(where("return (hex_md5(this.name) == '9b53e667f30cd329dca1ec9e6a83e994')")) .first(); - assertEquals(player.name, "Anya"); + Assertions.assertEquals("Anya", player.name); } @Entity(value = "players", useDiscriminator = false) diff --git a/core/src/test/java/dev/morphia/test/query/QueryTest.java b/core/src/test/java/dev/morphia/test/query/QueryTest.java deleted file mode 100644 index 9faf5cee16f..00000000000 --- a/core/src/test/java/dev/morphia/test/query/QueryTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package dev.morphia.test.query; - -import java.io.File; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -import dev.morphia.test.TemplatedTestBase; - -import org.testng.annotations.AfterClass; - -import static java.util.Arrays.stream; -import static org.testng.Assert.fail; - -public class QueryTest extends TemplatedTestBase { - @AfterClass - public void testCoverage() { - var type = getClass(); - var methods = stream(type.getDeclaredMethods()) - .filter(m -> m.getName().startsWith("testExample")) - .map(m -> { - String name = m.getName().substring(4); - return Character.toLowerCase(name.charAt(0)) + name.substring(1); - }) - .toList(); - String path = type.getPackageName(); - String simpleName = type.getSimpleName().substring(4); - var operatorName = Character.toLowerCase(simpleName.charAt(0)) + simpleName.substring(1); - var resourceFolder = rootToCore("src/test/resources/%s/%s".formatted(path.replace('.', '/'), operatorName)); - - if (!resourceFolder.exists()) { - throw new IllegalStateException("%s does not exist inside %s".formatted(resourceFolder, - new File(".").getAbsolutePath())); - } - List list = Arrays.stream(resourceFolder.list()) - .map(s -> new File(resourceFolder, s)) - .toList(); - - List examples = list.stream() - .filter(d -> new File(d, "expected.json").exists()) - .map(File::getName) - .toList(); - var missing = examples.stream() - .filter(example -> !methods.contains(example)) - .collect(Collectors.joining(", ")); - if (!missing.isEmpty()) { - fail("Missing test cases for $%s: %s".formatted(operatorName, missing)); - } - } - -} diff --git a/core/src/test/java/dev/morphia/test/query/TestMaxMin.java b/core/src/test/java/dev/morphia/test/query/TestMaxMin.java index 7303872eba7..436e79ba799 100644 --- a/core/src/test/java/dev/morphia/test/query/TestMaxMin.java +++ b/core/src/test/java/dev/morphia/test/query/TestMaxMin.java @@ -16,29 +16,31 @@ import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import static dev.morphia.query.Sort.ascending; import static dev.morphia.query.Sort.descending; public class TestMaxMin extends TestBase { - @BeforeMethod + @BeforeEach public void setUp() { getMapper().map(IndexedEntity.class); getDs().applyIndexes(); } - @Test(expectedExceptions = MongoException.class) + @Test public void testExceptionForIndexMismatch() { - getDs().find(IndexedEntity.class, - new FindOptions() - .limit(1) - .min(new Document("doesNotExist", 1))) - .iterator() - .next(); + Assertions.assertThrows(MongoException.class, () -> { + getDs().find(IndexedEntity.class, + new FindOptions() + .limit(1) + .min(new Document("doesNotExist", 1))) + .iterator() + .next(); + }); } @Test @@ -54,23 +56,20 @@ public void testMax() { ds.save(c); ds.applyIndexes(); - Assert.assertEquals(ds.find(IndexedEntity.class, + Assertions.assertEquals(b.id, ds.find(IndexedEntity.class, new FindOptions() .sort(descending("id")) .hint("testField") .max(new Document("testField", "c"))) .iterator() - .next().id, - - b.id, "last"); - Assert.assertEquals(ds.find(IndexedEntity.class, + .next().id, "last"); + Assertions.assertEquals(b.id, ds.find(IndexedEntity.class, new FindOptions() .sort(descending("id")) .hint("testField") .max(new Document("testField", "c"))) .iterator() - .next().id, - b.id, "last"); + .next().id, "last"); } @Test @@ -100,8 +99,8 @@ public void testMaxCompoundIndex() { .iterator() .toList(); - Assert.assertEquals(l.size(), 3, "size"); - Assert.assertEquals(l.get(2).id, b1.id, "item"); + Assertions.assertEquals(3, l.size(), "size"); + Assertions.assertEquals(b1.id, l.get(2).id, "item"); l = ds.find(IndexedEntity.class, new FindOptions() @@ -112,8 +111,8 @@ public void testMaxCompoundIndex() { .iterator() .toList(); - Assert.assertEquals(l.size(), 3, "size"); - Assert.assertEquals(l.get(2).id, b1.id, "item"); + Assertions.assertEquals(3, l.size(), "size"); + Assertions.assertEquals(b1.id, l.get(2).id, "item"); } @Test @@ -128,23 +127,21 @@ public void testMin() { ds.save(b); ds.save(c); - Assert.assertEquals(ds.find(IndexedEntity.class, + Assertions.assertEquals(b.id, ds.find(IndexedEntity.class, new FindOptions() .sort(ascending("id")) .hint("testField") .min(new Document("testField", "b"))) .iterator() - .next().id, - b.id, "last"); + .next().id, "last"); - Assert.assertEquals(ds.find(IndexedEntity.class, + Assertions.assertEquals(b.id, ds.find(IndexedEntity.class, new FindOptions() .sort(ascending("id")) .hint("testField") .min(new Document("testField", "b"))) .iterator() - .next().id, - b.id, "last"); + .next().id, "last"); } @Test @@ -174,8 +171,8 @@ public void testMinCompoundIndex() { .iterator() .toList(); - Assert.assertEquals(l.size(), 4, "size"); - Assert.assertEquals(l.get(0).id, b1.id, "item"); + Assertions.assertEquals(4, l.size(), "size"); + Assertions.assertEquals(b1.id, l.get(0).id, "item"); l = ds.find(IndexedEntity.class, new FindOptions() @@ -186,8 +183,8 @@ public void testMinCompoundIndex() { .iterator() .toList(); - Assert.assertEquals(l.size(), 4, "item"); - Assert.assertEquals(l.get(0).id, b1.id, "item"); + Assertions.assertEquals(4, l.size(), "item"); + Assertions.assertEquals(b1.id, l.get(0).id, "item"); } @Entity("IndexedEntity") diff --git a/core/src/test/java/dev/morphia/test/query/TestQueriesOnReferences.java b/core/src/test/java/dev/morphia/test/query/TestQueriesOnReferences.java index c6680fde422..1277be5b654 100644 --- a/core/src/test/java/dev/morphia/test/query/TestQueriesOnReferences.java +++ b/core/src/test/java/dev/morphia/test/query/TestQueriesOnReferences.java @@ -15,14 +15,12 @@ import dev.morphia.test.query.TestQuery.Pic; import dev.morphia.test.query.TestQuery.PicWithObjectId; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.stages.Match.match; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.filters.Filters.exists; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; public class TestQueriesOnReferences extends TestBase { @Test @@ -32,7 +30,7 @@ public void testFindByReference() { cpk.setPic(p); getDs().save(List.of(p, cpk)); - assertNotNull(getDs().find(ContainsPic.class).filter(Filters.eq("pic", p)).first()); + Assertions.assertNotNull(getDs().find(ContainsPic.class).filter(Filters.eq("pic", p)).first()); } @Test @@ -52,10 +50,10 @@ public void testFindByReference2() { var e2 = getDs().find(Entity2.class).filter(Filters.eq("reference", e1)).first(); var e2_i = getDs().find(Entity2.class).filter(Filters.eq("reference", e1.getId())).first(); - assertNotNull(e1, "e1"); - assertNotNull(e2, "e2"); - assertNotNull(e2_i, "e2_1"); - assertEquals(e2.getId(), e2_i.getId()); + Assertions.assertNotNull(e1, "e1"); + Assertions.assertNotNull(e2, "e2"); + Assertions.assertNotNull(e2_i, "e2_1"); + Assertions.assertEquals(e2_i.getId(), e2.getId()); } @Test @@ -66,7 +64,7 @@ public void testKeyExists() { getDs().save(p); getDs().save(cpk); - assertNotNull(getDs().find(ContainsPic.class, + Assertions.assertNotNull(getDs().find(ContainsPic.class, new FindOptions() .projection() .include("pic") @@ -74,7 +72,7 @@ public void testKeyExists() { .filter(exists("pic")) .iterator() .tryNext()); - assertNull(getDs().find(ContainsPic.class, + Assertions.assertNull(getDs().find(ContainsPic.class, new FindOptions() .projection() .include("pic") @@ -107,23 +105,25 @@ public void testMatchOnAReference() { .iterator() .tryNext(); - assertNotNull(e1, "e1"); - assertNotNull(e2, "e2"); - assertNotNull(e2_i, "e2_1"); - assertEquals(e2.getId(), e2_i.getId()); + Assertions.assertNotNull(e1, "e1"); + Assertions.assertNotNull(e2, "e2"); + Assertions.assertNotNull(e2_i, "e2_1"); + Assertions.assertEquals(e2_i.getId(), e2.getId()); } - @Test(expectedExceptions = ReferenceException.class) + @Test public void testMissingReferences() { - final ContainsPic cpk = new ContainsPic(); - final Pic p = new Pic(); - cpk.setPic(p); - getDs().save(p); - getDs().save(cpk); + Assertions.assertThrows(ReferenceException.class, () -> { + final ContainsPic cpk = new ContainsPic(); + final Pic p = new Pic(); + cpk.setPic(p); + getDs().save(p); + getDs().save(cpk); - getDs().delete(p); + getDs().delete(p); - getDs().find(ContainsPic.class).iterator().toList(); + getDs().find(ContainsPic.class).iterator().toList(); + }); } @Test @@ -139,11 +139,11 @@ public void testQueryOverLazyReference() { getDs().save(cpk); Query query = getDs().find(ContainsPic.class); - assertNotNull(query.filter(eq("lazyPic", p)).iterator() + Assertions.assertNotNull(query.filter(eq("lazyPic", p)).iterator() .tryNext()); query = getDs().find(ContainsPic.class); - assertNotNull(query.filter(eq("lazyObjectIdPic", withObjectId)).iterator() + Assertions.assertNotNull(query.filter(eq("lazyObjectIdPic", withObjectId)).iterator() .tryNext()); } @@ -159,7 +159,7 @@ public void testQueryOverReference() { final Query query = getDs().find(ContainsPic.class); final ContainsPic object = query.filter(eq("pic", p)).iterator() .tryNext(); - assertNotNull(object); + Assertions.assertNotNull(object); } diff --git a/core/src/test/java/dev/morphia/test/query/TestQuery.java b/core/src/test/java/dev/morphia/test/query/TestQuery.java index 15962b05166..5dbde2ee611 100644 --- a/core/src/test/java/dev/morphia/test/query/TestQuery.java +++ b/core/src/test/java/dev/morphia/test/query/TestQuery.java @@ -45,7 +45,8 @@ import org.awaitility.Awaitility; import org.bson.Document; import org.bson.types.ObjectId; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static com.mongodb.client.model.Collation.builder; import static dev.morphia.query.ArraySlice.limit; @@ -71,14 +72,6 @@ import static java.util.regex.Pattern.quote; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNotEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertThrows; -import static org.testng.Assert.assertTrue; -import static org.testng.Assert.fail; @SuppressWarnings({ "unchecked", "unused", "resource" }) public class TestQuery extends TestBase { @@ -92,17 +85,14 @@ public TestQuery() { public void testNativeQuery() { dev.morphia.test.models.User user = getDs().save(new dev.morphia.test.models.User("Malcolm 'Mal' Reynolds", now())); - assertEquals(getDs().find(dev.morphia.test.models.User.class, new Document("_id", user.getId())).first(), - user); + Assertions.assertEquals(user, getDs().find(dev.morphia.test.models.User.class, new Document("_id", user.getId())).first()); - assertEquals(getDs().find(dev.morphia.test.models.User.class, new Document()).filter(eq("id", user.getId())).first(), - user); + Assertions.assertEquals(user, + getDs().find(dev.morphia.test.models.User.class, new Document()).filter(eq("id", user.getId())).first()); } @Test public void genericMultiKeyValueQueries() { - checkMinDriverVersion("4.6.0"); - getMapper().map(GenericKeyValue.class); getDs().ensureIndexes(GenericKeyValue.class); final GenericKeyValue value = new GenericKeyValue<>(); @@ -113,9 +103,9 @@ public void genericMultiKeyValueQueries() { Query query = getDs() .find(GenericKeyValue.class, new FindOptions().logQuery()) .filter(in("key", keys)); - assertEquals(((GenericKeyValue) query.first()).id, value.id); + Assertions.assertEquals(value.id, ((GenericKeyValue) query.first()).id); String loggedQuery = query.getLoggedQuery(); - assertTrue(loggedQuery.contains("{\"$in\": [\"key1\", \"key2\"]"), loggedQuery); + Assertions.assertTrue(loggedQuery.contains("{\"$in\": [\"key1\", \"key2\"]"), loggedQuery); } @Test @@ -127,20 +117,18 @@ public void testStreams() { .stream() .map(City::getName) .collect(Collectors.toList()); - assertEquals(list.size(), 50); + Assertions.assertEquals(50, list.size()); int sum = getDs().find(City.class) .stream() .mapToInt(c -> 1) .sum(); - assertTrue(sum > 0, sum + ""); + Assertions.assertTrue(sum > 0, sum + ""); } @Test public void multiKeyValueQueries() { - checkMinDriverVersion("4.6.0"); - getMapper().map(KeyValue.class); getDs().ensureIndexes(KeyValue.class); final KeyValue value = new KeyValue(); @@ -152,8 +140,8 @@ public void multiKeyValueQueries() { .filter(in("key", keys)); KeyValue first = query.first(); String loggedQuery = query.getLoggedQuery(); - assertTrue(loggedQuery.contains("{\"$in\": [\"key1\", \"key2\"]"), loggedQuery); - assertEquals(first.id, value.id); + Assertions.assertTrue(loggedQuery.contains("{\"$in\": [\"key1\", \"key2\"]"), loggedQuery); + Assertions.assertEquals(value.id, first.id); } @Test @@ -170,7 +158,7 @@ public void referenceKeys() { final ReferenceKeyValue byKey = getDs().find(ReferenceKeyValue.class) .filter(eq("_id", key.id)) .first(); - assertEquals(value.id, byKey.id); + Assertions.assertEquals(byKey.id, value.id); } @Test @@ -182,16 +170,16 @@ public void testAliasedFieldSort() { .limit(1)) .iterator() .tryNext(); - assertNotNull(r1); - assertEquals(r1.getWidth(), 1, 0); + Assertions.assertNotNull(r1); + Assertions.assertEquals(1, r1.getWidth(), 0); r1 = getDs().find(Rectangle.class, new FindOptions() .sort(descending("w")) .limit(1)) .iterator() .tryNext(); - assertNotNull(r1); - assertEquals(r1.getWidth(), 10, 0); + Assertions.assertNotNull(r1); + Assertions.assertEquals(10, r1.getWidth(), 0); } @Test @@ -200,54 +188,54 @@ public void testAlternateCollections() { getDs().getCollection(Photo.class) .renameCollection(new MongoNamespace(getDatabase().getName(), "alternate")); - assertEquals(getDs().find(Photo.class).count(), 0); + Assertions.assertEquals(0, getDs().find(Photo.class).count()); - assertEquals(getDs().find("alternate", Photo.class).count(), 1); + Assertions.assertEquals(1, getDs().find("alternate", Photo.class).count()); } @Test public void testCaseVariants() { getDs().save(asList(new Pic("pic1"), new Pic("pic2"), new Pic("pic3"), new Pic("pic4"))); - assertEquals(getDs().find(Pic.class) + Assertions.assertEquals(0, getDs().find(Pic.class) .filter(regex("name", "PIC")) - .count(), 0); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(4, getDs().find(Pic.class) .filter(regex("name", "PIC") .options("i")) - .count(), 4); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(4, getDs().find(Pic.class) .filter(regex("name", "PIC") .options("i")) - .count(), 4); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(4, getDs().find(Pic.class) .filter(regex("name", Pattern.compile("PIC")) .options("i")) - .count(), 4); + .count()); - assertEquals(getDs().find(Pic.class) + Assertions.assertEquals(0, getDs().find(Pic.class) .filter(regex("name", "PIC1")) - .count(), 0); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(regex("name", "PIC1") .options("i")) - .count(), 1); + .count()); - assertEquals(getDs().find(Pic.class) + Assertions.assertEquals(0, getDs().find(Pic.class) .filter(regex("name", "C1$")) - .count(), 0); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(regex("name", "C1$") .options("i")) - .count(), 1); + .count()); - assertEquals(getDs().find(Pic.class) + Assertions.assertEquals(0, getDs().find(Pic.class) .filter(regex("name", "^PIC")) - .count(), 0); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(4, getDs().find(Pic.class) .filter(regex("name", "^PIC") .options("i")) - .count(), 4); + .count()); } @Test @@ -257,64 +245,64 @@ public void testCaseVariantsWithSpecialChars() { new Pic(">++('> fish bones"), new Pic("hacksaw [|^^^^^^^"))); - assertEquals(getDs().find(Pic.class) + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(regex("name", compile(quote("^")))) - .count(), 1); + .count()); - assertEquals(getDs().find(Pic.class) + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(regex("name", compile(quote("aw [|^^")))) - .count(), 1); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(0, getDs().find(Pic.class) .filter(regex("name", compile(quote("AW [|^^")))) - .count(), 0); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(regex("name", compile(quote("aw [|^^"))) .options("i")) - .count(), 1); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(regex("name", compile(quote("AW [|^^"))) .options("i")) - .count(), 1); + .count()); - assertEquals(getDs().find(Pic.class) + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(regex("name", compile("^" + quote(">++('> fish")))) - .count(), 1); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(0, getDs().find(Pic.class) .filter(regex("name", compile("^" + quote(">++('> FIsh")))) - .count(), 0); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(regex("name", compile("^" + quote(">++('> FISH"))) .options("i")) - .count(), 1); + .count()); - assertEquals(getDs().find(Pic.class) + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(eq("name", ">++('> fish bones")) - .count(), 1); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(0, getDs().find(Pic.class) .filter(eq("name", ">++('> FISH BONES")) - .count(), 0); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(regex("name", quote(">++('> fish bones"))) - .count(), 1); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(regex("name", "^" + quote(">++('> FISH BONES") + "$") .options("i")) - .count(), 1); + .count()); - assertEquals(getDs().find(Pic.class) + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(regex("name", quote(">++('> fish bones") + "$")) - .count(), 1); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(0, getDs().find(Pic.class) .filter(regex("name", quote("'> FISH BONES") + "$")) - .count(), 0); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(regex("name", quote("'> fish bones") + "$") .caseInsensitive()) - .count(), 1); - assertEquals(getDs().find(Pic.class) + .count()); + Assertions.assertEquals(1, getDs().find(Pic.class) .filter(regex("name", quote("'> FISH BONES") + "$") .caseInsensitive()) - .count(), 1); + .count()); } @Test @@ -325,15 +313,14 @@ public void testCollations() { Query query = getDs().find(ContainsRenamedFields.class) .filter(eq("last_name", "last")); - assertEquals(query.iterator().toList().size(), 1); - assertEquals(query.count(), 1); - assertEquals(query.count(new CountOptions() + Assertions.assertEquals(1, query.iterator().toList().size()); + Assertions.assertEquals(1, query.count()); + Assertions.assertEquals(2, query.count(new CountOptions() .collation(builder() .locale("en") .collationStrength(CollationStrength.SECONDARY) - .build())), - 2); - assertEquals(getDs().find(ContainsRenamedFields.class, + .build()))); + Assertions.assertEquals(2, getDs().find(ContainsRenamedFields.class, new FindOptions() .collation(builder() .locale("en") @@ -342,7 +329,7 @@ public void testCollations() { .filter(eq("last_name", "last")) .iterator() .toList() - .size(), 2); + .size()); } @Test @@ -354,19 +341,19 @@ public void testCombinationQuery() { and( eq("width", 10), eq("height", 1))); - assertEquals(q.count(), 1); + Assertions.assertEquals(1, q.count()); q = getDs().find(Rectangle.class); q.filter( or(eq("width", 10), eq("height", 10))); - assertEquals(q.count(), 3); + Assertions.assertEquals(3, q.count()); q = getDs().find(Rectangle.class); q.filter( or(eq("width", 10), and(eq("width", 5), eq("height", 8)))); - assertEquals(q.count(), 3); + Assertions.assertEquals(3, q.count()); } @Test @@ -382,7 +369,7 @@ public void testCommentsShowUpInLogs() { .toList(); MongoCollection profileCollection = getDatabase().getCollection("system.profile"); - assertNotEquals(profileCollection.countDocuments(), 0); + Assertions.assertNotEquals(0, profileCollection.countDocuments()); Document query = new Document("op", "query") .append("ns", getDs().getCollection(Pic.class).getNamespace().getFullName()) @@ -390,7 +377,7 @@ public void testCommentsShowUpInLogs() { Document profileRecord = profileCollection.find(query).first(); if (profileRecord != null) { - assertEquals(getCommentFromProfileRecord(profileRecord), expectedComment, + Assertions.assertEquals(expectedComment, getCommentFromProfileRecord(profileRecord), profileRecord.toJson(getDs().getCodecRegistry().get(Document.class))); } } @@ -399,7 +386,7 @@ public void testCommentsShowUpInLogs() { public void testComplexElemMatchQuery() { Keyword oscar = new Keyword("Oscar", 42); getDs().save(new PhotoWithKeywords(oscar, new Keyword("Jim", 12))); - assertNull(getDs().find(PhotoWithKeywords.class, new FindOptions().limit(1)) + Assertions.assertNull(getDs().find(PhotoWithKeywords.class, new FindOptions().limit(1)) .filter(elemMatch("keywords", eq("keyword", "Oscar"), eq("score", 12))) @@ -411,8 +398,8 @@ public void testComplexElemMatchQuery() { gt("score", 20), lt("score", 100))) .iterator().toList(); - assertEquals(keywords.size(), 1); - assertEquals(oscar, keywords.get(0).keywords.get(0)); + Assertions.assertEquals(1, keywords.size()); + Assertions.assertEquals(keywords.get(0).keywords.get(0), oscar); } @Test @@ -426,11 +413,11 @@ public void testComplexIdQuery() { object.setText("hllo"); getDs().save(object); - assertNotNull(getDs().find(UsesCustomIdObject.class, new FindOptions().limit(1)) + Assertions.assertNotNull(getDs().find(UsesCustomIdObject.class, new FindOptions().limit(1)) .filter(eq("_id.type", "banker")).iterator() .tryNext()); - assertNotNull(getDs().find(UsesCustomIdObject.class, new FindOptions().limit(1)) + Assertions.assertNotNull(getDs().find(UsesCustomIdObject.class, new FindOptions().limit(1)) .filter(in("_id", singletonList(cId))).iterator() .tryNext()); } @@ -446,7 +433,7 @@ public void testComplexIdQueryWithRenamedField() { object.setText("hllo"); getDs().save(object); - assertNotNull(getDs().find(UsesCustomIdObject.class, new FindOptions().limit(1)) + Assertions.assertNotNull(getDs().find(UsesCustomIdObject.class, new FindOptions().limit(1)) .filter(eq("_id.t", "banker")).iterator() .tryNext()); } @@ -455,15 +442,15 @@ public void testComplexIdQueryWithRenamedField() { public void testComplexRangeQuery() { getDs().save(asList(new Rectangle(1, 10), new Rectangle(4, 2), new Rectangle(6, 10), new Rectangle(8, 5), new Rectangle(10, 4))); - assertEquals(getDs().find(Rectangle.class) + Assertions.assertEquals(2, getDs().find(Rectangle.class) .filter(gt("height", 3), lt("height", 8)) - .count(), 2); - assertEquals(getDs().find(Rectangle.class) + .count()); + Assertions.assertEquals(1, getDs().find(Rectangle.class) .filter(gt("height", 3), lt("height", 8), eq("width", 10)) - .count(), 1); + .count()); } @Test @@ -476,27 +463,27 @@ public void testCompoundSort() { .limit(1)) .iterator() .tryNext(); - assertNotNull(r1); - assertEquals(r1.getWidth(), 1, 0); - assertEquals(r1.getHeight(), 10, 0); + Assertions.assertNotNull(r1); + Assertions.assertEquals(1, r1.getWidth(), 0); + Assertions.assertEquals(10, r1.getHeight(), 0); r1 = getDs().find(Rectangle.class, new FindOptions() .sort(descending("height"), descending("width")) .limit(1)) .iterator() .tryNext(); - assertNotNull(r1); - assertEquals(r1.getWidth(), 10, 0); - assertEquals(r1.getHeight(), 10, 0); + Assertions.assertNotNull(r1); + Assertions.assertEquals(10, r1.getWidth(), 0); + Assertions.assertEquals(10, r1.getHeight(), 0); } @Test public void testDeepQuery() { getDs().save(new PhotoWithKeywords(new Keyword("california"), new Keyword("nevada"), new Keyword("arizona"))); - assertNotNull(getDs().find(PhotoWithKeywords.class) + Assertions.assertNotNull(getDs().find(PhotoWithKeywords.class) .filter(eq("keywords.keyword", "california")).iterator() .tryNext()); - assertNull(getDs().find(PhotoWithKeywords.class) + Assertions.assertNull(getDs().find(PhotoWithKeywords.class) .filter(eq("keywords.keyword", "not")).iterator() .tryNext()); } @@ -504,13 +491,13 @@ public void testDeepQuery() { @Test public void testDeepQueryWithBadArgs() { getDs().save(new PhotoWithKeywords(new Keyword("california"), new Keyword("nevada"), new Keyword("arizona"))); - assertNull(getDs().find(PhotoWithKeywords.class) + Assertions.assertNull(getDs().find(PhotoWithKeywords.class) .filter(eq("keywords.keyword", 1)).iterator() .tryNext()); - assertNull(getDs().find(PhotoWithKeywords.class) + Assertions.assertNull(getDs().find(PhotoWithKeywords.class) .filter(eq("keywords.keyword", "california".getBytes())).iterator() .tryNext()); - assertNull(getDs().find(PhotoWithKeywords.class) + Assertions.assertNull(getDs().find(PhotoWithKeywords.class) .filter(eq("keywords.keyword", null)).iterator() .tryNext()); } @@ -518,10 +505,10 @@ public void testDeepQueryWithBadArgs() { @Test public void testDeepQueryWithRenamedFields() { getDs().save(new PhotoWithKeywords(new Keyword("california"), new Keyword("nevada"), new Keyword("arizona"))); - assertNotNull(getDs().find(PhotoWithKeywords.class) + Assertions.assertNotNull(getDs().find(PhotoWithKeywords.class) .filter(eq("keywords.keyword", "california")).iterator() .tryNext()); - assertNull(getDs().find(PhotoWithKeywords.class) + Assertions.assertNull(getDs().find(PhotoWithKeywords.class) .filter(eq("keywords.keyword", "not")).iterator() .tryNext()); } @@ -534,21 +521,21 @@ public void testDeleteQuery() { new Rectangle(10, 10), new Rectangle(10, 10))); - assertEquals(getDs().find(Rectangle.class).count(), 5); + Assertions.assertEquals(5, getDs().find(Rectangle.class).count()); getDs().find(Rectangle.class) .filter(eq("height", 1)) .delete(new DeleteOptions() .multi(true)); - assertEquals(getDs().find(Rectangle.class).count(), 2); + Assertions.assertEquals(2, getDs().find(Rectangle.class).count()); } @Test public void testElemMatchQuery() { getDs().save(asList(new PhotoWithKeywords(), new PhotoWithKeywords("Scott", "Joe", "Sarah"))); - assertNotNull(getDs().find(PhotoWithKeywords.class) + Assertions.assertNotNull(getDs().find(PhotoWithKeywords.class) .filter(elemMatch("keywords", eq("keyword", "Scott"))).iterator() .tryNext()); - assertNull(getDs().find(PhotoWithKeywords.class) + Assertions.assertNull(getDs().find(PhotoWithKeywords.class) .filter(elemMatch("keywords", eq("keyword", "Randy"))).iterator() .tryNext()); } @@ -584,7 +571,7 @@ public void testFluentAndOrQuery() { or(eq("keywords.keyword", "scott")), or(eq("keywords.keyword", "hernandez")))); - assertEquals(q.count(), 1); + Assertions.assertEquals(1, q.count()); } @Test @@ -598,7 +585,7 @@ public void testFluentNotQuery() { FindOptions options = new FindOptions().logQuery(); query.iterator(); - assertEquals(query.count(), 1); + Assertions.assertEquals(1, query.count()); } @Test @@ -611,16 +598,16 @@ public void testFluentOrQuery() { eq("keywords.keyword", "scott"), eq("keywords.keyword", "ralph"))); - assertEquals(q.count(), 1); + Assertions.assertEquals(1, q.count()); } @Test public void testIdFieldNameQuery() { getDs().save(new PhotoWithKeywords("scott", "hernandez")); - assertNotNull(getDs().find(PhotoWithKeywords.class).filter(ne("id", "scott")).iterator() + Assertions.assertNotNull(getDs().find(PhotoWithKeywords.class).filter(ne("id", "scott")).iterator() .next()); - assertNotNull(getDs().find(PhotoWithKeywords.class).filter(eq("id", "scott").not()).iterator() + Assertions.assertNotNull(getDs().find(PhotoWithKeywords.class).filter(eq("id", "scott").not()).iterator() .next()); } @@ -631,18 +618,18 @@ public void testIdRangeQuery() { .filter(gt("_id", 5), lt("_id", 20)); - assertEquals(filter.count(), 2); - assertEquals(getDs().find(HasIntId.class) + Assertions.assertEquals(2, filter.count()); + Assertions.assertEquals(1, getDs().find(HasIntId.class) .filter(gt("_id", 0), lt("_id", 11)) - .count(), 1); + .count()); } @Test public void testInQuery() { getDs().save(new Photo(asList("red", "green", "blue"))); - assertNotNull(getDs() + Assertions.assertNotNull(getDs() .find(Photo.class) .filter(in("keywords", asList("red", "yellow"))).iterator().next()); } @@ -654,7 +641,7 @@ public void testInQueryWithObjects() { final Query query = getDs() .find(PhotoWithKeywords.class) .filter(in("keywords", asList(new Keyword("Scott"), new Keyword("Randy")))); - assertNotNull(query.iterator().next()); + Assertions.assertNotNull(query.iterator().next()); } @Test @@ -663,8 +650,8 @@ public void testInvalidQueries() { Query query = getDs().find(CappedPic.class) .filter(eq("bad.name", "blargle")); - assertThrows(ValidationException.class, () -> query.first()); - assertThrows(ValidationException.class, () -> query.first()); + Assertions.assertThrows(ValidationException.class, () -> query.first()); + Assertions.assertThrows(ValidationException.class, () -> query.first()); getDs().find(CappedPic.class) .disableValidation() @@ -680,7 +667,7 @@ public void testMixedProjection() { .projection().include("first_name") .projection().exclude("last_name")) .iterator(); - fail("An exception should have been thrown indication a mixed projection"); + Assertions.fail("An exception should have been thrown indication a mixed projection"); } catch (ValidationException e) { // all good } @@ -691,7 +678,8 @@ public void testMixedProjection() { .projection().exclude("_id")) .iterator(); } catch (ValidationException e) { - fail("An exception should not have been thrown indication a mixed projection because _id suppression is a special case"); + Assertions.fail( + "An exception should not have been thrown indication a mixed projection because _id suppression is a special case"); } try { @@ -699,7 +687,7 @@ public void testMixedProjection() { .projection().exclude("first_name", "last_name") .projection().include("_id")) .iterator(); - fail("An exception should have been thrown indication a mixed projection"); + Assertions.fail("An exception should have been thrown indication a mixed projection"); } catch (ValidationException e) { // all good } @@ -709,7 +697,7 @@ public void testMixedProjection() { .projection().exclude("name") .projection().project("scalars", limit(5))) .iterator(); - fail("An exception should have been thrown indication a mixed projection"); + Assertions.fail("An exception should have been thrown indication a mixed projection"); } catch (ValidationException e) { // all good } @@ -734,7 +722,7 @@ public void testMultipleConstraintsOnOneField() { } else { inputStage = walk(explain, List.of("queryPlanner", "winningPlan", "queryPlan", "inputStage")); } - assertEquals(inputStage.get("stage"), "IXSCAN"); + Assertions.assertEquals("IXSCAN", inputStage.get("stage")); } @Test @@ -746,24 +734,24 @@ public void testNaturalSortAscending() { .iterator() .toList(); - assertEquals(results.size(), 4); + Assertions.assertEquals(4, results.size()); Rectangle r; r = results.get(0); - assertNotNull(r); - assertEquals(r.getHeight(), 6, 0); - assertEquals(r.getWidth(), 10, 0); + Assertions.assertNotNull(r); + Assertions.assertEquals(6, r.getHeight(), 0); + Assertions.assertEquals(10, r.getWidth(), 0); r = results.get(1); - assertNotNull(r); - assertEquals(r.getHeight(), 3, 0); - assertEquals(r.getWidth(), 8, 0); + Assertions.assertNotNull(r); + Assertions.assertEquals(3, r.getHeight(), 0); + Assertions.assertEquals(8, r.getWidth(), 0); r = results.get(2); - assertNotNull(r); - assertEquals(r.getHeight(), 10, 0); - assertEquals(r.getWidth(), 10, 0); + Assertions.assertNotNull(r); + Assertions.assertEquals(10, r.getHeight(), 0); + Assertions.assertEquals(10, r.getWidth(), 0); } @Test @@ -775,24 +763,24 @@ public void testNaturalSortDescending() { .iterator() .toList(); - assertEquals(results.size(), 4); + Assertions.assertEquals(4, results.size()); Rectangle r; r = results.get(0); - assertNotNull(r); - assertEquals(r.getHeight(), 10, 0); - assertEquals(r.getWidth(), 1, 0); + Assertions.assertNotNull(r); + Assertions.assertEquals(10, r.getHeight(), 0); + Assertions.assertEquals(1, r.getWidth(), 0); r = results.get(1); - assertNotNull(r); - assertEquals(r.getHeight(), 10, 0); - assertEquals(r.getWidth(), 10, 0); + Assertions.assertNotNull(r); + Assertions.assertEquals(10, r.getHeight(), 0); + Assertions.assertEquals(10, r.getWidth(), 0); r = results.get(2); - assertNotNull(r); - assertEquals(r.getHeight(), 3, 0); - assertEquals(r.getWidth(), 8, 0); + Assertions.assertNotNull(r); + Assertions.assertEquals(3, r.getHeight(), 0); + Assertions.assertEquals(8, r.getWidth(), 0); } @Test @@ -804,11 +792,11 @@ public void testNegativeBatchSize() { new PhotoWithKeywords("1", "2"), new PhotoWithKeywords("3", "4"), new PhotoWithKeywords("5", "6"))); - assertEquals(getDs().find(PhotoWithKeywords.class, + Assertions.assertEquals(2, getDs().find(PhotoWithKeywords.class, new FindOptions() .batchSize(-2)) .iterator().toList() - .size(), 2); + .size()); } @Test @@ -823,24 +811,24 @@ public void testNoLifeCycleEventsOnParameters() { queryPic.setId(p.getId()); Query query = getDs().find(ContainsPic.class) .filter(eq("pic", queryPic)); - assertFalse(queryPic.isPrePersist()); - assertNotNull(query.iterator() + Assertions.assertFalse(queryPic.isPrePersist()); + Assertions.assertNotNull(query.iterator() .tryNext()); getDs().find(ContainsPic.class) .filter(elemMatch("pic", eq("pic", queryPic))); - assertFalse(queryPic.isPrePersist()); + Assertions.assertFalse(queryPic.isPrePersist()); } @Test public void testNonexistentFindGet() { - assertNull(getDs().find(Student.class).filter(eq("_id", -1)).iterator() + Assertions.assertNull(getDs().find(Student.class).filter(eq("_id", -1)).iterator() .tryNext()); } @Test public void testNonexistentGet() { - assertNull(getDs().find(Student.class) + Assertions.assertNull(getDs().find(Student.class) .filter(eq("_id", -1)) .first()); } @@ -855,8 +843,8 @@ public void testProject() { .limit(1)) .iterator() .tryNext(); - assertNotNull(found.firstName); - assertNull(found.lastName); + Assertions.assertNotNull(found.firstName); + Assertions.assertNull(found.lastName); found = getDs().find(ContainsRenamedFields.class, new FindOptions() @@ -864,8 +852,8 @@ public void testProject() { .limit(1)) .iterator() .tryNext(); - assertNotNull(found.firstName); - assertNull(found.lastName); + Assertions.assertNotNull(found.firstName); + Assertions.assertNull(found.lastName); try { getDs() @@ -875,7 +863,7 @@ public void testProject() { .limit(1)) .iterator() .tryNext(); - fail("Validation should have caught the bad field"); + Assertions.fail("Validation should have caught the bad field"); } catch (ValidationException e) { // success! } @@ -889,34 +877,27 @@ public void testProjectArrayField() { IntVector vector = new IntVector(ints); getDs().save(vector); - assertEquals(copy(ints, 0, 4), - getDs().find(IntVector.class, - new FindOptions() - .projection().project("scalars", limit(4)) - .limit(1)) - .iterator() - .next().scalars); - assertEquals(copy(ints, 5, 4), getDs().find(IntVector.class, + Assertions.assertArrayEquals(copy(ints, 0, 4), getDs().find(IntVector.class, + new FindOptions() + .projection().project("scalars", limit(4)) + .limit(1)) + .iterator().next().scalars); + Assertions.assertArrayEquals(copy(ints, 5, 4), getDs().find(IntVector.class, new FindOptions() .projection() .project("scalars", limit(4).skip(5)) .limit(1)) - .iterator() - .next().scalars); - assertEquals(copy(ints, ints.length - 10, 6), - getDs().find(IntVector.class, - new FindOptions() - .projection().project("scalars", limit(6).skip(-10)) - .limit(1)) - .iterator() - .next().scalars); - assertEquals(copy(ints, ints.length - 12, 12), - getDs().find(IntVector.class, - new FindOptions() - .projection().project("scalars", limit(-12)) - .limit(1)) - .iterator() - .next().scalars); + .iterator().next().scalars); + Assertions.assertArrayEquals(copy(ints, ints.length - 10, 6), getDs().find(IntVector.class, + new FindOptions() + .projection().project("scalars", limit(6).skip(-10)) + .limit(1)) + .iterator().next().scalars); + Assertions.assertArrayEquals(copy(ints, ints.length - 12, 12), getDs().find(IntVector.class, + new FindOptions() + .projection().project("scalars", limit(-12)) + .limit(1)) + .iterator().next().scalars); } @Test @@ -935,13 +916,13 @@ public void testQBE() { // CustomId exId = new CustomId(); // exId.type = cId.type; // loaded = getDs().find(UsesCustomIdObject.class, "_id", exId).get(); - // assertNotNull(loaded); + // Assertions.assertNotNull(loaded); final UsesCustomIdObject ex = new UsesCustomIdObject(); ex.setText(object.getText()); loaded = getDs().queryByExample(ex).iterator() .next(); - assertNotNull(loaded); + Assertions.assertNotNull(loaded); } @Test @@ -952,15 +933,15 @@ public void testQueryCount() { new Rectangle(10, 10), new Rectangle(10, 10))); - assertEquals(getDs().find(Rectangle.class) + Assertions.assertEquals(3, getDs().find(Rectangle.class) .filter(eq("height", 1D)) - .count(), 3); - assertEquals(getDs().find(Rectangle.class) + .count()); + Assertions.assertEquals(2, getDs().find(Rectangle.class) .filter(eq("height", 10D)) - .count(), 2); - assertEquals(getDs().find(Rectangle.class) + .count()); + Assertions.assertEquals(5, getDs().find(Rectangle.class) .filter(eq("width", 10D)) - .count(), 5); + .count()); } @@ -973,29 +954,31 @@ public void testQueryOverLazyReference() { getDs().save(cpk); - assertEquals(getDs().find(ContainsPic.class) + Assertions.assertEquals(1, getDs().find(ContainsPic.class) .filter(eq("lazyPic", p)) - .count(), 1); + .count()); } - @Test(expectedExceptions = ValidationException.class) + @Test public void testQueryOverReference() { + Assertions.assertThrows(ValidationException.class, () -> { - final ContainsPic cpk = new ContainsPic(); - final Pic p = new Pic(); - getDs().save(p); - cpk.pic = p; + final ContainsPic cpk = new ContainsPic(); + final Pic p = new Pic(); + getDs().save(p); + cpk.pic = p; - getDs().save(cpk); + getDs().save(cpk); - final Query query = getDs().find(ContainsPic.class); + final Query query = getDs().find(ContainsPic.class); - Query pic = query.filter(eq("pic", p)); - assertEquals(pic.count(), 1); + Query pic = query.filter(eq("pic", p)); + Assertions.assertEquals(1, pic.count()); - getDs().find(ContainsPic.class) - .filter(eq("pic.name", "foo")) - .first(); + getDs().find(ContainsPic.class) + .filter(eq("pic.name", "foo")) + .first(); + }); } @Test @@ -1012,57 +995,59 @@ public void testQueryUnmappedData() { Query query = getDs().find(Class1.class); query.disableValidation().filter(eq("someMap.someKey", "value")); Class1 retrievedValue = query.iterator().next(); - assertNotNull(retrievedValue); - assertEquals(retrievedValue.value1, "foo"); + Assertions.assertNotNull(retrievedValue); + Assertions.assertEquals("foo", retrievedValue.value1); } @Test public void testRangeQuery() { getDs().save(asList(new Rectangle(1, 10), new Rectangle(4, 2), new Rectangle(6, 10), new Rectangle(8, 5), new Rectangle(10, 4))); - assertEquals(getDs().find(Rectangle.class) + Assertions.assertEquals(4, getDs().find(Rectangle.class) .filter(gt("height", 3)) - .count(), 4); - assertEquals(getDs().find(Rectangle.class) + .count()); + Assertions.assertEquals(3, getDs().find(Rectangle.class) .filter(gt("height", 3), lt("height", 10)) - .count(), 3); - assertEquals(getDs().find(Rectangle.class) + .count()); + Assertions.assertEquals(1, getDs().find(Rectangle.class) .filter(gt("height", 9), lt("width", 5)) - .count(), 1); - assertEquals(getDs().find(Rectangle.class) + .count()); + Assertions.assertEquals(3, getDs().find(Rectangle.class) .filter(lt("height", 7)) - .count(), 3); + .count()); } - @Test(expectedExceptions = ValidationException.class) + @Test public void testReferenceQuery() { - final Photo p = new Photo(); - final HasPhotoReference cpk = new HasPhotoReference(); - cpk.photo = getDs().save(p); - getDs().save(cpk); + Assertions.assertThrows(ValidationException.class, () -> { + final Photo p = new Photo(); + final HasPhotoReference cpk = new HasPhotoReference(); + cpk.photo = getDs().save(p); + getDs().save(cpk); - Query query = getDs().find(HasPhotoReference.class, new FindOptions().logQuery().limit(1)) - .filter(eq("photo", p)); + Query query = getDs().find(HasPhotoReference.class, new FindOptions().logQuery().limit(1)) + .filter(eq("photo", p)); - assertNotNull(query.first(), query.getLoggedQuery()); + Assertions.assertNotNull(query.first(), query.getLoggedQuery()); - FindOptions limit = new FindOptions().limit(1); - assertNotNull(getDs().find(HasPhotoReference.class, limit).filter(eq("photo", cpk.photo)).first()); - assertNull(getDs().find(HasPhotoReference.class, limit).filter(eq("photo", 1)).first()); + FindOptions limit = new FindOptions().limit(1); + Assertions.assertNotNull(getDs().find(HasPhotoReference.class, limit).filter(eq("photo", cpk.photo)).first()); + Assertions.assertNull(getDs().find(HasPhotoReference.class, limit).filter(eq("photo", 1)).first()); - assertNotNull(getDs().find(HasPhotoReference.class, limit).filter(eq("photo.keywords", "foo")).first()); + Assertions.assertNotNull(getDs().find(HasPhotoReference.class, limit).filter(eq("photo.keywords", "foo")).first()); + }); } @Test public void testRenamedFieldQuery() { getDs().save(new ContainsRenamedFields("Scott", "Bakula")); - assertNotNull(getDs().find(ContainsRenamedFields.class) + Assertions.assertNotNull(getDs().find(ContainsRenamedFields.class) .filter(eq("firstName", "Scott")).iterator() .next()); - assertNotNull(getDs().find(ContainsRenamedFields.class) + Assertions.assertNotNull(getDs().find(ContainsRenamedFields.class) .filter(eq("first_name", "Scott")).iterator() .next()); } @@ -1078,8 +1063,8 @@ public void testRetrievedFields() { .limit(1)) .iterator() .tryNext(); - assertNotNull(found.firstName); - assertNull(found.lastName); + Assertions.assertNotNull(found.firstName); + Assertions.assertNull(found.lastName); found = getDs() .find(ContainsRenamedFields.class, @@ -1088,8 +1073,8 @@ public void testRetrievedFields() { .limit(1)) .iterator() .tryNext(); - assertNotNull(found.firstName); - assertNull(found.lastName); + Assertions.assertNotNull(found.firstName); + Assertions.assertNull(found.lastName); try { getDs() @@ -1099,7 +1084,7 @@ public void testRetrievedFields() { .limit(1)) .iterator() .tryNext(); - fail("Validation should have caught the bad field"); + Assertions.fail("Validation should have caught the bad field"); } catch (ValidationException e) { // success! } @@ -1117,9 +1102,9 @@ public void testReturnOnlyIndexedFields() { .returnKey(true)) .filter(eq("name", "pic2")) .first(); - assertNotNull(foundItem); + Assertions.assertNotNull(foundItem); assertThat("Name should be populated", foundItem.getName(), is("pic2")); - assertNull(foundItem.getId(), "ID should not be populated"); + Assertions.assertNull(foundItem.getId(), "ID should not be populated"); } @Test @@ -1134,8 +1119,8 @@ public void testSimpleSort() { .limit(1)) .iterator() .next(); - assertNotNull(r1); - assertEquals(r1.getWidth(), 1, 0); + Assertions.assertNotNull(r1); + Assertions.assertEquals(1, r1.getWidth(), 0); r1 = getDs().find(Rectangle.class, new FindOptions() @@ -1143,8 +1128,8 @@ public void testSimpleSort() { .limit(1)) .iterator() .next(); - assertNotNull(r1); - assertEquals(r1.getWidth(), 10, 0); + Assertions.assertNotNull(r1); + Assertions.assertEquals(10, r1.getWidth(), 0); } @Test @@ -1159,7 +1144,7 @@ public void testTailableCursors() { final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); - assertEquals(query.count(), 0); + Assertions.assertEquals(0, query.count()); ScheduledFuture scheduledFuture = executorService.scheduleAtFixedRate( () -> ds.save(new CappedPic()), 0, 100, TimeUnit.MILLISECONDS); @@ -1181,8 +1166,8 @@ public void testTailableCursors() { return found.size() >= 10; }); executorService.shutdownNow(); - assertTrue(found.size() >= 10); - assertTrue(query.count() >= 10); + Assertions.assertTrue(found.size() >= 10); + Assertions.assertTrue(query.count() >= 10); } @Test @@ -1201,18 +1186,18 @@ public void testThatElemMatchQueriesOnlyChecksRequiredFields() { // NOT: // find({ keywords: { $elemMatch: { keyword: "Scott", score: 12 } } }) - assertNotNull(getDs().find(PhotoWithKeywords.class) + Assertions.assertNotNull(getDs().find(PhotoWithKeywords.class) .filter(elemMatch("keywords", eq("keyword", "Scott"))).iterator() .tryNext()); - assertNull(getDs().find(PhotoWithKeywords.class) + Assertions.assertNull(getDs().find(PhotoWithKeywords.class) .filter(elemMatch("keywords", eq("keyword", "Randy"))).iterator() .tryNext()); } private void assertListEquals(List list, MongoCursor cursor) { for (T t : list) { - assertEquals(cursor.next(), t, list.toString()); + Assertions.assertEquals(t, cursor.next(), list.toString()); } } diff --git a/core/src/test/java/dev/morphia/test/query/TestTextSearching.java b/core/src/test/java/dev/morphia/test/query/TestTextSearching.java index d472eac3408..620cae47dd0 100644 --- a/core/src/test/java/dev/morphia/test/query/TestTextSearching.java +++ b/core/src/test/java/dev/morphia/test/query/TestTextSearching.java @@ -14,12 +14,12 @@ import dev.morphia.test.models.Book; import org.bson.types.ObjectId; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.query.Sort.ascending; import static dev.morphia.query.filters.Filters.text; import static java.util.Arrays.asList; -import static org.testng.Assert.assertEquals; public class TestTextSearching extends TestBase { @Test @@ -44,33 +44,33 @@ public void testTextSearch() { .filter(text("good")) .iterator() .toList(); - assertEquals(good.size(), 4); - assertEquals(good.get(0).value, "good morning"); - assertEquals(good.get(1).value, "good afternoon"); - assertEquals(good.get(2).value, "good night"); - assertEquals(good.get(3).value, "good riddance"); + Assertions.assertEquals(4, good.size()); + Assertions.assertEquals("good morning", good.get(0).value); + Assertions.assertEquals("good afternoon", good.get(1).value); + Assertions.assertEquals("good night", good.get(2).value); + Assertions.assertEquals("good riddance", good.get(3).value); good = getDs().find(Greeting.class, new FindOptions().sort(ascending("_id"))) .filter(text("good") .language("english")) .iterator() .toList(); - assertEquals(good.size(), 4); - assertEquals(good.get(0).value, "good morning"); - assertEquals(good.get(1).value, "good afternoon"); - assertEquals(good.get(2).value, "good night"); - assertEquals(good.get(3).value, "good riddance"); + Assertions.assertEquals(4, good.size()); + Assertions.assertEquals("good morning", good.get(0).value); + Assertions.assertEquals("good afternoon", good.get(1).value); + Assertions.assertEquals("good night", good.get(2).value); + Assertions.assertEquals("good riddance", good.get(3).value); - assertEquals(getDs().find(Greeting.class) + Assertions.assertEquals(1, getDs().find(Greeting.class) .filter(text("riddance")) - .iterator().toList().size(), 1); - assertEquals(getDs().find(Greeting.class) + .iterator().toList().size()); + Assertions.assertEquals(1, getDs().find(Greeting.class) .filter(text("noches") .language("spanish")) - .iterator().toList().size(), 1); - assertEquals(getDs().find(Greeting.class) + .iterator().toList().size()); + Assertions.assertEquals(1, getDs().find(Greeting.class) .filter(text("Tag")) - .iterator().toList().size(), 1); + .iterator().toList().size()); } @Test @@ -89,8 +89,8 @@ public void testTextSearchSorting() { .filter(text("Dante Comedy")) .iterator() .toList(); - assertEquals(books.size(), 3); - assertEquals(books.get(0).title, "Divine Comedy"); + Assertions.assertEquals(3, books.size()); + Assertions.assertEquals("Divine Comedy", books.get(0).title); } @Test @@ -109,8 +109,8 @@ public void testTextSearchValidationFailed() { .filter(text("Dante")) .iterator() .toList(); - assertEquals(books.size(), 3); - assertEquals(books.get(0).authorString, "Dante"); + Assertions.assertEquals(3, books.size()); + Assertions.assertEquals("Dante", books.get(0).authorString); } @Test @@ -129,9 +129,9 @@ public void testTextSearchWithMeta() { .filter(text("Dante")) .iterator() .toList(); - assertEquals(books.size(), 3); + Assertions.assertEquals(3, books.size()); for (Book book : books) { - assertEquals(book.authorString, "Dante"); + Assertions.assertEquals("Dante", book.authorString); } } diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestAll.java b/core/src/test/java/dev/morphia/test/query/filters/TestAll.java index c9be67b997e..f5b8cb4e601 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestAll.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestAll.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.all; import static dev.morphia.query.filters.Filters.elemMatch; @@ -16,7 +17,8 @@ public class TestAll extends TemplatedTestBase { * test data: dev/morphia/test/query/filters/all/example1 * */ - @Test(testName = "Use ``$all`` to Match Values") + @Test + @DisplayName("Use ``$all`` to Match Values") public void testExample1() { testQuery((query) -> query.filter(all("tags", List.of("appliance", "school", "book")))); } @@ -25,7 +27,8 @@ public void testExample1() { * test data: dev/morphia/test/query/filters/all/example2 * */ - @Test(testName = "Use ``$all`` with ``$elemMatch``") + @Test + @DisplayName("Use ``$all`` with ``$elemMatch``") public void testExample2() { testQuery((query) -> query.filter(all("qty", List.of(elemMatch(eq("size", "M"), gt("num", 50)), elemMatch(eq("num", 100), eq("color", "green")))))); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestAnd.java b/core/src/test/java/dev/morphia/test/query/filters/TestAnd.java index 88c7b5df44c..982712c9c75 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestAnd.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestAnd.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.and; import static dev.morphia.query.filters.Filters.eq; @@ -18,7 +19,8 @@ public class TestAnd extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/and/example1 */ - @Test(testName = "``AND`` Queries With Multiple Expressions Specifying the Same Field") + @Test + @DisplayName("``AND`` Queries With Multiple Expressions Specifying the Same Field") public void testExample1() { testQuery(new ActionTestOptions().skipDataCheck(true), (query) -> query.filter(and(ne("price", 1.99), exists("price")))); @@ -27,7 +29,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/and/example2 */ - @Test(testName = "``AND`` Queries With Multiple Expressions Specifying the Same Operator") + @Test + @DisplayName("``AND`` Queries With Multiple Expressions Specifying the Same Operator") public void testExample2() { testQuery(new ActionTestOptions().skipDataCheck(true), (query) -> query.filter(and(or(lt("qty", 10), gt("qty", 50)), or(eq("sale", true), lt("price", 5))))); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestBitsAllClear.java b/core/src/test/java/dev/morphia/test/query/filters/TestBitsAllClear.java index 07525d79a6f..d315697fcb3 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestBitsAllClear.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestBitsAllClear.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.bitsAllClear; @@ -11,7 +12,8 @@ public class TestBitsAllClear extends TemplatedTestBase { * test data: dev/morphia/test/query/filters/bitsAllClear/example1 * */ - @Test(testName = "Bit Position Array") + @Test + @DisplayName("Bit Position Array") public void testExample1() { testQuery((query) -> query.filter(bitsAllClear("a", new int[] { 1, 5 }))); } @@ -20,7 +22,8 @@ public void testExample1() { * test data: dev/morphia/test/query/filters/bitsAllClear/example2 * */ - @Test(testName = "Integer Bitmask") + @Test + @DisplayName("Integer Bitmask") public void testExample2() { testQuery((query) -> query.filter(bitsAllClear("a", 35))); } @@ -29,7 +32,8 @@ public void testExample2() { * test data: dev/morphia/test/query/filters/bitsAllClear/example3 * */ - @Test(testName = "BinData Bitmask") + @Test + @DisplayName("BinData Bitmask") public void testExample3() { testQuery((query) -> query.filter(bitsAllClear("a", new byte[] { 32 }))); } diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestBitsAllSet.java b/core/src/test/java/dev/morphia/test/query/filters/TestBitsAllSet.java index a0b50689ab2..bc2d049d1ac 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestBitsAllSet.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestBitsAllSet.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.bitsAllSet; @@ -11,7 +12,8 @@ public class TestBitsAllSet extends TemplatedTestBase { * test data: dev/morphia/test/query/filters/bitsAllSet/example1 * */ - @Test(testName = "Bit Position Array") + @Test + @DisplayName("Bit Position Array") public void testExample1() { testQuery((query) -> query.filter(bitsAllSet("a", new int[] { 1, 5 }))); } @@ -20,7 +22,8 @@ public void testExample1() { * test data: dev/morphia/test/query/filters/bitsAllSet/example2 * */ - @Test(testName = "Integer Bitmask") + @Test + @DisplayName("Integer Bitmask") public void testExample2() { testQuery((query) -> query.filter(bitsAllSet("a", 50))); } @@ -29,7 +32,8 @@ public void testExample2() { * test data: dev/morphia/test/query/filters/bitsAllSet/example3 * */ - @Test(testName = "BinData Bitmask") + @Test + @DisplayName("BinData Bitmask") public void testExample3() { testQuery((query) -> query.filter(bitsAllSet("a", new byte[] { 48 }))); } diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestBitsAnyClear.java b/core/src/test/java/dev/morphia/test/query/filters/TestBitsAnyClear.java index 9ba83abbdf9..b3358e5cd7c 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestBitsAnyClear.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestBitsAnyClear.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.bitsAnyClear; @@ -11,7 +12,8 @@ public class TestBitsAnyClear extends TemplatedTestBase { * test data: dev/morphia/test/query/filters/bitsAnyClear/example1 * */ - @Test(testName = "Bit Position Array") + @Test + @DisplayName("Bit Position Array") public void testExample1() { testQuery((query) -> query.filter(bitsAnyClear("a", new int[] { 1, 5 }))); } @@ -20,7 +22,8 @@ public void testExample1() { * test data: dev/morphia/test/query/filters/bitsAnyClear/example2 * */ - @Test(testName = "Integer Bitmask") + @Test + @DisplayName("Integer Bitmask") public void testExample2() { testQuery((query) -> query.filter(bitsAnyClear("a", 35))); } @@ -29,7 +32,8 @@ public void testExample2() { * test data: dev/morphia/test/query/filters/bitsAnyClear/example3 * */ - @Test(testName = "BinData Bitmask") + @Test + @DisplayName("BinData Bitmask") public void testExample3() { testQuery((query) -> query.filter(bitsAnyClear("a", new byte[] { 48 }))); } diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestBitsAnySet.java b/core/src/test/java/dev/morphia/test/query/filters/TestBitsAnySet.java index ae836b3a4b2..6ce60cbafbb 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestBitsAnySet.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestBitsAnySet.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.bitsAnySet; @@ -11,7 +12,8 @@ public class TestBitsAnySet extends TemplatedTestBase { * test data: dev/morphia/test/query/filters/bitsAnySet/example1 * */ - @Test(testName = "Bit Position Array") + @Test + @DisplayName("Bit Position Array") public void testExample1() { testQuery((query) -> query.filter(bitsAnySet("a", new int[] { 1, 5 }))); } @@ -20,7 +22,8 @@ public void testExample1() { * test data: dev/morphia/test/query/filters/bitsAnySet/example2 * */ - @Test(testName = "Integer Bitmask") + @Test + @DisplayName("Integer Bitmask") public void testExample2() { testQuery((query) -> query.filter(bitsAnySet("a", 35))); } @@ -29,7 +32,8 @@ public void testExample2() { * test data: dev/morphia/test/query/filters/bitsAnySet/example3 * */ - @Test(testName = "BinData Bitmask") + @Test + @DisplayName("BinData Bitmask") public void testExample3() { testQuery((query) -> query.filter(bitsAnySet("a", new byte[] { 48 }))); } diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestBox.java b/core/src/test/java/dev/morphia/test/query/filters/TestBox.java index 699d02584a7..47e043950d4 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestBox.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestBox.java @@ -6,7 +6,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.box; @@ -15,7 +16,8 @@ public class TestBox extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/box/example1 */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { Point bottomLeft = new Point(new Position(0, 0)); Point upperRight = new Point(new Position(100, 100)); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestCenter.java b/core/src/test/java/dev/morphia/test/query/filters/TestCenter.java index b820ea48994..127a434d0d0 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestCenter.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestCenter.java @@ -6,7 +6,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.center; @@ -15,7 +16,8 @@ public class TestCenter extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/center/example1 */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testQuery(new ActionTestOptions().skipDataCheck(true), (query) -> query.filter(center("loc", new Point(new Position(-74, 40.74)), 10))); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestCenterSphere.java b/core/src/test/java/dev/morphia/test/query/filters/TestCenterSphere.java index 0bbc9286008..58cc2a9c13a 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestCenterSphere.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestCenterSphere.java @@ -6,7 +6,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.centerSphere; @@ -15,7 +16,8 @@ public class TestCenterSphere extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/centerSphere/example1 */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testQuery(new ActionTestOptions().skipDataCheck(true), (query) -> query.filter(centerSphere("loc", new Point(new Position(-88, 30)), 0.0025232135648))); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestComment.java b/core/src/test/java/dev/morphia/test/query/filters/TestComment.java index a56a7058a9a..d3f886ef388 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestComment.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestComment.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.comment; import static dev.morphia.query.filters.Filters.mod; @@ -13,7 +14,8 @@ public class TestComment extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/comment/example1 */ - @Test(testName = "Attach a Comment to ``find``") + @Test + @DisplayName("Attach a Comment to ``find``") public void testExample1() { ActionTestOptions options = new ActionTestOptions().skipDataCheck(true); testQuery(options, (query) -> query.filter(mod("x", 2, 0), comment("Find even values."))); @@ -22,7 +24,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/comment/example2 */ - @Test(testName = "Attach a Comment to an Aggregation Expression") + @Test + @DisplayName("Attach a Comment to an Aggregation Expression") public void testExample2() { // this example is for an aggregation } diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestElemMatch.java b/core/src/test/java/dev/morphia/test/query/filters/TestElemMatch.java index 3176cb13b24..9ea99bcdf42 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestElemMatch.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestElemMatch.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.elemMatch; import static dev.morphia.query.filters.Filters.eq; @@ -14,7 +15,8 @@ public class TestElemMatch extends TemplatedTestBase { * test data: dev/morphia/test/query/filters/elemMatch/example1 * */ - @Test(testName = "Element Match") + @Test + @DisplayName("Element Match") public void testExample1() { testQuery((query) -> query.filter(elemMatch("results", gte(80), lt(85)))); } @@ -23,7 +25,8 @@ public void testExample1() { * test data: dev/morphia/test/query/filters/elemMatch/example2 * */ - @Test(testName = "Array of Embedded Documents") + @Test + @DisplayName("Array of Embedded Documents") public void testExample2() { testQuery((query) -> query.filter(elemMatch("results", eq("product", "xyz"), gte("score", 8)))); } @@ -32,7 +35,8 @@ public void testExample2() { * test data: dev/morphia/test/query/filters/elemMatch/example3 * */ - @Test(testName = "Single Query Condition") + @Test + @DisplayName("Single Query Condition") public void testExample3() { testQuery((query) -> query.filter(elemMatch("results", eq("product", "xyz")))); } diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestEq.java b/core/src/test/java/dev/morphia/test/query/filters/TestEq.java index 831594e63a6..df58e4c2fe7 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestEq.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestEq.java @@ -6,7 +6,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; @@ -15,7 +16,8 @@ public class TestEq extends TemplatedTestBase { * test data: dev/morphia/test/query/filters/eq/example1 * */ - @Test(testName = "Equals a Specified Value") + @Test + @DisplayName("Equals a Specified Value") public void testExample1() { testQuery((query) -> query.filter(eq("qty", 20))); } @@ -24,7 +26,8 @@ public void testExample1() { * test data: dev/morphia/test/query/filters/eq/example2 * */ - @Test(testName = "Field in Embedded Document Equals a Value") + @Test + @DisplayName("Field in Embedded Document Equals a Value") public void testExample2() { testQuery((query) -> query.filter(eq("item.name", "ab"))); } @@ -33,7 +36,8 @@ public void testExample2() { * test data: dev/morphia/test/query/filters/eq/example3 * */ - @Test(testName = "Array Element Equals a Value") + @Test + @DisplayName("Array Element Equals a Value") public void testExample3() { testQuery((query) -> query.filter(eq("tags", "B"))); } @@ -42,7 +46,8 @@ public void testExample3() { * test data: dev/morphia/test/query/filters/eq/example4 * */ - @Test(testName = "Equals an Array Value") + @Test + @DisplayName("Equals an Array Value") public void testExample4() { testQuery((query) -> query.filter(eq("tags", List.of("A", "B")) @@ -53,7 +58,8 @@ public void testExample4() { * test data: dev/morphia/test/query/filters/eq/example5 * */ - @Test(testName = "Regex Match Behaviour") + @Test + @DisplayName("Regex Match Behaviour") public void testExample5() { testQuery(new ActionTestOptions().removeIds(true), (query) -> query.filter(eq("company", Pattern.compile("MongoDB")))); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestExists.java b/core/src/test/java/dev/morphia/test/query/filters/TestExists.java index 1b9998a7c21..ac12eb8ea9f 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestExists.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestExists.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.exists; @@ -12,7 +13,8 @@ public class TestExists extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/exists/example1 */ - @Test(testName = "Exists and Not Equal To") + @Test + @DisplayName("Exists and Not Equal To") public void testExample1() { testQuery(new ActionTestOptions().removeIds(true), (query) -> query.filter(exists("saffron"))); } @@ -20,7 +22,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/exists/example2 */ - @Test(testName = "Null Values") + @Test + @DisplayName("Null Values") public void testExample2() { testQuery(new ActionTestOptions().removeIds(true), (query) -> query.filter(exists("cinnamon").not() diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestExpr.java b/core/src/test/java/dev/morphia/test/query/filters/TestExpr.java index 5682b776319..da2537ea74e 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestExpr.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestExpr.java @@ -2,7 +2,9 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.gt; import static dev.morphia.aggregation.expressions.ComparisonExpressions.gte; @@ -16,7 +18,8 @@ public class TestExpr extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/expr/example1 */ - @Test(testName = "Compare Two Fields from A Single Document") + @Test + @DisplayName("Compare Two Fields from A Single Document") public void testExample1() { testQuery((query) -> query.filter(expr(gt("$spent", "$budget")))); } @@ -24,7 +27,9 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/expr/example2 */ - @Test(testName = "Using ``$expr`` With Conditional Statements", enabled = false, description = "parsing bug in Document's json parsing at $cond") + @Disabled("parsing bug in Document's json parsing at $cond") + @Test + @DisplayName("Using ``$expr`` With Conditional Statements") public void testExample2() { testQuery((query) -> query .filter(expr(lt(condition(gte("qty", 100), multiply("$price", 0.5), multiply("$price", 0.75)), 5.0)))); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestGeoIntersects.java b/core/src/test/java/dev/morphia/test/query/filters/TestGeoIntersects.java index b317134c75c..e3d2a34d1da 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestGeoIntersects.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestGeoIntersects.java @@ -8,7 +8,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.geoIntersects; import static java.util.List.of; @@ -18,7 +19,8 @@ public class TestGeoIntersects extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/geoIntersects/example1 */ - @Test(testName = "Intersects a Polygon") + @Test + @DisplayName("Intersects a Polygon") public void testExample1() { testQuery(new ActionTestOptions().skipDataCheck(true), (query) -> query.filter(geoIntersects("loc", new Polygon(of(new Position(0, 0), new Position(3, 6), new Position(6, 1), new Position(0, 0)))))); @@ -27,7 +29,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/geoIntersects/example2 */ - @Test(testName = "Intersects a \"Big\" Polygon") + @Test + @DisplayName("Intersects a \"Big\" Polygon") public void testExample2() { var exterior = new PolygonCoordinates(of(new Position(-100, 60), new Position(-100, 0), new Position(-100, -60), new Position(100, -60), new Position(100, 60), new Position(-100, 60))); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestGeoWithin.java b/core/src/test/java/dev/morphia/test/query/filters/TestGeoWithin.java index 964da51d2bb..629abb4490e 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestGeoWithin.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestGeoWithin.java @@ -10,7 +10,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.geoWithin; @@ -19,7 +20,8 @@ public class TestGeoWithin extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/geoWithin/example1 */ - @Test(testName = "Within a Polygon") + @Test + @DisplayName("Within a Polygon") public void testExample1() { var points = List.of(new Position(0, 0), new Position(3, 6), new Position(6, 1), new Position(0, 0)); testQuery(new ActionTestOptions().skipDataCheck(true), @@ -29,7 +31,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/geoWithin/example2 */ - @Test(testName = "Within a \"Big\" Polygon") + @Test + @DisplayName("Within a \"Big\" Polygon") public void testExample2() { var coords = new PolygonCoordinates(List.of(new Position(-100, 60), new Position(-100, 0), new Position(-100, -60), new Position(100, -60), new Position(100, 60), new Position(-100, 60))); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestGt.java b/core/src/test/java/dev/morphia/test/query/filters/TestGt.java index 6bd01550ab1..db47cc17993 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestGt.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestGt.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.gt; @@ -13,7 +14,8 @@ public class TestGt extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/gt/example1 */ - @Test(testName = "Match Document Fields") + @Test + @DisplayName("Match Document Fields") public void testExample1() { testQuery(new ActionTestOptions().removeIds(true), (query) -> query.filter(gt("quantity", 20))); } @@ -21,7 +23,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/gt/example2 */ - @Test(testName = "Perform an Update Based on Embedded Document Fields") + @Test + @DisplayName("Perform an Update Based on Embedded Document Fields") public void testExample2() { testUpdate(new ActionTestOptions().removeIds(true), (query) -> query.filter(gt("carrier.fee", 2)), UpdateOperators.set("price", 9.99)); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestGte.java b/core/src/test/java/dev/morphia/test/query/filters/TestGte.java index 3932c9dc8e6..023d17664a7 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestGte.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestGte.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.gte; import static dev.morphia.query.updates.UpdateOperators.set; @@ -13,7 +14,8 @@ public class TestGte extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/gte/example1 */ - @Test(testName = "Match Document Fields") + @Test + @DisplayName("Match Document Fields") public void testExample1() { testQuery(new ActionTestOptions().removeIds(true), (query) -> query.filter(gte("quantity", 20))); } @@ -21,7 +23,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/gte/example2 */ - @Test(testName = "Perform an Update Based on Embedded Document Fields") + @Test + @DisplayName("Perform an Update Based on Embedded Document Fields") public void testExample2() { testUpdate(new ActionTestOptions().removeIds(true), (query) -> query.filter(gte("carrier.fee", 2)), set("price", 9.99)); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestIn.java b/core/src/test/java/dev/morphia/test/query/filters/TestIn.java index 2e430746b62..548737f0294 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestIn.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestIn.java @@ -6,7 +6,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.in; import static dev.morphia.query.updates.UpdateOperators.set; @@ -16,7 +17,8 @@ public class TestIn extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/in/example1 */ - @Test(testName = "Use the ``$in`` Operator to Match Values") + @Test + @DisplayName("Use the ``$in`` Operator to Match Values") public void testExample1() { testQuery(new ActionTestOptions().removeIds(true), (query) -> query.filter(in("quantity", List.of(5, 15)))); } @@ -24,7 +26,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/in/example2 */ - @Test(testName = "Use the ``$in`` Operator to Match Values in an Array") + @Test + @DisplayName("Use the ``$in`` Operator to Match Values in an Array") public void testExample2() { testUpdate(new ActionTestOptions().removeIds(true).orderMatters(false), (query) -> query.filter(in("tags", List.of("home", "school"))), set("exclude", false)); @@ -34,7 +37,8 @@ public void testExample2() { * test data: dev/morphia/test/query/filters/in/example3 * */ - @Test(testName = "Use the ``$in`` Operator with a Regular Expression") + @Test + @DisplayName("Use the ``$in`` Operator with a Regular Expression") public void testExample3() { testQuery(new ActionTestOptions().skipDataCheck(true), (query) -> query.filter(in("tags", List.of(Pattern.compile("^be"), Pattern.compile("^st"))))); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestLt.java b/core/src/test/java/dev/morphia/test/query/filters/TestLt.java index 0f894be1456..26c994eef7c 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestLt.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestLt.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.lt; import static dev.morphia.query.updates.UpdateOperators.set; @@ -13,7 +14,8 @@ public class TestLt extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/lt/example1 */ - @Test(testName = "Match Document Fields") + @Test + @DisplayName("Match Document Fields") public void testExample1() { testQuery(new ActionTestOptions().removeIds(true), (query) -> query.filter(lt("quantity", 20))); } @@ -21,7 +23,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/lt/example2 */ - @Test(testName = "Perform an Update Based on Embedded Document Fields") + @Test + @DisplayName("Perform an Update Based on Embedded Document Fields") public void testExample2() { testUpdate(new ActionTestOptions().removeIds(true), (query) -> query.filter(lt("carrier.fee", 20)), set("price", 9.99)); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestLte.java b/core/src/test/java/dev/morphia/test/query/filters/TestLte.java index 9cba2cc32b6..9d7b4f7b299 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestLte.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestLte.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.lte; import static dev.morphia.query.updates.UpdateOperators.set; @@ -13,7 +14,8 @@ public class TestLte extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/lte/example1 */ - @Test(testName = "Match Document Fields") + @Test + @DisplayName("Match Document Fields") public void testExample1() { testQuery(new ActionTestOptions().removeIds(true), (query) -> query.filter(lte("quantity", 20))); } @@ -21,7 +23,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/lte/example2 */ - @Test(testName = "Perform an Update Based on Embedded Document Fields") + @Test + @DisplayName("Perform an Update Based on Embedded Document Fields") public void testExample2() { testUpdate(new ActionTestOptions().removeIds(true), (query) -> query.filter(lte("carrier.fee", 5)), set("price", 9.99)); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestMaxDistance.java b/core/src/test/java/dev/morphia/test/query/filters/TestMaxDistance.java index 3da564fcb75..14594b07feb 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestMaxDistance.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestMaxDistance.java @@ -2,14 +2,16 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; public class TestMaxDistance extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/maxDistance/example1 */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { // legacy coordinates just won't be supported for now diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestMinDistance.java b/core/src/test/java/dev/morphia/test/query/filters/TestMinDistance.java index 2bbc7a28e40..743302c8b41 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestMinDistance.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestMinDistance.java @@ -2,14 +2,16 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; public class TestMinDistance extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/minDistance/example1 */ - @Test(testName = "Use with ``$near``") + @Test + @DisplayName("Use with ``$near``") public void testExample1() { // already tested elsewhere } @@ -17,7 +19,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/minDistance/example2 */ - @Test(testName = "Use with ``$nearSphere``") + @Test + @DisplayName("Use with ``$nearSphere``") public void testExample2() { // legacy coordinates just won't be supported for now } diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestMod.java b/core/src/test/java/dev/morphia/test/query/filters/TestMod.java index 0e6b0aab279..a0e76eda6e1 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestMod.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestMod.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.mod; @@ -11,7 +12,8 @@ public class TestMod extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/mod/example1 */ - @Test(testName = "Use ``$mod`` to Select Documents") + @Test + @DisplayName("Use ``$mod`` to Select Documents") public void testExample1() { testQuery((query) -> query.filter(mod("qty", 4, 0))); } @@ -19,7 +21,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/mod/example2 */ - @Test(testName = "Not Enough Elements Error") + @Test + @DisplayName("Not Enough Elements Error") public void testExample2() { // ignored } @@ -27,7 +30,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/filters/mod/example3 */ - @Test(testName = "Too Many Elements Error") + @Test + @DisplayName("Too Many Elements Error") public void testExample3() { // ignored } @@ -35,7 +39,8 @@ public void testExample3() { /** * test data: dev/morphia/test/query/filters/mod/example4 */ - @Test(testName = "Floating Point Arguments") + @Test + @DisplayName("Floating Point Arguments") public void testExample4() { testQuery((query) -> query.filter(mod("qty", 4.0, 0.0))); } @@ -43,7 +48,8 @@ public void testExample4() { /** * test data: dev/morphia/test/query/filters/mod/example5 */ - @Test(testName = "Negative Dividend") + @Test + @DisplayName("Negative Dividend") public void testExample5() { testQuery((query) -> query.filter(mod("qty", -4, -0))); } diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestNe.java b/core/src/test/java/dev/morphia/test/query/filters/TestNe.java index e4cd4da31b2..480fc90e6b2 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestNe.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestNe.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.ne; import static dev.morphia.query.updates.UpdateOperators.set; @@ -13,7 +14,8 @@ public class TestNe extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/ne/example1 */ - @Test(testName = "Match Document Fields That Are Not Equal") + @Test + @DisplayName("Match Document Fields That Are Not Equal") public void testExample1() { testQuery(new ActionTestOptions().removeIds(true), (query) -> query.filter(ne("quantity", 20))); } @@ -21,7 +23,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/ne/example2 */ - @Test(testName = "Update Based on Not Equal Embedded Document Fields") + @Test + @DisplayName("Update Based on Not Equal Embedded Document Fields") public void testExample2() { testUpdate(new ActionTestOptions().removeIds(true), (query) -> query.filter(ne("carrier.fee", 1)), set("price", 9.99)); @@ -31,7 +34,8 @@ public void testExample2() { * test data: dev/morphia/test/query/filters/ne/example3 * */ - @Test(testName = "Arrays") + @Test + @DisplayName("Arrays") public void testExample3() { testQuery(new ActionTestOptions().removeIds(true), (query) -> query.filter(ne("type", new String[] { "hardware", "fasteners" }))); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestNear.java b/core/src/test/java/dev/morphia/test/query/filters/TestNear.java index 526f920b838..94b94fb0f35 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestNear.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestNear.java @@ -6,7 +6,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.near; @@ -15,7 +16,8 @@ public class TestNear extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/near/example1 */ - @Test(testName = "Query on GeoJSON Data") + @Test + @DisplayName("Query on GeoJSON Data") public void testExample1() { testQuery(new ActionTestOptions().skipDataCheck(true), (query) -> query.filter( near("location", new Point(new Position(-73.9667, 40.78))).minDistance(1000.0).maxDistance(5000.0))); @@ -24,7 +26,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/near/example2 */ - @Test(testName = "Query on Legacy Coordinates") + @Test + @DisplayName("Query on Legacy Coordinates") public void testExample2() { // legacy coordinates just won't be supported for now /* diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestNearSphere.java b/core/src/test/java/dev/morphia/test/query/filters/TestNearSphere.java index e749004f44b..87c6df1f2f8 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestNearSphere.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestNearSphere.java @@ -6,7 +6,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.nearSphere; @@ -15,7 +16,8 @@ public class TestNearSphere extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/nearSphere/example1 */ - @Test(testName = "Specify Center Point Using GeoJSON") + @Test + @DisplayName("Specify Center Point Using GeoJSON") public void testExample1() { testQuery(new ActionTestOptions().skipDataCheck(true), (query) -> query.filter(nearSphere("location", new Point(new Position(-73.9667, 40.78))) @@ -25,7 +27,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/nearSphere/example2 */ - @Test(testName = "Specify Center Point Using Legacy Coordinates") + @Test + @DisplayName("Specify Center Point Using Legacy Coordinates") public void testExample2() { // legacy coordinates just won't be supported for now /* diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestNin.java b/core/src/test/java/dev/morphia/test/query/filters/TestNin.java index 9f36292d368..c7ed1f1ed51 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestNin.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestNin.java @@ -5,7 +5,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.nin; import static dev.morphia.query.updates.UpdateOperators.set; @@ -15,7 +16,8 @@ public class TestNin extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/nin/example1 */ - @Test(testName = "Select on Unmatching Documents") + @Test + @DisplayName("Select on Unmatching Documents") public void testExample1() { testQuery(new ActionTestOptions().removeIds(true), (query) -> query.filter(nin("quantity", List.of(5, 15)))); } @@ -23,7 +25,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/nin/example2 */ - @Test(testName = "Select on Elements Not in an Array") + @Test + @DisplayName("Select on Elements Not in an Array") public void testExample2() { testUpdate(new ActionTestOptions().removeIds(true), (query) -> query.filter(nin("tags", List.of("school"))), set("exclude", true)); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestNor.java b/core/src/test/java/dev/morphia/test/query/filters/TestNor.java index 12ffda880ae..f58859eb24d 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestNor.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestNor.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.filters.Filters.exists; @@ -15,7 +16,8 @@ public class TestNor extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/nor/example1 */ - @Test(testName = "``$nor`` Query with Two Expressions") + @Test + @DisplayName("``$nor`` Query with Two Expressions") public void testExample1() { testQuery(new ActionTestOptions().skipDataCheck(true), (query) -> query.filter(nor(eq("price", 1.99), eq("sale", true)))); @@ -24,7 +26,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/nor/example2 */ - @Test(testName = "``$nor`` and Additional Comparisons") + @Test + @DisplayName("``$nor`` and Additional Comparisons") public void testExample2() { testQuery(new ActionTestOptions().skipDataCheck(true), (query) -> query.filter(nor(eq("price", 1.99), lt("qty", 20), eq("sale", true)))); @@ -33,7 +36,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/filters/nor/example3 */ - @Test(testName = "``$nor`` and ``$exists``") + @Test + @DisplayName("``$nor`` and ``$exists``") public void testExample3() { testQuery(new ActionTestOptions().skipDataCheck(true), (query) -> query .filter(nor(eq("price", 1.99), exists("price").not(), eq("sale", true), exists("sale").not()) diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestPolygon.java b/core/src/test/java/dev/morphia/test/query/filters/TestPolygon.java index c8ce28c2e31..4bd4b4ad76c 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestPolygon.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestPolygon.java @@ -6,7 +6,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.polygon; @@ -15,7 +16,8 @@ public class TestPolygon extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/polygon/example1 */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { Point[] point = new Point[] { new Point(new Position(0, 0)), new Point(new Position(3, 6)), new Point(new Position(6, 0)), }; diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestRand.java b/core/src/test/java/dev/morphia/test/query/filters/TestRand.java index a655d7b4817..a5d38130f08 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestRand.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestRand.java @@ -5,7 +5,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.ComparisonExpressions.lt; import static dev.morphia.aggregation.expressions.MathExpressions.floor; @@ -19,7 +20,8 @@ public class TestRand extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/rand/example1 */ - @Test(testName = "Generate Random Data Points") + @Test + @DisplayName("Generate Random Data Points") public void testExample1() { ActionTestOptions options = new ActionTestOptions().skipDataCheck(true) .findOptions(new FindOptions().projection().include("name", "registered")); @@ -29,7 +31,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/rand/example2 */ - @Test(testName = "Select Random Items From a Collection") + @Test + @DisplayName("Select Random Items From a Collection") public void testExample2() { ActionTestOptions options = new ActionTestOptions().orderMatters(false).removeIds(true).skipDataCheck(true) .findOptions(new FindOptions().projection().include("name", "registered")); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestRegex.java b/core/src/test/java/dev/morphia/test/query/filters/TestRegex.java index b1a293c23ac..5646574ce87 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestRegex.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestRegex.java @@ -5,7 +5,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.regex; @@ -14,7 +15,8 @@ public class TestRegex extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/regex/example1 */ - @Test(testName = "Perform a ``LIKE`` Match") + @Test + @DisplayName("Perform a ``LIKE`` Match") public void testExample1() { testQuery((query) -> query.filter(regex("sku", Pattern.compile("789$")))); } @@ -22,7 +24,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/regex/example2 */ - @Test(testName = "Perform Case-Insensitive Regular Expression Match") + @Test + @DisplayName("Perform Case-Insensitive Regular Expression Match") public void testExample2() { testQuery((query) -> query.filter(regex("sku", Pattern.compile("^ABC")).caseInsensitive())); } @@ -30,7 +33,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/filters/regex/example3 */ - @Test(testName = "Multiline Match for Lines Starting with Specified Pattern") + @Test + @DisplayName("Multiline Match for Lines Starting with Specified Pattern") public void testExample3() { testQuery((query) -> query.filter(regex("description", Pattern.compile("^S")).multiline())); } @@ -38,7 +42,8 @@ public void testExample3() { /** * test data: dev/morphia/test/query/filters/regex/example4 */ - @Test(testName = "Use the ``.`` Dot Character to Match New Line") + @Test + @DisplayName("Use the ``.`` Dot Character to Match New Line") public void testExample4() { testQuery( (query) -> query.filter(regex("description", Pattern.compile("m.*line")).special().caseInsensitive())); @@ -47,7 +52,8 @@ public void testExample4() { /** * test data: dev/morphia/test/query/filters/regex/example5 */ - @Test(testName = "Ignore White Spaces in Pattern") + @Test + @DisplayName("Ignore White Spaces in Pattern") public void testExample5() { testQuery(new ActionTestOptions().serverVersion("7.0.0").skipActionCheck(true), (query) -> query .filter(regex("sku", Pattern.compile("abc #category code\n123 #item number")).extended())); @@ -56,7 +62,8 @@ public void testExample5() { /** * test data: dev/morphia/test/query/filters/regex/example6 */ - @Test(testName = "Use a Regular Expression to Match Case in Strings") + @Test + @DisplayName("Use a Regular Expression to Match Case in Strings") public void testExample6() { testQuery((query) -> query.filter(regex("sku", Pattern.compile("(?i)a(?-i)bc")))); } @@ -64,7 +71,8 @@ public void testExample6() { /** * test data: dev/morphia/test/query/filters/regex/example7 */ - @Test(testName = "Extend Regex Options to Match Characters Outside of ASCII") + @Test + @DisplayName("Extend Regex Options to Match Characters Outside of ASCII") public void testExample7() { testQuery((query) -> query.filter(regex("artist", Pattern.compile("\\byster")))); } diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestText.java b/core/src/test/java/dev/morphia/test/query/filters/TestText.java index daae386e139..02dac55a260 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestText.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestText.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.Meta.textScore; import static dev.morphia.query.filters.Filters.*; @@ -14,7 +15,8 @@ public class TestText extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/text/example1 */ - @Test(testName = "``$text`` with a Single Word") + @Test + @DisplayName("``$text`` with a Single Word") public void testExample1() { testQuery((query) -> query.filter(text("coffee"))); } @@ -22,7 +24,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/text/example2 */ - @Test(testName = "Match Any of the ``$search`` Terms") + @Test + @DisplayName("Match Any of the ``$search`` Terms") public void testExample2() { testQuery(new ActionTestOptions().orderMatters(false), (query) -> query.filter(text("bake coffee cake") @@ -32,7 +35,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/filters/text/example3 */ - @Test(testName = "``$text`` with an Exact String") + @Test + @DisplayName("``$text`` with an Exact String") public void testExample3() { testQuery(new ActionTestOptions().orderMatters(false), (query) -> query.filter(text("\"coffee shop\"") @@ -42,7 +46,8 @@ public void testExample3() { /** * test data: dev/morphia/test/query/filters/text/example4 */ - @Test(testName = "Exclude Documents That Contain a Term") + @Test + @DisplayName("Exclude Documents That Contain a Term") public void testExample4() { testQuery(new ActionTestOptions().orderMatters(false), (query) -> query.filter(text("coffee -shop") @@ -52,7 +57,8 @@ public void testExample4() { /** * test data: dev/morphia/test/query/filters/text/example5 */ - @Test(testName = "Query a Different Language") + @Test + @DisplayName("Query a Different Language") public void testExample5() { testQuery(new ActionTestOptions().orderMatters(false), (query) -> query.filter(text("leche").language("es"))); } @@ -60,7 +66,8 @@ public void testExample5() { /** * test data: dev/morphia/test/query/filters/text/example6 */ - @Test(testName = "Case and Diacritic Insensitivity") + @Test + @DisplayName("Case and Diacritic Insensitivity") public void testExample6() { testQuery(new ActionTestOptions().orderMatters(false), (query) -> query.filter(text("сы́рники CAFÉS"))); } @@ -68,7 +75,8 @@ public void testExample6() { /** * test data: dev/morphia/test/query/filters/text/example7 */ - @Test(testName = "Case Sensitivity") + @Test + @DisplayName("Case Sensitivity") public void testExample7() { testQuery((query) -> query.filter(text("Coffee").caseSensitive(true))); } @@ -76,7 +84,8 @@ public void testExample7() { /** * test data: dev/morphia/test/query/filters/text/example8 */ - @Test(testName = "Diacritic Sensitive Search") + @Test + @DisplayName("Diacritic Sensitive Search") public void testExample8() { testQuery(new ActionTestOptions().orderMatters(false), (query) -> query.filter(text("CAFÉ").diacriticSensitive(true))); @@ -85,7 +94,8 @@ public void testExample8() { /** * test data: dev/morphia/test/query/filters/text/example9 */ - @Test(testName = "Relevance Score Examples") + @Test + @DisplayName("Relevance Score Examples") public void testExample9() { ActionTestOptions options = new ActionTestOptions() .findOptions(new FindOptions().projection().project(textScore("score"))); diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestType.java b/core/src/test/java/dev/morphia/test/query/filters/TestType.java index 276be10e14a..737eef998bb 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestType.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestType.java @@ -3,7 +3,8 @@ import dev.morphia.query.Type; import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.type; @@ -12,7 +13,8 @@ public class TestType extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/type/example1 */ - @Test(testName = "Querying by Data Type") + @Test + @DisplayName("Querying by Data Type") public void testExample1() { testQuery((query) -> query.filter(type("zipCode", Type.STRING))); } @@ -20,7 +22,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/filters/type/example2 */ - @Test(testName = "Querying by Multiple Data Types") + @Test + @DisplayName("Querying by Multiple Data Types") public void testExample2() { testQuery((query) -> query.filter(type("classAverage", Type.STRING, Type.DOUBLE))); } @@ -28,7 +31,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/filters/type/example3 */ - @Test(testName = "Querying by MinKey and MaxKey") + @Test + @DisplayName("Querying by MinKey and MaxKey") public void testExample3() { testQuery((query) -> query.filter(type("grades.grade", Type.MIN_KEY))); } diff --git a/core/src/test/java/dev/morphia/test/query/filters/TestWhere.java b/core/src/test/java/dev/morphia/test/query/filters/TestWhere.java index de6400f2d6d..bdf30e7a759 100644 --- a/core/src/test/java/dev/morphia/test/query/filters/TestWhere.java +++ b/core/src/test/java/dev/morphia/test/query/filters/TestWhere.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.where; @@ -12,7 +13,8 @@ public class TestWhere extends TemplatedTestBase { /** * test data: dev/morphia/test/query/filters/where/example1 */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testQuery(new ActionTestOptions().skipActionCheck(true), (query) -> query.filter(where(""" function() { diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestAddToSet.java b/core/src/test/java/dev/morphia/test/query/updates/TestAddToSet.java index 5ac89b3d09d..f64b5f35415 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestAddToSet.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestAddToSet.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.addToSet; @@ -14,7 +15,8 @@ public class TestAddToSet extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/addToSet/example1 */ - @Test(testName = "Add to Array") + @Test + @DisplayName("Add to Array") public void testExample1() { testUpdate((query) -> query.filter(eq("_id", 1)), addToSet("tags", "accessories")); } @@ -22,7 +24,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/addToSet/example2 */ - @Test(testName = "Value Already Exists") + @Test + @DisplayName("Value Already Exists") public void testExample2() { testUpdate((query) -> query.filter(eq("_id", 1)), addToSet("tags", "camera")); } @@ -30,7 +33,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/updates/addToSet/example3 */ - @Test(testName = "``$each`` Modifier") + @Test + @DisplayName("``$each`` Modifier") public void testExample3() { testUpdate((query) -> query.filter(eq("_id", 2)), addToSet("tags", List.of("camera", "electronics", "accessories"))); diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestBit.java b/core/src/test/java/dev/morphia/test/query/updates/TestBit.java index 4332522abfc..0ee7401a3da 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestBit.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestBit.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.and; @@ -14,7 +15,8 @@ public class TestBit extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/bit/example1 */ - @Test(testName = "Bitwise AND") + @Test + @DisplayName("Bitwise AND") public void testExample1() { testUpdate((query) -> query.filter(eq("_id", 1)), and("expdata", 10)); } @@ -22,7 +24,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/bit/example2 */ - @Test(testName = "Bitwise OR") + @Test + @DisplayName("Bitwise OR") public void testExample2() { testUpdate((query) -> query.filter(eq("_id", 2)), or("expdata", 5)); } @@ -30,7 +33,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/updates/bit/example3 */ - @Test(testName = "Bitwise XOR") + @Test + @DisplayName("Bitwise XOR") public void testExample3() { testUpdate((query) -> query.filter(eq("_id", 3)), xor("expdata", 5)); } diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestCurrentDate.java b/core/src/test/java/dev/morphia/test/query/updates/TestCurrentDate.java index 325f9de8bc5..3f50c10b7ca 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestCurrentDate.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestCurrentDate.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.currentDate; @@ -15,7 +16,8 @@ public class TestCurrentDate extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/currentDate/example1 */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testUpdate(new ActionTestOptions().skipDataCheck(true), (query) -> query.filter(eq("_id", 1)), currentDate("lastModified"), currentDate("cancellation.date").type(TypeSpecification.TIMESTAMP), @@ -25,7 +27,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/currentDate/example2 */ - @Test(testName = "Aggregation Alternative to ``$currentDate``") + @Test + @DisplayName("Aggregation Alternative to ``$currentDate``") public void testExample2() { // this one isn't an operator test as such and updates with a pipeline are // tested elsewhere diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestEach.java b/core/src/test/java/dev/morphia/test/query/updates/TestEach.java index df6968e3760..35b35b58d83 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestEach.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestEach.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.addToSet; @@ -15,7 +16,8 @@ public class TestEach extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/each/example1 */ - @Test(testName = "Use ``$each`` with ``$push`` Operator") + @Test + @DisplayName("Use ``$each`` with ``$push`` Operator") public void testExample1() { testUpdate((query) -> query.filter(eq("_id", 1)), push("scores", List.of(90, 92, 85))); } @@ -23,7 +25,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/each/example2 */ - @Test(testName = "Use ``$each`` with ``$addToSet`` Operator") + @Test + @DisplayName("Use ``$each`` with ``$addToSet`` Operator") public void testExample2() { testUpdate((query) -> query.filter(eq("_id", 2)), addToSet("tags", List.of("camera", "electronics", "accessories"))); diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestInc.java b/core/src/test/java/dev/morphia/test/query/updates/TestInc.java index 6783c16de53..785ecb08095 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestInc.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestInc.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.inc; @@ -12,7 +13,8 @@ public class TestInc extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/inc/example1 */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testUpdate((query) -> query.filter(eq("sku", "abc123")), inc("quantity", -2), inc("metrics.orders", 1)); } diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestMax.java b/core/src/test/java/dev/morphia/test/query/updates/TestMax.java index 78b9a6f44b9..19579ba8365 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestMax.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestMax.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.max; @@ -14,7 +15,8 @@ public class TestMax extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/max/example1 */ - @Test(testName = "Use ``$max`` to Compare Numbers") + @Test + @DisplayName("Use ``$max`` to Compare Numbers") public void testExample1() { testUpdate((query) -> query.filter(eq("_id", 1)), max("highScore", 950)); } @@ -22,7 +24,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/max/example2 */ - @Test(testName = "Use ``$max`` to Compare Dates") + @Test + @DisplayName("Use ``$max`` to Compare Dates") public void testExample2() { testUpdate((query) -> query.filter(eq("_id", 1)), max("dateExpired", LocalDate.of(2013, 9, 30))); } diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestMin.java b/core/src/test/java/dev/morphia/test/query/updates/TestMin.java index 5376c5f1de8..0151ed5adb1 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestMin.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestMin.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.min; @@ -14,7 +15,8 @@ public class TestMin extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/min/example1 */ - @Test(testName = "Use ``$min`` to Compare Numbers") + @Test + @DisplayName("Use ``$min`` to Compare Numbers") public void testExample1() { testUpdate((query) -> query.filter(eq("_id", 1)), min("lowScore", 150)); } @@ -22,7 +24,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/min/example2 */ - @Test(testName = "Use ``$min`` to Compare Dates") + @Test + @DisplayName("Use ``$min`` to Compare Dates") public void testExample2() { testUpdate((query) -> query.filter(eq("_id", 1)), min("dateEntered", LocalDate.of(2013, 9, 25))); } diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestMul.java b/core/src/test/java/dev/morphia/test/query/updates/TestMul.java index 80cc6234893..316aa7dd237 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestMul.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestMul.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.mul; @@ -12,7 +13,8 @@ public class TestMul extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/mul/example1 */ - @Test(testName = "Multiply the Value of a Field") + @Test + @DisplayName("Multiply the Value of a Field") public void testExample1() { testUpdate((query) -> query.filter(eq("_id", 1)), mul("price", 1.25), mul("quantity", 2)); } @@ -20,7 +22,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/mul/example2 */ - @Test(testName = "Apply ``$mul`` Operator to a Non-existing Field") + @Test + @DisplayName("Apply ``$mul`` Operator to a Non-existing Field") public void testExample2() { testUpdate((query) -> query.filter(eq("_id", 2)), mul("price", 100.0)); } @@ -28,7 +31,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/updates/mul/example3 */ - @Test(testName = "Multiply Mixed Numeric Types") + @Test + @DisplayName("Multiply Mixed Numeric Types") public void testExample3() { testUpdate((query) -> query.filter(eq("_id", 3)), mul("price", 5)); } diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestPop.java b/core/src/test/java/dev/morphia/test/query/updates/TestPop.java index 11f99746141..5dfa50b4cca 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestPop.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestPop.java @@ -2,7 +2,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.pop; @@ -12,7 +13,8 @@ public class TestPop extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/pop/example1 */ - @Test(testName = "Remove the First Item of an Array") + @Test + @DisplayName("Remove the First Item of an Array") public void testExample1() { testUpdate((query) -> query.filter(eq("_id", 1)), pop("scores").removeFirst()); } @@ -20,7 +22,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/pop/example2 */ - @Test(testName = "Remove the Last Item of an Array") + @Test + @DisplayName("Remove the Last Item of an Array") public void testExample2() { testUpdate((query) -> query.filter(eq("_id", 10)), pop("scores")); } diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestPosition.java b/core/src/test/java/dev/morphia/test/query/updates/TestPosition.java index aad51b6e60a..3a5e43860d6 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestPosition.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestPosition.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.push; @@ -14,7 +15,8 @@ public class TestPosition extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/position/example1 */ - @Test(testName = "Add Elements at the Start of the Array") + @Test + @DisplayName("Add Elements at the Start of the Array") public void testExample1() { testUpdate((query) -> query.filter(eq("_id", 1)), push("scores", List.of(50, 60, 70)).position(0)); } @@ -22,7 +24,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/position/example2 */ - @Test(testName = "Add Elements to the Middle of the Array") + @Test + @DisplayName("Add Elements to the Middle of the Array") public void testExample2() { testUpdate((query) -> query.filter(eq("_id", 2)), push("scores", List.of(20, 30)).position(2)); } @@ -30,7 +33,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/updates/position/example3 */ - @Test(testName = "Use a Negative Array Index (Position) to Add Elements to the Array") + @Test + @DisplayName("Use a Negative Array Index (Position) to Add Elements to the Array") public void testExample3() { testUpdate((query) -> query.filter(eq("_id", 3)), push("scores", List.of(90, 80)).position(-2)); } diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestPositional.java b/core/src/test/java/dev/morphia/test/query/updates/TestPositional.java index 4c550f0579e..88dddd40935 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestPositional.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestPositional.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.elemMatch; import static dev.morphia.query.filters.Filters.eq; @@ -16,7 +17,8 @@ public class TestPositional extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/positional/example1 */ - @Test(testName = "Update Values in an Array") + @Test + @DisplayName("Update Values in an Array") public void testExample1() { testUpdate(new ActionTestOptions().skipDataCheck(true), (query) -> query.filter(eq("_id", 1), eq("grades", 80)), set("grades.$", 82)); @@ -25,7 +27,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/positional/example2 */ - @Test(testName = "Update Documents in an Array") + @Test + @DisplayName("Update Documents in an Array") public void testExample2() { testUpdate((query) -> query.filter(eq("_id", 4), eq("grades.grade", 85)), set("grades.$.std", 6)); } @@ -33,7 +36,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/updates/positional/example3 */ - @Test(testName = "Update Embedded Documents Using Multiple Field Matches") + @Test + @DisplayName("Update Embedded Documents Using Multiple Field Matches") public void testExample3() { testUpdate((query) -> query.filter(eq("_id", 5), elemMatch("grades", lte("grade", 90), gt("mean", 80))), set("grades.$.std", 6)); @@ -42,7 +46,8 @@ public void testExample3() { /** * test data: dev/morphia/test/query/updates/positional/example4 */ - @Test(testName = "Update with Multiple Array Matches") + @Test + @DisplayName("Update with Multiple Array Matches") public void testExample4() { testUpdate((query) -> query.filter(eq("activity_ids", 1), eq("grades", 95), eq("deans_list", 2021)), set("deans_list.$", 2022)); @@ -51,7 +56,8 @@ public void testExample4() { /** * test data: dev/morphia/test/query/updates/positional/example5 */ - @Test(testName = "Update Nested Arrays in Conjunction with ``$[]``") + @Test + @DisplayName("Update Nested Arrays in Conjunction with ``$[]``") public void testExample5() { // docs out of date? } diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestPull.java b/core/src/test/java/dev/morphia/test/query/updates/TestPull.java index 6e0fa0da360..c86100033cc 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestPull.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestPull.java @@ -4,7 +4,9 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.elemMatch; import static dev.morphia.query.filters.Filters.eq; @@ -17,7 +19,8 @@ public class TestPull extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/pull/example1 */ - @Test(testName = "Remove All Items That Equal a Specified Value") + @Test + @DisplayName("Remove All Items That Equal a Specified Value") public void testExample1() { testUpdate((query) -> query.filter(), pull("fruits", in(List.of("apples", "oranges"))), pull("vegetables", "carrots")); @@ -26,7 +29,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/pull/example2 */ - @Test(testName = "Remove All Items That Match a Specified ``$pull`` Condition") + @Test + @DisplayName("Remove All Items That Match a Specified ``$pull`` Condition") public void testExample2() { testUpdate((query) -> query.filter(eq("_id", 1)), pull("votes", gte(6))); } @@ -34,7 +38,9 @@ public void testExample2() { /** * test data: dev/morphia/test/query/updates/pull/example3 */ - @Test(testName = "Remove All Items That Match a Specified ``$pull`` Condition With :method:`~db.collection.bulkWrite()`", enabled = false, description = "test is irrelevant to Morphia") + @Disabled("test is irrelevant to Morphia") + @Test + @DisplayName("Remove All Items That Match a Specified ``$pull`` Condition With :method:`~db.collection.bulkWrite()`") public void testExample3() { } @@ -42,7 +48,8 @@ public void testExample3() { /** * test data: dev/morphia/test/query/updates/pull/example4 */ - @Test(testName = "Remove Items from an Array of Documents") + @Test + @DisplayName("Remove Items from an Array of Documents") public void testExample4() { testUpdate((query) -> query.filter(), pull("results", eq("score", 8), eq("item", "B"))); } @@ -50,7 +57,8 @@ public void testExample4() { /** * test data: dev/morphia/test/query/updates/pull/example5 */ - @Test(testName = "Remove Documents from Nested Arrays") + @Test + @DisplayName("Remove Documents from Nested Arrays") public void testExample5() { testUpdate((query) -> query.filter(), pull("results", elemMatch("answers", eq("q", 2), gte("a", 8)))); } diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestPullAll.java b/core/src/test/java/dev/morphia/test/query/updates/TestPullAll.java index 1723e35fe49..5b7437d34d2 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestPullAll.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestPullAll.java @@ -4,7 +4,8 @@ import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.pullAll; @@ -14,7 +15,8 @@ public class TestPullAll extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/pullAll/example1 */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testUpdate((query) -> query.filter(eq("_id", 1)), pullAll("scores", List.of(0, 5))); } diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestPush.java b/core/src/test/java/dev/morphia/test/query/updates/TestPush.java index fcd677f0c70..f857f3f278a 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestPush.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestPush.java @@ -5,7 +5,8 @@ import dev.morphia.UpdateOptions; import dev.morphia.test.TemplatedTestBase; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.aggregation.expressions.Expressions.document; import static dev.morphia.query.Sort.descending; @@ -17,7 +18,8 @@ public class TestPush extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/push/example1 */ - @Test(testName = "Append a Value to an Array") + @Test + @DisplayName("Append a Value to an Array") public void testExample1() { testUpdate((query) -> query.filter(eq("_id", 1)), push("scores", 89)); } @@ -25,7 +27,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/push/example2 */ - @Test(testName = "Append a Value to Arrays in Multiple Documents") + @Test + @DisplayName("Append a Value to Arrays in Multiple Documents") public void testExample2() { UpdateOptions updateOptions = new UpdateOptions().multi(true); testUpdate((query) -> query.filter(), push("scores", 95)); @@ -34,7 +37,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/updates/push/example3 */ - @Test(testName = "Append Multiple Values to an Array") + @Test + @DisplayName("Append Multiple Values to an Array") public void testExample3() { testUpdate((query) -> query.filter(eq("_id", 1)), push("scores", List.of(90, 92, 85))); } @@ -42,7 +46,8 @@ public void testExample3() { /** * test data: dev/morphia/test/query/updates/push/example4 */ - @Test(testName = "Use ``$push`` Operator with Multiple Modifiers") + @Test + @DisplayName("Use ``$push`` Operator with Multiple Modifiers") public void testExample4() { testUpdate((query) -> query.filter(eq("_id", 5)), push("quizzes", List.of(document("wk", 5).field("score", 8), document("wk", 6).field("score", 7), diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestRename.java b/core/src/test/java/dev/morphia/test/query/updates/TestRename.java index b5be4bfadc2..ea1a6155fa3 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestRename.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestRename.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.filters.Filters.ne; @@ -14,7 +15,8 @@ public class TestRename extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/rename/example1 */ - @Test(testName = "Rename a Field") + @Test + @DisplayName("Rename a Field") public void testExample1() { testUpdate(new ActionTestOptions().skipDataCheck(true), (query) -> query.filter(ne("nmae", null)), rename("nmae", "name")); @@ -23,7 +25,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/rename/example2 */ - @Test(testName = "Rename a Field in an Embedded Document") + @Test + @DisplayName("Rename a Field in an Embedded Document") public void testExample2() { testUpdate((query) -> query.filter(eq("_id", 1)), rename("name.first", "name.fname")); } @@ -31,7 +34,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/updates/rename/example3 */ - @Test(testName = "Rename a Field That Does Not Exist") + @Test + @DisplayName("Rename a Field That Does Not Exist") public void testExample3() { testUpdate((query) -> query.filter(eq("_id", 1)), rename("wife", "spouse")); } diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestSet.java b/core/src/test/java/dev/morphia/test/query/updates/TestSet.java index 4da2395b03b..a0ff7d18d71 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestSet.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestSet.java @@ -7,7 +7,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.updates.UpdateOperators.set; @@ -16,7 +17,8 @@ public class TestSet extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/set/example1 */ - @Test(testName = "Set Top-Level Fields") + @Test + @DisplayName("Set Top-Level Fields") public void testExample1() { // skip the action check because the Map order varies testUpdate(new ActionTestOptions().skipActionCheck(true), (query) -> query.filter(Filters.eq("_id", 100)), @@ -27,7 +29,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/set/example2 */ - @Test(testName = "Set Fields in Embedded Documents") + @Test + @DisplayName("Set Fields in Embedded Documents") public void testExample2() { testUpdate((query) -> query.filter(Filters.eq("_id", 100)), set("details.make", "Kustom Kidz")); } @@ -35,7 +38,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/updates/set/example3 */ - @Test(testName = "Set Elements in Arrays") + @Test + @DisplayName("Set Elements in Arrays") public void testExample3() { testUpdate((query) -> query.filter(Filters.eq("_id", 100)), set("tags.1", "rain gear"), set("ratings.0.rating", 2)); diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestSetOnInsert.java b/core/src/test/java/dev/morphia/test/query/updates/TestSetOnInsert.java index cada106405b..b0c96a84307 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestSetOnInsert.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestSetOnInsert.java @@ -7,7 +7,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.updates.UpdateOperators.set; import static dev.morphia.query.updates.UpdateOperators.setOnInsert; @@ -17,7 +18,8 @@ public class TestSetOnInsert extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/setOnInsert/example1 */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { var options = new ActionTestOptions().skipDataCheck(true).updateOptions(new UpdateOptions().upsert(true)); testUpdate(options, (query) -> query.filter(Filters.eq("_id", 1)), set("item", "apple"), diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestSlice.java b/core/src/test/java/dev/morphia/test/query/updates/TestSlice.java index 0b90c671f9b..283328731c3 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestSlice.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestSlice.java @@ -6,7 +6,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.Sort.descending; import static dev.morphia.query.filters.Filters.eq; @@ -17,7 +18,8 @@ public class TestSlice extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/slice/example1 */ - @Test(testName = "Slice from the End of the Array") + @Test + @DisplayName("Slice from the End of the Array") public void testExample1() { testUpdate((query) -> query.filter(eq("_id", 1)), push("scores", List.of(80, 78, 86)).slice(-5)); } @@ -25,7 +27,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/slice/example2 */ - @Test(testName = "Slice from the Front of the Array") + @Test + @DisplayName("Slice from the Front of the Array") public void testExample2() { testUpdate((query) -> query.filter(eq("_id", 2)), push("scores", List.of(100, 20)).slice(3)); } @@ -33,7 +36,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/updates/slice/example3 */ - @Test(testName = "Update Array Using Slice Only") + @Test + @DisplayName("Update Array Using Slice Only") public void testExample3() { testUpdate((query) -> query.filter(eq("_id", 3)), push("scores", List.of()).slice(-3)); } @@ -41,7 +45,8 @@ public void testExample3() { /** * test data: dev/morphia/test/query/updates/slice/example4 */ - @Test(testName = "Use ``$slice`` with Other ``$push`` Modifiers") + @Test + @DisplayName("Use ``$slice`` with Other ``$push`` Modifiers") public void testExample4() { // the Map order throws off structural checks testUpdate(new ActionTestOptions().skipActionCheck(true), (query) -> query.filter(eq("_id", 5)), diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestSort.java b/core/src/test/java/dev/morphia/test/query/updates/TestSort.java index ea2a047f725..85850e6fe86 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestSort.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestSort.java @@ -6,7 +6,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.Sort.ascending; import static dev.morphia.query.Sort.descending; @@ -18,7 +19,8 @@ public class TestSort extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/sort/example1 */ - @Test(testName = "Sort Array of Documents by a Field in the Documents") + @Test + @DisplayName("Sort Array of Documents by a Field in the Documents") public void testExample1() { // the Map order throws off structural checks testUpdate(new ActionTestOptions().skipActionCheck(true), (query) -> query.filter(eq("_id", 1)), @@ -30,7 +32,8 @@ public void testExample1() { /** * test data: dev/morphia/test/query/updates/sort/example2 */ - @Test(testName = "Sort Array Elements That Are Not Documents") + @Test + @DisplayName("Sort Array Elements That Are Not Documents") public void testExample2() { testUpdate((query) -> query.filter(eq("_id", 2)), push("tests", List.of(40, 60)).sort(1)); } @@ -38,7 +41,8 @@ public void testExample2() { /** * test data: dev/morphia/test/query/updates/sort/example3 */ - @Test(testName = "Update Array Using Sort Only") + @Test + @DisplayName("Update Array Using Sort Only") public void testExample3() { testUpdate((query) -> query.filter(eq("_id", 3)), push("tests", List.of()).sort(-1)); } @@ -46,7 +50,8 @@ public void testExample3() { /** * test data: dev/morphia/test/query/updates/sort/example4 */ - @Test(testName = "Use ``$sort`` with Other ``$push`` Modifiers") + @Test + @DisplayName("Use ``$sort`` with Other ``$push`` Modifiers") public void testExample4() { // the Map order throws off structural checks testUpdate(new ActionTestOptions().skipActionCheck(true), (query) -> query.filter(eq("_id", 5)), diff --git a/core/src/test/java/dev/morphia/test/query/updates/TestUnset.java b/core/src/test/java/dev/morphia/test/query/updates/TestUnset.java index b14b16bd9c6..58d9209664b 100644 --- a/core/src/test/java/dev/morphia/test/query/updates/TestUnset.java +++ b/core/src/test/java/dev/morphia/test/query/updates/TestUnset.java @@ -3,7 +3,8 @@ import dev.morphia.test.TemplatedTestBase; import dev.morphia.test.util.ActionTestOptions; -import org.testng.annotations.Test; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static dev.morphia.query.filters.Filters.eq; import static dev.morphia.query.updates.UpdateOperators.unset; @@ -13,7 +14,8 @@ public class TestUnset extends TemplatedTestBase { /** * test data: dev/morphia/test/query/updates/unset/example1 */ - @Test(testName = "main") + @Test + @DisplayName("main") public void testExample1() { testUpdate(new ActionTestOptions().removeIds(true).orderMatters(false), (query) -> query.filter(eq("sku", "unknown")), unset("quantity", "instock")); diff --git a/core/src/test/java/dev/morphia/test/sharding/TestSharding.java b/core/src/test/java/dev/morphia/test/sharding/TestSharding.java index 38db89b653f..1583b8db5f4 100644 --- a/core/src/test/java/dev/morphia/test/sharding/TestSharding.java +++ b/core/src/test/java/dev/morphia/test/sharding/TestSharding.java @@ -10,16 +10,15 @@ import dev.morphia.test.TestBase; import org.bson.types.ObjectId; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import static dev.morphia.mapping.ShardKeyType.HASHED; -import static org.testng.Assert.assertEquals; public class TestSharding extends TestBase { @Test public void testMapping() { - Assert.assertThrows(ConstraintViolationException.class, () -> { + Assertions.assertThrows(ConstraintViolationException.class, () -> { getMapper().map(BadShardKeys.class); }); } @@ -36,11 +35,11 @@ public void testShardCollection() { datastore.insert(new Sharded(new ObjectId(), "Linda Belcher")); Sharded bob = datastore.save(new Sharded(new ObjectId(), "Bob Belcher")); - assertEquals(bob.name, "Bob Belcher"); + Assertions.assertEquals("Bob Belcher", bob.name); bob.nickName = "Bob 'The Burger Guy' Belcher"; Sharded replaced = datastore.replace(bob); - assertEquals(replaced.nickName, "Bob 'The Burger Guy' Belcher"); + Assertions.assertEquals("Bob 'The Burger Guy' Belcher", replaced.nickName); datastore.delete(bob); }); diff --git a/core/src/test/java/dev/morphia/test/util/IndexMatcher.java b/core/src/test/java/dev/morphia/test/util/IndexMatcher.java index c8c26de97ca..bee445fa5e8 100644 --- a/core/src/test/java/dev/morphia/test/util/IndexMatcher.java +++ b/core/src/test/java/dev/morphia/test/util/IndexMatcher.java @@ -6,9 +6,9 @@ import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; +import org.junit.jupiter.api.Assertions; import static java.lang.String.format; -import static org.testng.Assert.fail; /** * Hamcrest matcher that can be used with a List of Documents representing the indexes on a Collection. This list, for example, might be @@ -63,6 +63,6 @@ protected boolean matchesSafely(List indexes) { @Override protected void describeMismatchSafely(List indexes, Description mismatchDescription) { - fail(format("Expected %s to find index with name '%s' in %s", indexShouldBePresent ? "" : "not", indexName, indexes)); + Assertions.fail(format("Expected %s to find index with name '%s' in %s", indexShouldBePresent ? "" : "not", indexName, indexes)); } } diff --git a/core/src/test/resources/junit-platform.properties b/core/src/test/resources/junit-platform.properties new file mode 100644 index 00000000000..2af5bf86482 --- /dev/null +++ b/core/src/test/resources/junit-platform.properties @@ -0,0 +1 @@ +junit.jupiter.testinstance.lifecycle.default=per_class diff --git a/critter/critter-maven/pom.xml b/critter/critter-maven/pom.xml index 8d281f14f76..70cb029f28b 100644 --- a/critter/critter-maven/pom.xml +++ b/critter/critter-maven/pom.xml @@ -129,10 +129,6 @@ - - org.testng - testng - ch.qos.logback logback-classic diff --git a/critter/critter-maven/src/test/kotlin/dev/morphia/critter/maven/CritterProcessorTest.kt b/critter/critter-maven/src/test/kotlin/dev/morphia/critter/maven/CritterProcessorTest.kt index 28484afd94d..2eed172ca54 100644 --- a/critter/critter-maven/src/test/kotlin/dev/morphia/critter/maven/CritterProcessorTest.kt +++ b/critter/critter-maven/src/test/kotlin/dev/morphia/critter/maven/CritterProcessorTest.kt @@ -2,16 +2,16 @@ package dev.morphia.critter.maven import dev.morphia.config.MorphiaConfig import java.io.File -import org.testng.Assert.assertTrue -import org.testng.annotations.BeforeMethod -import org.testng.annotations.Test +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test class CritterProcessorTest { private lateinit var tempDir: File private lateinit var outputDir: File - @BeforeMethod + @BeforeEach fun setUp() { tempDir = kotlin.io.path.createTempDirectory("critter-test").toFile() outputDir = File(tempDir, "generated-classes/critter") diff --git a/critter/critter-maven/src/test/kotlin/dev/morphia/critter/maven/CritterSourceProcessorTest.kt b/critter/critter-maven/src/test/kotlin/dev/morphia/critter/maven/CritterSourceProcessorTest.kt index 3a54b099c07..00bf3277210 100644 --- a/critter/critter-maven/src/test/kotlin/dev/morphia/critter/maven/CritterSourceProcessorTest.kt +++ b/critter/critter-maven/src/test/kotlin/dev/morphia/critter/maven/CritterSourceProcessorTest.kt @@ -2,9 +2,9 @@ package dev.morphia.critter.maven import dev.morphia.config.MorphiaConfig import java.io.File -import org.testng.Assert.assertTrue -import org.testng.annotations.BeforeMethod -import org.testng.annotations.Test +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test class CritterSourceProcessorTest { @@ -12,7 +12,7 @@ class CritterSourceProcessorTest { private lateinit var sourceOutputDir: File private lateinit var resourceOutputDir: File - @BeforeMethod + @BeforeEach fun setUp() { tempDir = kotlin.io.path.createTempDirectory("critter-source-test").toFile() sourceOutputDir = File(tempDir, "generated-sources/critter") diff --git a/docs/modules/ROOT/examples/TestDocsExamples.java b/docs/modules/ROOT/examples/TestDocsExamples.java index 709c65fd79d..26da0d7b146 100644 --- a/docs/modules/ROOT/examples/TestDocsExamples.java +++ b/docs/modules/ROOT/examples/TestDocsExamples.java @@ -5,7 +5,7 @@ import dev.morphia.test.aggregation.model.Author; import dev.morphia.test.aggregation.model.Book; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Test; import static com.mongodb.client.model.MergeOptions.WhenMatched.REPLACE; import static com.mongodb.client.model.MergeOptions.WhenNotMatched.INSERT; diff --git a/examples/pom.xml b/examples/pom.xml index af02bee8540..f368bbfd482 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -45,11 +45,6 @@ org.testcontainers mongodb - - org.testng - testng - test - ch.qos.logback logback-classic diff --git a/examples/src/test/java/dev/morphia/example/QuickTourTest.java b/examples/src/test/java/dev/morphia/example/QuickTourTest.java index 522fd712ff2..515a02b4c47 100644 --- a/examples/src/test/java/dev/morphia/example/QuickTourTest.java +++ b/examples/src/test/java/dev/morphia/example/QuickTourTest.java @@ -9,22 +9,21 @@ import dev.morphia.Morphia; import dev.morphia.query.Query; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.MongoDBContainer; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; import static com.mongodb.MongoClientSettings.builder; import static dev.morphia.query.filters.Filters.gt; import static dev.morphia.query.filters.Filters.lte; import static dev.morphia.query.updates.UpdateOperators.inc; import static org.bson.UuidRepresentation.STANDARD; -import static org.testng.Assert.assertEquals; /** * This class is used in the Quick Tour documentation and is used to demonstrate various Morphia features. */ -@Test public class QuickTourTest { private static MongoDBContainer mongoDBContainer; @@ -32,7 +31,7 @@ public class QuickTourTest { private static MongoClient mongoClient; - @BeforeClass + @BeforeAll public static void start() { mongoDBContainer = new MongoDBContainer("mongo:7"); mongoDBContainer.start(); @@ -43,12 +42,13 @@ public static void start() { .build()); } - @AfterClass - public void stop() { + @AfterAll + public static void stop() { mongoClient.close(); mongoDBContainer.stop(); } + @Test public void demo() { final Datastore datastore = Morphia.createDatastore(mongoClient); datastore.getDatabase().drop(); @@ -65,18 +65,18 @@ public void demo() { Query query = datastore.find(Employee.class); final long employees = query.count(); - assertEquals(employees, 3); + Assertions.assertEquals(3, employees); long underpaid = datastore.find(Employee.class) .filter(lte("salary", 30000)) .count(); - assertEquals(underpaid, 1); + Assertions.assertEquals(1, underpaid); final Query underPaidQuery = datastore.find(Employee.class) .filter(lte("salary", 30000)); final UpdateResult results = underPaidQuery.update(inc("salary", 10000)); - assertEquals(results.getModifiedCount(), 1); + Assertions.assertEquals(1, results.getModifiedCount()); datastore.find(Employee.class) .filter(gt("salary", 100000)) diff --git a/kotlin/pom.xml b/kotlin/pom.xml index 6332084745a..e523bbb77ad 100644 --- a/kotlin/pom.xml +++ b/kotlin/pom.xml @@ -23,10 +23,6 @@ org.jetbrains.kotlin kotlin-reflect - - org.testng - testng - org.testcontainers mongodb @@ -46,6 +42,10 @@ org.semver4j semver4j + + org.skyscreamer + jsonassert + diff --git a/kotlin/src/test/kotlin/dev/morphia/test/kotlin/KotlinTypeDataTest.kt b/kotlin/src/test/kotlin/dev/morphia/test/kotlin/KotlinTypeDataTest.kt index 2f31e016266..377ce0b9f67 100644 --- a/kotlin/src/test/kotlin/dev/morphia/test/kotlin/KotlinTypeDataTest.kt +++ b/kotlin/src/test/kotlin/dev/morphia/test/kotlin/KotlinTypeDataTest.kt @@ -7,7 +7,7 @@ import kotlin.properties.ReadWriteProperty import kotlin.reflect.KClass import kotlin.reflect.full.declaredMemberProperties import kotlin.reflect.jvm.javaField -import org.testng.annotations.Test +import org.junit.jupiter.api.Test class KotlinTypeDataTest : TestBase() { @Test @@ -35,11 +35,11 @@ class KotlinTypeDataTest : TestBase() { val typeData = TypeData.builder(field.javaField?.type).build() // val typeData = TypeData.get(field) - // Assert.assertEquals(typeData.type, fieldType) + // Assertions.assertEquals(fieldType, typeData.type) // val typeParameters = typeData.typeParameters - // Assert.assertEquals(typeParameters.size, parameterTypes.size) + // Assertions.assertEquals(parameterTypes.size, typeParameters.size) // for (i in parameterTypes.indices) { - // Assert.assertEquals(typeParameters[i].type, parameterTypes[i]) + // Assertions.assertEquals(parameterTypes[i], typeParameters[i].type) // } } } diff --git a/kotlin/src/test/kotlin/dev/morphia/test/kotlin/TestKotlinMapping.kt b/kotlin/src/test/kotlin/dev/morphia/test/kotlin/TestKotlinMapping.kt index 9b6d979c043..057c7d8b5c6 100644 --- a/kotlin/src/test/kotlin/dev/morphia/test/kotlin/TestKotlinMapping.kt +++ b/kotlin/src/test/kotlin/dev/morphia/test/kotlin/TestKotlinMapping.kt @@ -6,11 +6,10 @@ import dev.morphia.test.kotlin.models.DelegatedNull import dev.morphia.test.kotlin.models.MyClass import dev.morphia.test.kotlin.models.VersionedDataClass import org.bson.types.ObjectId -import org.testng.Assert.assertEquals -import org.testng.Assert.assertNotNull -import org.testng.annotations.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertNotNull +import org.junit.jupiter.api.Test -@Test open class TestKotlinMapping : TestBase(configure().packages(listOf(DelegatedNull::class.java.packageName))) { @Test @@ -18,7 +17,7 @@ open class TestKotlinMapping : val myClass = ds.save(MyClass(ObjectId(), 42)) val loaded = ds.find(MyClass::class.java).first() - assertEquals(loaded, myClass) + assertEquals(myClass, loaded) } @Test @@ -26,8 +25,8 @@ open class TestKotlinMapping : val versioned = ds.save(VersionedDataClass(null, "temp")) val loaded = ds.find(VersionedDataClass::class.java).first() - assertEquals(loaded, versioned) - assertEquals(loaded?.version, 1L) + assertEquals(versioned, loaded) + assertEquals(1L, loaded?.version) } @Test @@ -38,6 +37,6 @@ open class TestKotlinMapping : val first = ds.find(DelegatedNull::class.java).first() assertNotNull(first) - assertEquals(first?.status, delegated.status) + assertEquals(delegated.status, first?.status) } } diff --git a/pom.xml b/pom.xml index 75e4f2ab105..a64a6c32175 100644 --- a/pom.xml +++ b/pom.xml @@ -69,7 +69,7 @@ 2.0.18 0.25 3.1.0 - 7.12.0 + 5.11.4 1.12 17 @@ -129,9 +129,11 @@ org.apache.maven.plugins maven-surefire-plugin + false 1C true + per_class @@ -170,7 +172,7 @@ org.apache.maven.plugins maven-enforcer-plugin - 3.6.2 + 3.6.3 enforce-java @@ -195,6 +197,14 @@ + + org.junit + junit-bom + ${junit.version} + pom + import + + dev.morphia.morphia morphia-core @@ -222,12 +232,6 @@ ${logback.version} test - - org.testng - testng - ${testng.version} - test - org.apache.maven maven-model @@ -405,6 +409,19 @@ + + + org.junit.jupiter + junit-jupiter + test + + + org.junit.jupiter + junit-jupiter-params + test + + + audits @@ -416,9 +433,9 @@ true - - audits - + + audits + coverage diff --git a/validation/pom.xml b/validation/pom.xml index dc2faa014dc..ee1164b7d17 100644 --- a/validation/pom.xml +++ b/validation/pom.xml @@ -37,11 +37,6 @@ 9.1.0.Final test - - - org.testng - testng - org.testcontainers mongodb @@ -67,5 +62,9 @@ org.semver4j semver4j + + org.skyscreamer + jsonassert + diff --git a/validation/src/test/java/dev/morphia/test/validation/TestMorphiaValidation.java b/validation/src/test/java/dev/morphia/test/validation/TestMorphiaValidation.java index 50e8938577c..7d962a5bc9b 100644 --- a/validation/src/test/java/dev/morphia/test/validation/TestMorphiaValidation.java +++ b/validation/src/test/java/dev/morphia/test/validation/TestMorphiaValidation.java @@ -5,19 +5,19 @@ import dev.morphia.validation.ValidationExtension; import org.bson.Document; -import org.testng.Assert; -import org.testng.annotations.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import jakarta.validation.ValidationException; -import static org.testng.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; -@Test public class TestMorphiaValidation extends TestBase { /** * Test method for {@link ValidationExtension#prePersist(Object, Document, Mapper)}. */ + @Test public void testValidation() { final Data data = new Data(); data.email = "not an email"; @@ -26,7 +26,7 @@ public void testValidation() { try { getDs().save(data); - Assert.fail("Should have failed validation"); + Assertions.fail("Should have failed validation"); } catch (ValidationException exception) { String message = exception.getMessage(); assertTrue(message.contains("Data.email:must be a well-formed email address ('not an email')"), message);