You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by bo...@apache.org on 2026/03/25 00:58:58 UTC
(grails-core) branch 8.0.x-hibernate7 updated (b940162e0d -> bacd5fa273)
This is an automated email from the ASF dual-hosted git repository.
borinquenkid pushed a change to branch 8.0.x-hibernate7
in repository https://gitbox.apache.org/repos/asf/grails-core.git
from b940162e0d hibernate 7: * remove invalid test
new 3d0c862330 hibernate 7: * RAT fix
new c7ab80c237 mongo: split H7 specs from the rest
new bacd5fa273 mongo: fix MongoContainers for latest version of Docker
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
BRANCHES.md | 18 +
gradle/rat-root-config.gradle | 4 +
.../hibernate/query/HibernatePagedResultList.java | 14 +-
grails-data-mongodb/core/build.gradle | 5 +
.../datastore/mapping/mongo/query/MongoQuery.java | 59 ++--
.../tests/DirtyCheckEmbeddedCollectionSpec.groovy | 5 +-
.../groovy/grails/gorm/tests/FindNativeSpec.groovy | 5 +-
.../listener/PersistenceEventListenerSpec.groovy | 5 +-
.../grails/mongodb/cascade/MongoCascadeSpec.groovy | 5 +-
.../mongo/core/GrailsDataMongoTckManager.groovy | 134 +++----
.../data/mongo/core/MongoDatastoreSpec.groovy | 38 ++
.../gorm/mongo/AggregateMethodSpec.groovy | 5 +-
.../gorm/mongo/AssignedIdentifierSpec.groovy | 5 +-
.../gorm/mongo/AutowireServicesSpec.groovy | 5 +-
.../datastore/gorm/mongo/BasicArraySpec.groovy | 5 +-
.../gorm/mongo/BasicCollectionTypeSpec.groovy | 5 +-
.../gorm/mongo/BasicCollectionsSpec.groovy | 5 +-
.../gorm/mongo/BatchUpdateDeleteSpec.groovy | 5 +-
.../gorm/mongo/BeforeInsertUpdateSpec.groovy | 5 +-
.../BeforeUpdatePropertyPersistenceSpec.groovy | 8 +-
.../datastore/gorm/mongo/BigDecimalSpec.groovy | 5 +-
.../mongo/BrokenManyToManyAssociationSpec.groovy | 5 +-
.../gorm/mongo/CascadeDeleteOneToOneSpec.groovy | 5 +-
.../datastore/gorm/mongo/CascadeDeleteSpec.groovy | 5 +-
.../CircularBidirectionalOneToManySpec.groovy | 5 +-
.../gorm/mongo/CircularEmbeddedListSpec.groovy | 5 +-
.../gorm/mongo/CircularOneToManySpec.groovy | 5 +-
.../gorm/mongo/ClearCollectionSpec.groovy | 5 +-
.../CustomCollectionAndAttributeMappingSpec.groovy | 5 +-
.../datastore/gorm/mongo/CustomIdProxySpec.groovy | 5 +-
.../gorm/mongo/CustomMongoEventListenerSpec.groovy | 5 +-
.../gorm/mongo/CustomTypeMarshallingSpec.groovy | 5 +-
.../gorm/mongo/DBObjectConversionSpec.groovy | 5 +-
.../gorm/mongo/DbRefWithEmbeddedSpec.groovy | 5 +-
.../gorm/mongo/DefaultSortOrderSpec.groovy | 5 +-
.../gorm/mongo/DirtyCheckUpdateSpec.groovy | 5 +-
.../datastore/gorm/mongo/DisableVersionSpec.groovy | 5 +-
.../gorm/mongo/DisjunctionQuerySpec.groovy | 7 +-
.../gorm/mongo/DistinctPropertySpec.groovy | 5 +-
.../gorm/mongo/DocumentMappingSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedAssociationSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedBiDirectionalSpec.groovy | 5 +-
.../EmbeddedCollectionAndInheritanceSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedCollectionWithIdSpec.groovy | 5 +-
.../EmbeddedCollectionWithOneToOneSpec.groovy | 5 +-
.../EmbeddedHasManyWithBeforeUpdateSpec.groovy | 7 +-
.../mongo/EmbeddedListWithCustomTypeSpec.groovy | 5 +-
.../datastore/gorm/mongo/EmbeddedMapSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedSetAssignedIdSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedSimpleObjectSpec.groovy | 5 +-
...edStringListInsideEmbeddedCollectionSpec.groovy | 5 +-
.../datastore/gorm/mongo/EmbeddedUnsetSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedWhereClauseSpec.groovy | 5 +-
.../EmbeddedWithCustomFieldMappingSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedWithIdSpecifiedSpec.groovy | 7 +-
.../EmbeddedWithNonEmbeddedAssociationsSpec.groovy | 5 +-
.../EmbeddedWithNonEmbeddedCollectionsSpec.groovy | 5 +-
.../EmbeddedWithinEmbeddedAssociationSpec.groovy | 5 +-
.../datastore/gorm/mongo/EnumCollectionSpec.groovy | 5 +-
.../datastore/gorm/mongo/EnumTypeSpec.groovy | 5 +-
.../mongo/EventsWithAbstractInheritanceSpec.groovy | 5 +-
.../gorm/mongo/FindOrCreateWhereSpec.groovy | 5 +-
.../gorm/mongo/GeoJSONTypePersistenceSpec.groovy | 5 +-
.../gorm/mongo/GeospacialQuerySpec.groovy | 5 +-
.../grails/datastore/gorm/mongo/GetAllSpec.groovy | 7 +-
.../gorm/mongo/GetAllWithStringIdSpec.groovy | 5 +-
.../GreaterThanAndLessThanCriteriaSpec.groovy | 5 +-
.../grails/datastore/gorm/mongo/HasOneSpec.groovy | 5 +-
.../gorm/mongo/HintQueryArgumentSpec.groovy | 7 +-
.../datastore/gorm/mongo/InListQuerySpec.groovy | 7 +-
.../mongo/IndexAttributesAndCompoundKeySpec.groovy | 5 +-
.../gorm/mongo/IndexWithInheritanceSpec.groovy | 5 +-
.../gorm/mongo/InheritanceQueryingSpec.groovy | 5 +-
...nheritanceWithSingleEndedAssociationSpec.groovy | 5 +-
.../datastore/gorm/mongo/InnerEnumSpec.groovy | 5 +-
.../grails/datastore/gorm/mongo/IsNullSpec.groovy | 5 +-
.../gorm/mongo/JakartaValidationSpec.groovy | 5 +-
.../datastore/gorm/mongo/LastUpdatedSpec.groovy | 5 +-
.../datastore/gorm/mongo/LikeQuerySpec.groovy | 7 +-
.../gorm/mongo/ListOneToManyOrderingSpec.groovy | 5 +-
.../datastore/gorm/mongo/MapOfDomainsSpec.groovy | 5 +-
.../datastore/gorm/mongo/MarkDirtyFalseSpec.groovy | 5 +-
.../MongoDynamicPropertyOnEmbeddedSpec.groovy | 5 +-
.../gorm/mongo/MongoEntityConfigSpec.groovy | 5 +-
.../gorm/mongo/MongoGormEnhancerSpec.groovy | 5 +-
.../gorm/mongo/MongoResultsListIndexSpec.groovy | 7 +-
.../datastore/gorm/mongo/MongoTypesSpec.groovy | 5 +-
.../datastore/gorm/mongo/NegateInListSpec.groovy | 7 +-
.../datastore/gorm/mongo/NegationEnumSpec.groovy | 5 +-
.../gorm/mongo/NullifyPropertySpec.groovy | 7 +-
.../gorm/mongo/NullsAreNotStoredSpec.groovy | 5 +-
.../gorm/mongo/ObjectIdPersistenceSpec.groovy | 5 +-
.../gorm/mongo/ObjectIdPropertySpec.groovy | 5 +-
.../gorm/mongo/OneToManyWithInheritanceSpec.groovy | 5 +-
.../gorm/mongo/OneToOneIntegritySpec.groovy | 7 +-
.../gorm/mongo/OneToOneNoReferenceSpec.groovy | 5 +-
.../OptimisticLockingWithExceptionSpec.groovy | 5 +-
.../gorm/mongo/OrderWithPaginationSpec.groovy | 7 +-
.../datastore/gorm/mongo/ProjectionsSpec.groovy | 5 +-
.../QueriesWithIdenticallyNamedPartsSpec.groovy | 5 +-
.../gorm/mongo/ReadConcernArgumentSpec.groovy | 7 +-
.../gorm/mongo/ReadManyObjectsSpec.groovy | 5 +-
.../ResultsWithGroovyCollectionMethodsSpec.groovy | 7 +-
.../datastore/gorm/mongo/SchemalessSpec.groovy | 7 +-
.../datastore/gorm/mongo/SessionCachingSpec.groovy | 7 +-
.../datastore/gorm/mongo/SetRetrievalSpec.groovy | 5 +-
.../datastore/gorm/mongo/SimpleHasManySpec.groovy | 5 +-
.../datastore/gorm/mongo/StatelessSpec.groovy | 5 +-
.../gorm/mongo/SwitchDatabaseAtRuntimeSpec.groovy | 5 +-
.../datastore/gorm/mongo/TestSearchSpec.groovy | 5 +-
.../gorm/mongo/TransientPropertySpec.groovy | 5 +-
.../gorm/mongo/WhereQueryInCriteriaSpec.groovy | 5 +-
.../datastore/gorm/mongo/WriteConcernSpec.groovy | 5 +-
.../gorm/mongo/bugs/GPMongoDB295Spec.groovy | 5 +-
.../src/main/groovy/grails/gorm/PagedList.java | 159 +++++++++
.../main/groovy/grails/gorm/PagedResultList.java | 56 +--
.../data/testing/tck/tests/FindByMethodSpec.groovy | 22 +-
.../testing/tck/tests/OptimisticLockingSpec.groovy | 12 +-
.../data/testing/tck/tests/PagedResultSpec.groovy | 77 ++--
...Spec.groovy => PagedResultSpecHibernate.groovy} | 5 +-
.../data/testing/tck/tests/SizeQuerySpec.groovy | 388 ++++++++++++++-------
...rySpec.groovy => SizeQuerySpecHibernate.groovy} | 5 +-
...nSpec.groovy => ValidationHibernateSpec.groovy} | 4 +-
.../data/testing/tck/tests/ValidationSpec.groovy | 184 +---------
.../datastore/mapping/model/MappingFactory.java | 2 +-
125 files changed, 1033 insertions(+), 723 deletions(-)
create mode 100644 grails-data-mongodb/core/src/test/groovy/org/apache/grails/data/mongo/core/MongoDatastoreSpec.groovy
create mode 100644 grails-datamapping-core/src/main/groovy/grails/gorm/PagedList.java
copy grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/{PagedResultSpec.groovy => PagedResultSpecHibernate.groovy} (97%)
copy grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/{SizeQuerySpec.groovy => SizeQuerySpecHibernate.groovy} (97%)
copy grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/{ValidationSpec.groovy => ValidationHibernateSpec.groovy} (98%)
(grails-core) 02/03: mongo: split H7 specs from the rest
Posted by bo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
borinquenkid pushed a commit to branch 8.0.x-hibernate7
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit c7ab80c237c03423587b4ef684fea5b8a0620c07
Author: Walter Duque de Estrada <wb...@mac.com>
AuthorDate: Tue Mar 24 19:52:31 2026 -0500
mongo: split H7 specs from the rest
---
.../hibernate/query/HibernatePagedResultList.java | 14 +-
.../datastore/mapping/mongo/query/MongoQuery.java | 59 ++--
.../src/main/groovy/grails/gorm/PagedList.java | 159 +++++++++
.../main/groovy/grails/gorm/PagedResultList.java | 56 +--
.../data/testing/tck/tests/FindByMethodSpec.groovy | 4 +-
.../testing/tck/tests/OptimisticLockingSpec.groovy | 12 +-
.../data/testing/tck/tests/PagedResultSpec.groovy | 77 ++--
...Spec.groovy => PagedResultSpecHibernate.groovy} | 5 +-
.../data/testing/tck/tests/SizeQuerySpec.groovy | 388 ++++++++++++++-------
...rySpec.groovy => SizeQuerySpecHibernate.groovy} | 5 +-
...nSpec.groovy => ValidationHibernateSpec.groovy} | 4 +-
.../data/testing/tck/tests/ValidationSpec.groovy | 184 +---------
.../datastore/mapping/model/MappingFactory.java | 2 +-
13 files changed, 543 insertions(+), 426 deletions(-)
diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernatePagedResultList.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernatePagedResultList.java
index 60b2234e0f..73686c0de9 100644
--- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernatePagedResultList.java
+++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernatePagedResultList.java
@@ -21,7 +21,9 @@ package org.grails.orm.hibernate.query;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serial;
+import java.util.List;
+import grails.gorm.PagedList;
import org.hibernate.query.Query;
import org.grails.datastore.mapping.model.PersistentEntity;
@@ -32,7 +34,7 @@ import org.grails.orm.hibernate.GrailsHibernateTemplate;
*
* @param <E> The element type
*/
-public class HibernatePagedResultList<E> extends grails.gorm.PagedResultList<E> {
+public class HibernatePagedResultList<E> implements PagedList<E> {
@Serial
private static final long serialVersionUID = 1L;
@@ -42,10 +44,11 @@ public class HibernatePagedResultList<E> extends grails.gorm.PagedResultList<E>
private final transient PersistentEntity entity;
private final Integer max;
private int offset;
+ protected List<E> resultList;
+ protected int totalCount = Integer.MIN_VALUE;
@SuppressWarnings({"unchecked", "PMD.NullAssignment"})
public HibernatePagedResultList(org.grails.datastore.mapping.query.Query query) {
- super(null);
this.entity = query.getEntity();
this.hibernateTemplate = query instanceof HibernateQuery hibernateQuery ?
hibernateQuery.getHibernateTemplate() :
@@ -63,7 +66,6 @@ public class HibernatePagedResultList<E> extends grails.gorm.PagedResultList<E>
@SuppressWarnings({"unchecked", "PMD.NullAssignment"})
public HibernatePagedResultList(
GrailsHibernateTemplate template, PersistentEntity entity, HibernateHqlQuery hibernateHqlQuery) {
- super(null);
this.hibernateTemplate = template;
this.entity = entity;
this.max = hibernateHqlQuery.getMax();
@@ -74,6 +76,10 @@ public class HibernatePagedResultList<E> extends grails.gorm.PagedResultList<E>
}
@Override
+ public List<E> getResultList() {
+ return resultList;
+ }
+
protected void initialize() {
// no-op, already initialized
}
@@ -86,12 +92,10 @@ public class HibernatePagedResultList<E> extends grails.gorm.PagedResultList<E>
return totalCount;
}
- @Override
public Integer getMax() {
return max;
}
- @Override
public int getOffset() {
return offset;
}
diff --git a/grails-data-mongodb/core/src/main/groovy/org/grails/datastore/mapping/mongo/query/MongoQuery.java b/grails-data-mongodb/core/src/main/groovy/org/grails/datastore/mapping/mongo/query/MongoQuery.java
index a7f0ec6c4d..c2608ce753 100644
--- a/grails-data-mongodb/core/src/main/groovy/org/grails/datastore/mapping/mongo/query/MongoQuery.java
+++ b/grails-data-mongodb/core/src/main/groovy/org/grails/datastore/mapping/mongo/query/MongoQuery.java
@@ -436,7 +436,8 @@ public class MongoQuery extends BsonQuery implements QueryArgumentsAware {
com.mongodb.client.MongoCollection<Document> collection = mongoSession.getCollection(entity);
final List<Projection> projectionList = projections().getProjectionList();
- if (uniqueResult && projectionList.isEmpty()) {
+ boolean hasOnlyDistinct = projectionList.size() == 1 && (projectionList.get(0) instanceof DistinctProjection);
+ if (uniqueResult && (projectionList.isEmpty() || hasOnlyDistinct)) {
if (isCodecPersister) {
collection = (com.mongodb.client.MongoCollection<Document>) (com.mongodb.client.MongoCollection) collection
.withDocumentClass(entity.getJavaClass());
@@ -473,7 +474,7 @@ public class MongoQuery extends BsonQuery implements QueryArgumentsAware {
MongoCursor<Document> cursor;
Document query = createQueryObject(entity);
- if (projectionList.isEmpty()) {
+ if (projectionList.isEmpty() || hasOnlyDistinct) {
if (isCodecPersister) {
collection = (com.mongodb.client.MongoCollection<Document>) (com.mongodb.client.MongoCollection) collection
.withDocumentClass(entity.getJavaClass())
@@ -1352,8 +1353,8 @@ public class MongoQuery extends BsonQuery implements QueryArgumentsAware {
private boolean isCodecPersister;
@SuppressWarnings("unchecked")
- public MongoResultList(MongoCursor cursor, int offset, EntityPersister mongoEntityPersister) {
- super(offset, cursor);
+ public MongoResultList(MongoCursor cursor, Integer offset, EntityPersister mongoEntityPersister) {
+ super(offset == null ? 0 : offset, cursor);
this.cursor = cursor;
this.mongoEntityPersister = mongoEntityPersister;
this.isCodecPersister = mongoEntityPersister instanceof MongoCodecEntityPersister;
@@ -1462,26 +1463,6 @@ public class MongoQuery extends BsonQuery implements QueryArgumentsAware {
aggregationPipeline.add(new Document(MATCH_OPERATOR, query));
}
- List<Order> orderBy = mongoQuery.getOrderBy();
- if (!orderBy.isEmpty()) {
- Document sortBy = new Document();
- Document sort = new Document(SORT_OPERATOR, sortBy);
- for (Order order : orderBy) {
- sortBy.put(order.getProperty(), order.getDirection() == Order.Direction.ASC ? 1 : -1);
- }
-
- aggregationPipeline.add(sort);
- }
-
- int max = mongoQuery.max != null ? mongoQuery.max : -1;
- if (max > 0) {
- aggregationPipeline.add(new Document("$limit", max));
- }
- int offset = mongoQuery.offset != null ? mongoQuery.offset : 0;
- if (offset > 0) {
- aggregationPipeline.add(new Document("$skip", offset));
- }
-
projectedKeys = new ArrayList<>();
singleResult = true;
@@ -1539,6 +1520,36 @@ public class MongoQuery extends BsonQuery implements QueryArgumentsAware {
if (additionalGroupBy != null) {
aggregationPipeline.add(additionalGroupBy);
}
+
+ List<Order> orderBy = mongoQuery.getOrderBy();
+ if (!orderBy.isEmpty()) {
+ Document sortBy = new Document();
+ for (Order order : orderBy) {
+ String prop = order.getProperty();
+ String sortKey = prop;
+ for (ProjectedProperty pp : projectedKeys) {
+ if (pp.property != null && pp.property.getName().equals(prop)) {
+ sortKey = pp.projectionKey;
+ if (sortKey.startsWith("id.")) {
+ sortKey = MongoEntityPersister.MONGO_ID_FIELD + "." + sortKey.substring(3);
+ }
+ break;
+ }
+ }
+ sortBy.put(sortKey, order.getDirection() == Order.Direction.ASC ? 1 : -1);
+ }
+ aggregationPipeline.add(new Document(SORT_OPERATOR, sortBy));
+ }
+
+ int max = mongoQuery.max != null ? mongoQuery.max : -1;
+ if (max > 0) {
+ aggregationPipeline.add(new Document("$limit", max));
+ }
+ int offset = mongoQuery.offset != null ? mongoQuery.offset : 0;
+ if (offset > 0) {
+ aggregationPipeline.add(new Document("$skip", offset));
+ }
+
return this;
}
}
diff --git a/grails-datamapping-core/src/main/groovy/grails/gorm/PagedList.java b/grails-datamapping-core/src/main/groovy/grails/gorm/PagedList.java
new file mode 100644
index 0000000000..f6ad7a331c
--- /dev/null
+++ b/grails-datamapping-core/src/main/groovy/grails/gorm/PagedList.java
@@ -0,0 +1,159 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package grails.gorm;
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+
+/**
+ * An interface for result lists that are paged and have a totalCount
+ *
+ * @param <E> The element type
+ * @since 1.0
+ */
+public interface PagedList<E> extends List<E>, Serializable {
+
+ /**
+ * @return The total number of records for this query
+ */
+ int getTotalCount();
+
+ /**
+ * @return The underlying result list
+ */
+ List<E> getResultList();
+
+ @Override
+ default int size() {
+ return getResultList().size();
+ }
+
+ @Override
+ default boolean isEmpty() {
+ return getResultList().isEmpty();
+ }
+
+ @Override
+ default boolean contains(Object o) {
+ return getResultList().contains(o);
+ }
+
+ @Override
+ default Iterator<E> iterator() {
+ return getResultList().iterator();
+ }
+
+ @Override
+ default Object[] toArray() {
+ return getResultList().toArray();
+ }
+
+ @Override
+ default <T> T[] toArray(T[] a) {
+ return getResultList().toArray(a);
+ }
+
+ @Override
+ default boolean add(E e) {
+ return getResultList().add(e);
+ }
+
+ @Override
+ default boolean remove(Object o) {
+ return getResultList().remove(o);
+ }
+
+ @Override
+ default boolean containsAll(Collection<?> c) {
+ return getResultList().containsAll(c);
+ }
+
+ @Override
+ default boolean addAll(Collection<? extends E> c) {
+ return getResultList().addAll(c);
+ }
+
+ @Override
+ default boolean addAll(int index, Collection<? extends E> c) {
+ return getResultList().addAll(index, c);
+ }
+
+ @Override
+ default boolean removeAll(Collection<?> c) {
+ return getResultList().removeAll(c);
+ }
+
+ @Override
+ default boolean retainAll(Collection<?> c) {
+ return getResultList().retainAll(c);
+ }
+
+ @Override
+ default void clear() {
+ getResultList().clear();
+ }
+
+ @Override
+ default E get(int index) {
+ return getResultList().get(index);
+ }
+
+ @Override
+ default E set(int index, E element) {
+ return getResultList().set(index, element);
+ }
+
+ @Override
+ default void add(int index, E element) {
+ getResultList().add(index, element);
+ }
+
+ @Override
+ default E remove(int index) {
+ return getResultList().remove(index);
+ }
+
+ @Override
+ default int indexOf(Object o) {
+ return getResultList().indexOf(o);
+ }
+
+ @Override
+ default int lastIndexOf(Object o) {
+ return getResultList().lastIndexOf(o);
+ }
+
+ @Override
+ default ListIterator<E> listIterator() {
+ return getResultList().listIterator();
+ }
+
+ @Override
+ default ListIterator<E> listIterator(int index) {
+ return getResultList().listIterator(index);
+ }
+
+ @Override
+ default List<E> subList(int fromIndex, int toIndex) {
+ return getResultList().subList(fromIndex, toIndex);
+ }
+}
diff --git a/grails-datamapping-core/src/main/groovy/grails/gorm/PagedResultList.java b/grails-datamapping-core/src/main/groovy/grails/gorm/PagedResultList.java
index fc53914df0..90a92982cc 100644
--- a/grails-datamapping-core/src/main/groovy/grails/gorm/PagedResultList.java
+++ b/grails-datamapping-core/src/main/groovy/grails/gorm/PagedResultList.java
@@ -36,8 +36,8 @@ import org.grails.datastore.mapping.query.Query;
* @author Graeme Rocher
* @since 1.0
*/
-@SuppressWarnings({"unchecked"})
-public class PagedResultList<E> implements Serializable, List<E> {
+ @SuppressWarnings({"rawtypes", "unchecked"})
+public class PagedResultList<E> implements PagedList<E> {
private static final long serialVersionUID = -5820655628956173929L;
@@ -50,6 +50,11 @@ public class PagedResultList<E> implements Serializable, List<E> {
this.resultList = query == null ? Collections.<E>emptyList() : query.list();
}
+ @Override
+ public List<E> getResultList() {
+ return resultList;
+ }
+
/**
* @return The total number of records for this query
*/
@@ -58,65 +63,38 @@ public class PagedResultList<E> implements Serializable, List<E> {
return totalCount;
}
- /**
- * @return The maximum number of results to return or null if not specified
- */
- public Integer getMax() {
- return query != null ? query.getMax() : null;
- }
-
- /**
- * @return The offset of the first result or 0 if not specified
- */
- public int getOffset() {
- if (query != null) {
- Integer offset = query.getOffset();
- return offset != null ? offset : 0;
- }
- return 0;
- }
-
- @Override
public E get(int i) {
return resultList.get(i);
}
- @Override
public E set(int i, E o) {
return resultList.set(i, o);
}
- @Override
public E remove(int i) {
return resultList.remove(i);
}
- @Override
public int indexOf(Object o) {
return resultList.indexOf(o);
}
- @Override
public int lastIndexOf(Object o) {
return resultList.lastIndexOf(o);
}
- @Override
public ListIterator<E> listIterator() {
return resultList.listIterator();
}
- @Override
public ListIterator<E> listIterator(int index) {
return resultList.listIterator(index);
}
- @Override
public List<E> subList(int fromIndex, int toIndex) {
return resultList.subList(fromIndex, toIndex);
}
- @Override
public void add(int i, E o) {
resultList.add(i, o);
}
@@ -127,10 +105,6 @@ public class PagedResultList<E> implements Serializable, List<E> {
totalCount = 0;
} else {
Query newQuery = (Query) query.clone();
- newQuery.offset(0);
- //TODO HACK!!
- newQuery.order(null);
- newQuery.max(1);
newQuery.projections().count();
Number result = (Number) newQuery.singleResult();
totalCount = result == null ? 0 : result.intValue();
@@ -138,82 +112,66 @@ public class PagedResultList<E> implements Serializable, List<E> {
}
}
- @Override
public int size() {
return resultList.size();
}
- @Override
public boolean isEmpty() {
return size() == 0;
}
- @Override
public boolean contains(Object o) {
return resultList.contains(o);
}
- @Override
public Iterator<E> iterator() {
return resultList.iterator();
}
- @Override
public Object[] toArray() {
return resultList.toArray();
}
- @Override
public <T> T[] toArray(T[] a) {
return resultList.toArray(a);
}
- @Override
public boolean add(E e) {
return resultList.add(e);
}
- @Override
public boolean remove(Object o) {
return resultList.remove(o);
}
- @Override
public boolean containsAll(Collection<?> c) {
return resultList.containsAll(c);
}
- @Override
public boolean addAll(Collection<? extends E> c) {
return resultList.addAll(c);
}
- @Override
public boolean addAll(int index, Collection<? extends E> c) {
return resultList.addAll(index, c);
}
- @Override
public boolean removeAll(Collection<?> c) {
return resultList.removeAll(c);
}
- @Override
public boolean retainAll(Collection<?> c) {
return resultList.retainAll(c);
}
- @Override
public void clear() {
resultList.clear();
}
- @Override
public boolean equals(Object o) {
return resultList.equals(o);
}
- @Override
public int hashCode() {
return resultList.hashCode();
}
diff --git a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/FindByMethodSpec.groovy b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/FindByMethodSpec.groovy
index 1a0359f56a..62ee16231b 100644
--- a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/FindByMethodSpec.groovy
+++ b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/FindByMethodSpec.groovy
@@ -63,7 +63,7 @@ class FindByMethodSpec extends GrailsDataTckSpec {
// --- Parameterized Logic ---
@Unroll
- @IgnoreIf({ System.getProperty('hibernate7.gorm.suite') == 'true' })
+ @IgnoreIf({ System.getProperty('hibernate7.gorm.suite') == 'true' || System.getProperty('mongodb.gorm.suite') == 'true' })
void "Test Hib5 pattern [#index] #methodName should throw MissingMethodException"() {
when:
action.call()
@@ -95,7 +95,7 @@ class FindByMethodSpec extends GrailsDataTckSpec {
}
@Unroll
- @IgnoreIf({ System.getProperty('hibernate5.gorm.suite') == 'true' })
+ @IgnoreIf({ System.getProperty('hibernate5.gorm.suite') == 'true' || System.getProperty('mongodb.gorm.suite') == 'true' })
void "Test Hib7 pattern [#index] #methodName should throw #exception.simpleName"() {
when:
action.call()
diff --git a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/OptimisticLockingSpec.groovy b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/OptimisticLockingSpec.groovy
index 80362e21b6..ce3ba6eda0 100644
--- a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/OptimisticLockingSpec.groovy
+++ b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/OptimisticLockingSpec.groovy
@@ -28,17 +28,7 @@ import org.grails.datastore.mapping.core.OptimisticLockingException
/**
* @author Burt Beckwith
*/
-@IgnoreIf({
- try {
- // This class is specific to the Spring/Hibernate 5 integration. If it's on the classpath,
- // it means we are running against a Hibernate datastore, which has its own specific
- // optimistic locking tests. This generic TCK test should be skipped.
- Class.forName('org.springframework.orm.hibernate5.HibernateOptimisticLockingFailureException', false, Thread.currentThread().contextClassLoader)
- return true
- } catch (ClassNotFoundException | LinkageError ignored) {
- return false
- }
-})
+@IgnoreIf({System.getProperty('mongodb.gorm.suite') == 'true' || System.getProperty('hibernate7.gorm.suite') == 'true'})
class OptimisticLockingSpec extends GrailsDataTckSpec {
def setupSpec() {
diff --git a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/PagedResultSpec.groovy b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/PagedResultSpec.groovy
index 4d4affefad..16bcc20d3d 100644
--- a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/PagedResultSpec.groovy
+++ b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/PagedResultSpec.groovy
@@ -20,7 +20,9 @@ package org.apache.grails.data.testing.tck.tests
import org.apache.grails.data.testing.tck.domains.Person
import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
+import spock.lang.IgnoreIf
+@IgnoreIf({System.getProperty('hibernate5.gorm.suite') == 'true' || System.getProperty('hibernate7.gorm.suite') == 'true'})
class PagedResultSpec extends GrailsDataTckSpec {
void setupSpec() {
@@ -28,7 +30,7 @@ class PagedResultSpec extends GrailsDataTckSpec {
}
void "Test that a getTotalCount will return 0 on empty result from the list() method"() {
- when: 'A query is executed that returns no results'
+ when: "A query is executed that returns no results"
def results = Person.list(max: 1)
then:
@@ -37,92 +39,89 @@ class PagedResultSpec extends GrailsDataTckSpec {
}
void "Test that a paged result list is returned from the list() method with pagination params"() {
- given: 'Some people'
+ given: "Some people"
createPeople()
- when: 'The list method is used with pagination params'
+ when: "The list method is used with pagination params"
def results = Person.list(offset: 2, max: 2)
- then: 'You get a paged result list back'
- results.getClass().simpleName == 'HibernatePagedResultList' // Grails/Hibernate has a custom class in different package
+ then: "You get a paged result list back"
+ results.getClass().simpleName == 'PagedResultList' // Grails/Hibernate has a custom class in different package
results.size() == 2
- results[0].firstName == 'Bart'
- results[1].firstName == 'Lisa'
+ results[0].firstName == "Bart"
+ results[1].firstName == "Lisa"
results.totalCount == 6
}
void "Test that a paged result list is returned from the list() method with pagination and sorting params"() {
- given: 'Some people'
+ given: "Some people"
createPeople()
- when: 'The list method is used with pagination params'
+ when: "The list method is used with pagination params"
def results = Person.list(offset: 2, max: 2, sort: 'firstName', order: 'DESC')
- then: 'You get a paged result list back'
- results.getClass().simpleName == 'HibernatePagedResultList' // Grails/Hibernate has a custom class in different package
+ then: "You get a paged result list back"
+ results.getClass().simpleName == 'PagedResultList' // Grails/Hibernate has a custom class in different package
results.size() == 2
- results[0].firstName == 'Homer'
- results[1].firstName == 'Fred'
+ results[0].firstName == "Homer"
+ results[1].firstName == "Fred"
results.totalCount == 6
}
void "Test that a getTotalCount will return 0 on empty result from the criteria"() {
- given: 'Some people'
+ given: "Some people"
createPeople()
- when: 'A query is executed that returns no results'
+ when: "A query is executed that returns no results"
def results = Person.createCriteria().list(max: 1) {
eq 'lastName', 'NotFound'
}
then:
results.size() == 0
- // results.totalCount == 0 // Hibernate 7 fallback HQL count returns total count of table
- results.totalCount == 6
+ results.totalCount == 0
}
void "Test that a paged result list is returned from the critera with pagination params"() {
- given: 'Some people'
+ given: "Some people"
createPeople()
- when: 'The list method is used with pagination params'
+ when: "The list method is used with pagination params"
def results = Person.createCriteria().list(offset: 1, max: 2) {
eq 'lastName', 'Simpson'
}
- then: 'You get a paged result list back'
- results.getClass().simpleName == 'HibernatePagedResultList' // Grails/Hibernate has a custom class in different package
+ then: "You get a paged result list back"
+ results.getClass().simpleName == 'PagedResultList' // Grails/Hibernate has a custom class in different package
results.size() == 2
- results[0].firstName == 'Marge'
- results[1].firstName == 'Bart'
- // results.totalCount == 4 // Hibernate 7 fallback HQL count returns total count of table
- results.totalCount == 6
+ results[0].firstName == "Marge"
+ results[1].firstName == "Bart"
+ results.totalCount == 4
}
void "Test that a paged result list is returned from the critera with pagination and sorting params"() {
- given: 'Some people'
+ given: "Some people"
createPeople()
- when: 'The list method is used with pagination params'
+ when: "The list method is used with pagination params"
def results = Person.createCriteria().list(offset: 1, max: 2, sort: 'firstName', order: 'DESC') {
eq 'lastName', 'Simpson'
}
- then: 'You get a paged result list back'
- results.getClass().simpleName == 'HibernatePagedResultList' // Grails/Hibernate has a custom class in different package
+ then: "You get a paged result list back"
+ results.getClass().simpleName == 'PagedResultList' // Grails/Hibernate has a custom class in different package
results.size() == 2
- results[0].firstName == 'Lisa'
- results[1].firstName == 'Homer'
- // results.totalCount == 4 // Hibernate 7 fallback HQL count returns total count of table
- results.totalCount == 6
+ results[0].firstName == "Lisa"
+ results[1].firstName == "Homer"
+ results.totalCount == 4
}
protected void createPeople() {
- new Person(firstName: 'Homer', lastName: 'Simpson', age: 45).save()
- new Person(firstName: 'Marge', lastName: 'Simpson', age: 40).save()
- new Person(firstName: 'Bart', lastName: 'Simpson', age: 9).save()
- new Person(firstName: 'Lisa', lastName: 'Simpson', age: 7).save()
- new Person(firstName: 'Barney', lastName: 'Rubble', age: 35).save()
- new Person(firstName: 'Fred', lastName: 'Flinstone', age: 41).save()
+ new Person(firstName: "Homer", lastName: "Simpson", age: 45).save()
+ new Person(firstName: "Marge", lastName: "Simpson", age: 40).save()
+ new Person(firstName: "Bart", lastName: "Simpson", age: 9).save()
+ new Person(firstName: "Lisa", lastName: "Simpson", age: 7).save()
+ new Person(firstName: "Barney", lastName: "Rubble", age: 35).save()
+ new Person(firstName: "Fred", lastName: "Flinstone", age: 41).save()
}
}
diff --git a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/PagedResultSpec.groovy b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/PagedResultSpecHibernate.groovy
similarity index 97%
copy from grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/PagedResultSpec.groovy
copy to grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/PagedResultSpecHibernate.groovy
index 4d4affefad..caaf4f83bc 100644
--- a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/PagedResultSpec.groovy
+++ b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/PagedResultSpecHibernate.groovy
@@ -18,10 +18,13 @@
*/
package org.apache.grails.data.testing.tck.tests
+import spock.lang.IgnoreIf
+
import org.apache.grails.data.testing.tck.domains.Person
import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class PagedResultSpec extends GrailsDataTckSpec {
+@IgnoreIf({System.getProperty('mongodb.gorm.suite') == 'true'})
+class PagedResultSpecHibernate extends GrailsDataTckSpec {
void setupSpec() {
manager.addAllDomainClasses([Person])
diff --git a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/SizeQuerySpec.groovy b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/SizeQuerySpec.groovy
index 86795adc95..abfda3a07f 100644
--- a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/SizeQuerySpec.groovy
+++ b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/SizeQuerySpec.groovy
@@ -18,173 +18,319 @@
*/
package org.apache.grails.data.testing.tck.tests
+import org.apache.grails.data.testing.tck.domains.SimpleCountry
+import org.apache.grails.data.testing.tck.domains.Person
import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-import org.apache.grails.data.testing.tck.domains.Child_BT_Default_P
-import org.apache.grails.data.testing.tck.domains.Owner_Default_Bi_P
-import spock.lang.Unroll
+import spock.lang.IgnoreIf
/**
* Tests for querying the size of collections etc.
*/
+@IgnoreIf({System.getProperty('hibernate5.gorm.suite') == 'true' || System.getProperty('hibernate7.gorm.suite') == 'true'})
class SizeQuerySpec extends GrailsDataTckSpec {
-
void setupSpec() {
- manager.addAllDomainClasses([Owner_Default_Bi_P, Child_BT_Default_P])
+ manager.addAllDomainClasses([SimpleCountry, Person])
}
- private void setupTestData() {
- // Owner A has 1 child
- new Owner_Default_Bi_P(name: 'Owner A')
- .addToChildren(new Child_BT_Default_P(title: 'Child 1'))
+
+ void "Test sizeLe criterion"() {
+ given: "A country with only 1 resident"
+ Person p = new Person(firstName: "Fred", lastName: "Flinstone")
+ SimpleCountry c = new SimpleCountry(name: "Dinoville")
+ .addToResidents(p)
.save(flush: true)
- // Owner B has 2 children
- new Owner_Default_Bi_P(name: 'Owner B')
- .addToChildren(new Child_BT_Default_P(title: 'Child 5'))
- .addToChildren(new Child_BT_Default_P(title: 'Child 6'))
+ new SimpleCountry(name: "Springfield")
+ .addToResidents(firstName: "Homer", lastName: "Simpson")
+ .addToResidents(firstName: "Bart", lastName: "Simpson")
+ .addToResidents(firstName: "Marge", lastName: "Simpson")
.save(flush: true)
- // Owner C has 3 children
- new Owner_Default_Bi_P(name: 'Owner C')
- .addToChildren(new Child_BT_Default_P(title: 'Child 2'))
- .addToChildren(new Child_BT_Default_P(title: 'Child 3'))
- .addToChildren(new Child_BT_Default_P(title: 'Child 4'))
+ new SimpleCountry(name: "Miami")
+ .addToResidents(firstName: "Dexter", lastName: "Morgan")
+ .addToResidents(firstName: "Debra", lastName: "Morgan")
.save(flush: true)
manager.session.clear()
- }
- @Unroll('Test sizeLe criterion with size #size expects #expectedNames')
- void "Test sizeLe criterion"(int size, List<String> expectedNames) {
- given: 'A set of owners with 1, 2, and 3 children'
- setupTestData()
+ when: "We query for countries with 1 resident"
+ def results = SimpleCountry.withCriteria {
+ sizeLe "residents", 3
+ order "name"
+ }
+
+ then: "We get the correct result back"
+ results != null
+ results.size() == 3
+ results[0].name == 'Dinoville'
+ results[1].name == 'Miami'
+ results[2].name == 'Springfield'
- when: 'We query for owners with at most #size children'
- def results = Owner_Default_Bi_P.withCriteria {
- sizeLe 'children', size
- order 'name'
+ when: "We query for countries with 2 resident"
+ results = SimpleCountry.withCriteria {
+ sizeLe "residents", 2
+ order "name"
}
- then: 'We get the correct owners back'
- results*.name == expectedNames
+ then: "We get the correct result back"
+ results != null
+ results.size() == 2
+ results[0].name == 'Dinoville'
+ results[1].name == 'Miami'
- where:
- size | expectedNames
- 3 | ['Owner A', 'Owner B', 'Owner C']
- 2 | ['Owner A', 'Owner B']
- 1 | ['Owner A']
- 0 | []
+ when: "We query for countries with 2 residents"
+ results = SimpleCountry.withCriteria {
+ sizeLe "residents", 1
+ }
+
+ then: "we get 1 result back"
+ results.size() == 1
}
- @Unroll('Test sizeLt criterion with size #size expects #expectedNames')
- void "Test sizeLt criterion"(int size, List<String> expectedNames) {
- given: 'A set of owners with 1, 2, and 3 children'
- setupTestData()
+ void "Test sizeLt criterion"() {
+ given: "A country with only 1 resident"
+ Person p = new Person(firstName: "Fred", lastName: "Flinstone")
+ SimpleCountry c = new SimpleCountry(name: "Dinoville")
+ .addToResidents(p)
+ .save(flush: true)
+
+ new SimpleCountry(name: "Springfield")
+ .addToResidents(firstName: "Homer", lastName: "Simpson")
+ .addToResidents(firstName: "Bart", lastName: "Simpson")
+ .addToResidents(firstName: "Marge", lastName: "Simpson")
+ .save(flush: true)
+
+ new SimpleCountry(name: "Miami")
+ .addToResidents(firstName: "Dexter", lastName: "Morgan")
+ .addToResidents(firstName: "Debra", lastName: "Morgan")
+ .save(flush: true)
+
+ manager.session.clear()
+
+ when: "We query for countries with 1 resident"
+ def results = SimpleCountry.withCriteria {
+ sizeLt "residents", 3
+ order "name"
+ }
+
+ then: "We get the correct result back"
+ results != null
+ results.size() == 2
+ results[0].name == 'Dinoville'
+ results[1].name == 'Miami'
- when: 'We query for owners with less than #size children'
- def results = Owner_Default_Bi_P.withCriteria {
- sizeLt 'children', size
- order 'name'
+ when: "We query for countries with 2 resident"
+ results = SimpleCountry.withCriteria {
+ sizeLt "residents", 2
}
- then: 'We get the correct owners back'
- results*.name == expectedNames
+ then: "We get the correct result back"
+ results != null
+ results.size() == 1
+ results[0].name == 'Dinoville'
- where:
- size | expectedNames
- 3 | ['Owner A', 'Owner B']
- 2 | ['Owner A']
- 1 | []
+ when: "We query for countries with 2 residents"
+ results = SimpleCountry.withCriteria {
+ sizeLt "residents", 1
+ }
+
+ then: "we get no results back"
+ results.size() == 0
}
- @Unroll('Test sizeGt criterion with size #size expects #expectedNames')
- void "Test sizeGt criterion"(int size, List<String> expectedNames) {
- given: 'A set of owners with 1, 2, and 3 children'
- setupTestData()
+ void "Test sizeGt criterion"() {
+ given: "A country with only 1 resident"
+ Person p = new Person(firstName: "Fred", lastName: "Flinstone")
+ SimpleCountry c = new SimpleCountry(name: "Dinoville")
+ .addToResidents(p)
+ .save(flush: true)
+
+ new SimpleCountry(name: "Springfield")
+ .addToResidents(firstName: "Homer", lastName: "Simpson")
+ .addToResidents(firstName: "Bart", lastName: "Simpson")
+ .addToResidents(firstName: "Marge", lastName: "Simpson")
+ .save(flush: true)
+
+ new SimpleCountry(name: "Miami")
+ .addToResidents(firstName: "Dexter", lastName: "Morgan")
+ .addToResidents(firstName: "Debra", lastName: "Morgan")
+ .save(flush: true)
+
+ manager.session.clear()
- when: 'We query for owners with more than #size children'
- def results = Owner_Default_Bi_P.withCriteria {
- sizeGt 'children', size
- order 'name'
+ when: "We query for countries with 1 resident"
+ def results = SimpleCountry.withCriteria {
+ sizeGt "residents", 1
+ order "name"
}
- then: 'We get the correct owners back'
- results*.name == expectedNames
+ then: "We get the correct result back"
+ results != null
+ results.size() == 2
+ results[0].name == 'Miami'
+ results[1].name == 'Springfield'
- where:
- size | expectedNames
- 0 | ['Owner A', 'Owner B', 'Owner C']
- 1 | ['Owner B', 'Owner C']
- 2 | ['Owner C']
- 3 | []
+ when: "We query for countries with 2 resident"
+ results = SimpleCountry.withCriteria {
+ sizeGt "residents", 2
+ }
+
+ then: "We get the correct result back"
+ results != null
+ results.size() == 1
+ results[0].name == 'Springfield'
+
+ when: "We query for countries with 2 residents"
+ results = SimpleCountry.withCriteria {
+ sizeGt "residents", 5
+ }
+
+ then: "we get no results back"
+ results.size() == 0
}
- @Unroll('Test sizeGe criterion with size #size expects #expectedNames')
- void "Test sizeGe criterion"(int size, List<String> expectedNames) {
- given: 'A set of owners with 1, 2, and 3 children'
- setupTestData()
+ void "Test sizeGe criterion"() {
+ given: "A country with only 1 resident"
+ Person p = new Person(firstName: "Fred", lastName: "Flinstone")
+ SimpleCountry c = new SimpleCountry(name: "Dinoville")
+ .addToResidents(p)
+ .save(flush: true)
+
+ new SimpleCountry(name: "Springfield")
+ .addToResidents(firstName: "Homer", lastName: "Simpson")
+ .addToResidents(firstName: "Bart", lastName: "Simpson")
+ .addToResidents(firstName: "Marge", lastName: "Simpson")
+ .save(flush: true)
- when: 'We query for owners with at least #size children'
- def results = Owner_Default_Bi_P.withCriteria {
- sizeGe 'children', size
- order 'name'
+ new SimpleCountry(name: "Miami")
+ .addToResidents(firstName: "Dexter", lastName: "Morgan")
+ .addToResidents(firstName: "Debra", lastName: "Morgan")
+ .save(flush: true)
+
+ manager.session.clear()
+
+ when: "We query for countries with 1 resident"
+ def results = SimpleCountry.withCriteria {
+ sizeGe "residents", 1
+ order "name"
}
- then: 'We get the correct owners back'
- results*.name == expectedNames
+ then: "We get the correct result back"
+ results != null
+ results.size() == 3
+ results[0].name == 'Dinoville'
+ results[1].name == 'Miami'
+ results[2].name == 'Springfield'
+
+ when: "We query for countries with 2 resident"
+ results = SimpleCountry.withCriteria {
+ sizeGe "residents", 2
+ order "name"
+ }
+
+ then: "We get the correct result back"
+ results != null
+ results.size() == 2
+ results[0].name == 'Miami'
+ results[1].name == 'Springfield'
+
+ when: "We query for countries with 2 residents"
+ results = SimpleCountry.withCriteria {
+ sizeGe "residents", 5
+ }
- where:
- size | expectedNames
- 1 | ['Owner A', 'Owner B', 'Owner C']
- 2 | ['Owner B', 'Owner C']
- 3 | ['Owner C']
- 4 | []
+ then: "we get no results back"
+ results.size() == 0
}
- @Unroll('Test sizeEq criterion with size #size expects #expectedNames')
- void "Test sizeEq criterion"(int size, List<String> expectedNames) {
- given: 'A set of owners with 1, 2, and 3 children'
- setupTestData()
+ void "Test sizeEq criterion"() {
+ given: "A country with only 1 resident"
+ Person p = new Person(firstName: "Fred", lastName: "Flinstone")
+ SimpleCountry c = new SimpleCountry(name: "Dinoville")
+ .addToResidents(p)
+ .save(flush: true)
+
+ new SimpleCountry(name: "Springfield")
+ .addToResidents(firstName: "Homer", lastName: "Simpson")
+ .addToResidents(firstName: "Bart", lastName: "Simpson")
+ .addToResidents(firstName: "Marge", lastName: "Simpson")
+ .save(flush: true)
+
+ manager.session.clear()
+
+ when: "We query for countries with 1 resident"
+ def results = SimpleCountry.withCriteria {
+ sizeEq "residents", 1
+ }
+
+ then: "We get the correct result back"
+ results != null
+ results.size() == 1
+ results[0].name == 'Dinoville'
- when: 'We query for owners with exactly #size children'
- def results = Owner_Default_Bi_P.withCriteria {
- sizeEq 'children', size
- order 'name'
+ when: "We query for countries with 3 resident"
+ results = SimpleCountry.withCriteria {
+ sizeEq "residents", 3
}
- then: 'We get the correct owners back'
- results*.name == expectedNames
+ then: "We get the correct result back"
+ results != null
+ results.size() == 1
+ results[0].name == 'Springfield'
- where:
- size | expectedNames
- 1 | ['Owner A']
- 2 | ['Owner B']
- 3 | ['Owner C']
- 4 | []
+ when: "We query for countries with 2 residents"
+ results = SimpleCountry.withCriteria {
+ sizeEq "residents", 2
+ }
+
+ then: "we get no results back"
+ results.size() == 0
}
- @Unroll('Test sizeNe criterion for #description expects #expectedNames')
- void "Test sizeNe criterion"(String description, Closure queryLogic, List<String> expectedNames) {
- given: 'A set of owners with 1, 2, and 3 children'
- setupTestData()
-
- when: 'We query for owners where the number of children meets a condition'
-
- def results = Owner_Default_Bi_P.withCriteria {
- // Set the delegate of the query closure to the criteria builder and call it
- queryLogic.delegate = delegate
- queryLogic.call()
- order 'name'
- }
-
- then: 'We get the correct owners back'
- results*.name == expectedNames
-
- where:
- description | queryLogic | expectedNames
- 'size != 1' | { sizeNe 'children', 1 } | ['Owner B', 'Owner C']
- 'size != 2' | { sizeNe 'children', 2 } | ['Owner A', 'Owner C']
- 'size != 3' | { sizeNe 'children', 3 } | ['Owner A', 'Owner B']
- 'size != 1 and != 3' | { and { sizeNe 'children', 1; sizeNe 'children', 3 } } | ['Owner B']
+ void "Test sizeNe criterion"() {
+ given: "A country with only 1 resident"
+ Person p = new Person(firstName: "Fred", lastName: "Flinstone")
+ SimpleCountry c = new SimpleCountry(name: "Dinoville")
+ .addToResidents(p)
+ .save(flush: true)
+
+ new SimpleCountry(name: "Springfield")
+ .addToResidents(firstName: "Homer", lastName: "Simpson")
+ .addToResidents(firstName: "Bart", lastName: "Simpson")
+ .addToResidents(firstName: "Marge", lastName: "Simpson")
+ .save(flush: true)
+
+ manager.session.clear()
+
+ when: "We query for countries that don't have 1 resident"
+ def results = SimpleCountry.withCriteria {
+ sizeNe "residents", 1
+ }
+
+ then: "We get the correct result back"
+ results != null
+ results.size() == 1
+ results[0].name == 'Springfield'
+
+ when: "We query for countries who don't have 3 resident"
+ results = SimpleCountry.withCriteria {
+ sizeNe "residents", 3
+ }
+
+ then: "We get the correct result back"
+ results != null
+ results.size() == 1
+ results[0].name == 'Dinoville'
+
+ when: "We query for countries with 2 residents"
+ results = SimpleCountry.withCriteria {
+ and {
+ sizeNe "residents", 1
+ sizeNe "residents", 3
+ }
+ }
+
+ then: "we get no results back"
+ results.size() == 0
}
}
diff --git a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/SizeQuerySpec.groovy b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/SizeQuerySpecHibernate.groovy
similarity index 97%
copy from grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/SizeQuerySpec.groovy
copy to grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/SizeQuerySpecHibernate.groovy
index 86795adc95..2b5c2cbdf1 100644
--- a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/SizeQuerySpec.groovy
+++ b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/SizeQuerySpecHibernate.groovy
@@ -18,6 +18,8 @@
*/
package org.apache.grails.data.testing.tck.tests
+import spock.lang.IgnoreIf
+
import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.apache.grails.data.testing.tck.domains.Child_BT_Default_P
import org.apache.grails.data.testing.tck.domains.Owner_Default_Bi_P
@@ -26,7 +28,8 @@ import spock.lang.Unroll
/**
* Tests for querying the size of collections etc.
*/
-class SizeQuerySpec extends GrailsDataTckSpec {
+@IgnoreIf({System.getProperty('mongodb.gorm.suite') == 'true' })
+class SizeQuerySpecHibernate extends GrailsDataTckSpec {
void setupSpec() {
manager.addAllDomainClasses([Owner_Default_Bi_P, Child_BT_Default_P])
diff --git a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/ValidationSpec.groovy b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/ValidationHibernateSpec.groovy
similarity index 98%
copy from grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/ValidationSpec.groovy
copy to grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/ValidationHibernateSpec.groovy
index d09636e94b..7f0cce7048 100644
--- a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/ValidationSpec.groovy
+++ b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/ValidationHibernateSpec.groovy
@@ -20,6 +20,7 @@ package org.apache.grails.data.testing.tck.tests
import grails.gorm.transactions.Rollback
import org.springframework.transaction.support.TransactionSynchronizationManager
+import spock.lang.IgnoreIf
import spock.lang.Unroll
import org.springframework.validation.Validator
@@ -37,7 +38,8 @@ import org.grails.datastore.mapping.model.PersistentEntity
/**
* Tests validation semantics.
*/
-class ValidationSpec extends GrailsDataTckSpec {
+@IgnoreIf({System.getProperty('mongodb.gorm.suite') == 'true' || System.getProperty('hibernate5.gorm.suite') == 'true'})
+class ValidationHibernateSpec extends GrailsDataTckSpec {
void setupSpec() {
manager.addAllDomainClasses([ClassWithListArgBeforeValidate, ClassWithNoArgBeforeValidate,
diff --git a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/ValidationSpec.groovy b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/ValidationSpec.groovy
index d09636e94b..a437d9dfae 100644
--- a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/ValidationSpec.groovy
+++ b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/ValidationSpec.groovy
@@ -18,8 +18,8 @@
*/
package org.apache.grails.data.testing.tck.tests
-import grails.gorm.transactions.Rollback
-import org.springframework.transaction.support.TransactionSynchronizationManager
+import spock.lang.IgnoreIf
+import spock.lang.PendingFeatureIf
import spock.lang.Unroll
import org.springframework.validation.Validator
@@ -41,164 +41,11 @@ class ValidationSpec extends GrailsDataTckSpec {
void setupSpec() {
manager.addAllDomainClasses([ClassWithListArgBeforeValidate, ClassWithNoArgBeforeValidate,
- ClassWithOverloadedBeforeValidate, TestEntity, Task])
- }
-
- @Rollback
- void "Test validate() method"() {
- // test assumes name cannot be blank
- given:
- def t
-
- when:
- t = new TestEntity(name: '')
- boolean validationResult = t.validate()
- def errors = t.errors
-
- then:
- !validationResult
- t.hasErrors()
- errors != null
- errors.hasErrors()
-
- when:
- t.clearErrors()
-
- then:
- !t.hasErrors()
- }
-
- @Rollback
- void "Test that validate is called on save()"() {
- given:
- def t
-
- when:
- t = new TestEntity(name: '')
-
- then:
- t.save() == null
- t.hasErrors() == true
- 0 == TestEntity.count()
-
- when:
- t.clearErrors()
- t.name = 'Bob'
- t.age = 45
- t.child = new ChildEntity(name: 'Fred')
- t = t.save()
-
- then:
- t != null
- 1 == TestEntity.count()
- }
-
- @Rollback
- void "Test beforeValidate gets called on save()"() {
- given:
- def entityWithNoArgBeforeValidateMethod
- def entityWithListArgBeforeValidateMethod
- def entityWithOverloadedBeforeValidateMethod
-
- when:
- entityWithNoArgBeforeValidateMethod = new ClassWithNoArgBeforeValidate()
- entityWithListArgBeforeValidateMethod = new ClassWithListArgBeforeValidate()
- entityWithOverloadedBeforeValidateMethod = new ClassWithOverloadedBeforeValidate()
- entityWithNoArgBeforeValidateMethod.save()
- entityWithListArgBeforeValidateMethod.save()
- entityWithOverloadedBeforeValidateMethod.save()
-
- then:
- 1 == entityWithNoArgBeforeValidateMethod.noArgCounter
- 1 == entityWithListArgBeforeValidateMethod.listArgCounter
- 1 == entityWithOverloadedBeforeValidateMethod.noArgCounter
- 0 == entityWithOverloadedBeforeValidateMethod.listArgCounter
- }
-
- void "Test beforeValidate gets called on validate()"() {
- given:
- def entityWithNoArgBeforeValidateMethod
- def entityWithListArgBeforeValidateMethod
- def entityWithOverloadedBeforeValidateMethod
-
- when:
- entityWithNoArgBeforeValidateMethod = new ClassWithNoArgBeforeValidate()
- entityWithListArgBeforeValidateMethod = new ClassWithListArgBeforeValidate()
- entityWithOverloadedBeforeValidateMethod = new ClassWithOverloadedBeforeValidate()
- entityWithNoArgBeforeValidateMethod.validate()
- entityWithListArgBeforeValidateMethod.validate()
- entityWithOverloadedBeforeValidateMethod.validate()
-
- then:
- 1 == entityWithNoArgBeforeValidateMethod.noArgCounter
- 1 == entityWithListArgBeforeValidateMethod.listArgCounter
- 1 == entityWithOverloadedBeforeValidateMethod.noArgCounter
- 0 == entityWithOverloadedBeforeValidateMethod.listArgCounter
- }
-
- void "Test beforeValidate gets called on validate() and passing a list of field names to validate"() {
- given:
- def entityWithNoArgBeforeValidateMethod
- def entityWithListArgBeforeValidateMethod
- def entityWithOverloadedBeforeValidateMethod
-
- when:
- entityWithNoArgBeforeValidateMethod = new ClassWithNoArgBeforeValidate()
- entityWithListArgBeforeValidateMethod = new ClassWithListArgBeforeValidate()
- entityWithOverloadedBeforeValidateMethod = new ClassWithOverloadedBeforeValidate()
- entityWithNoArgBeforeValidateMethod.validate(['name'])
- entityWithListArgBeforeValidateMethod.validate(['name'])
- entityWithOverloadedBeforeValidateMethod.validate(['name'])
-
- then:
- 1 == entityWithNoArgBeforeValidateMethod.noArgCounter
- 1 == entityWithListArgBeforeValidateMethod.listArgCounter
- 0 == entityWithOverloadedBeforeValidateMethod.noArgCounter
- 1 == entityWithOverloadedBeforeValidateMethod.listArgCounter
- ['name'] == entityWithOverloadedBeforeValidateMethod.propertiesPassedToBeforeValidate
- }
-
- @Rollback
- void "Test that validate works without a bound Session"() {
-
- given:
- def t
-
- when:
- manager.session.disconnect()
- def resource
- if (TransactionSynchronizationManager.hasResource(manager.session.datastore.sessionFactory)) {
- resource = TransactionSynchronizationManager.unbindResource(manager.session.datastore.sessionFactory)
- }
-
- t = new TestEntity(name: '')
-
- then:
- TransactionSynchronizationManager.getResource(manager.session.datastore.sessionFactory) == null
- t.save() == null
- t.hasErrors() == true
-
- when:
- TransactionSynchronizationManager.bindResource(manager.session.datastore.sessionFactory, resource)
-
- then:
- 1 == t.errors.allErrors.size()
- 0 == TestEntity.count()
-
- when:
- t.clearErrors()
- t.name = 'Bob'
- t.age = 45
- t.child = new ChildEntity(name: 'Fred')
- t = t.save(flush: true)
-
- then:
- t != null
- 1 == TestEntity.count()
+ ClassWithOverloadedBeforeValidate, TestEntity, ChildEntity, Task])
}
// Hibernate did not originally have this test and it fails for it
- @Rollback
+ @PendingFeatureIf({ System.getProperty('hibernate5.gorm.suite') })
void 'Test validating an object that has had values rejected with an ObjectError'() {
given:
def t = new TestEntity(name: 'someName')
@@ -214,7 +61,7 @@ class ValidationSpec extends GrailsDataTckSpec {
}
// Hibernate did not originally have this test and it fails for it
- @Rollback
+ @PendingFeatureIf({ System.getProperty('hibernate5.gorm.suite') })
void 'Test disable validation'() {
// test assumes name cannot be blank
given:
@@ -232,7 +79,6 @@ class ValidationSpec extends GrailsDataTckSpec {
errors.hasErrors()
when:
- t = new TestEntity(name: '', child: new ChildEntity(name: 'child'))
t.save(validate: false, flush: true)
then:
@@ -240,7 +86,6 @@ class ValidationSpec extends GrailsDataTckSpec {
!t.hasErrors()
}
- @Rollback
void 'Test validate() method'() {
// test assumes name cannot be blank
given:
@@ -264,7 +109,6 @@ class ValidationSpec extends GrailsDataTckSpec {
!t.hasErrors()
}
- @Rollback
void 'Test that validate is called on save()'() {
given:
@@ -290,7 +134,6 @@ class ValidationSpec extends GrailsDataTckSpec {
1 == TestEntity.count()
}
- @Rollback
void 'Test beforeValidate gets called on save()'() {
given:
def entityWithNoArgBeforeValidateMethod
@@ -312,7 +155,6 @@ class ValidationSpec extends GrailsDataTckSpec {
0 == entityWithOverloadedBeforeValidateMethod.listArgCounter
}
- @Rollback
void 'Test beforeValidate gets called on validate()'() {
given:
def entityWithNoArgBeforeValidateMethod
@@ -334,7 +176,6 @@ class ValidationSpec extends GrailsDataTckSpec {
0 == entityWithOverloadedBeforeValidateMethod.listArgCounter
}
- @Rollback
void 'Test beforeValidate gets called on validate() and passing a list of field names to validate'() {
given:
def entityWithNoArgBeforeValidateMethod
@@ -357,22 +198,24 @@ class ValidationSpec extends GrailsDataTckSpec {
['name'] == entityWithOverloadedBeforeValidateMethod.propertiesPassedToBeforeValidate
}
- @Unroll
+ @IgnoreIf({
+ Boolean.getBoolean('neo4j.gorm.suite') || // neo4j requires a transaction present for inserts
+ System.getProperty('hibernate5.gorm.suite') // Hibernate has a custom version of this test
+ })
void 'Test that validate works without a bound Session'() {
given:
def t
- def initialCount = TestEntity.count()
when:
manager.session.disconnect()
t = new TestEntity(name: '')
then:
- !manager.session.isConnected()
+ !manager.session.datastore.hasCurrentSession()
t.save() == null
t.hasErrors() == true
1 == t.errors.allErrors.size()
- TestEntity.count() == initialCount
+ 0 == TestEntity.count()
when:
t.clearErrors()
@@ -382,12 +225,11 @@ class ValidationSpec extends GrailsDataTckSpec {
t = t.save(flush: true)
then:
- !manager.session.isConnected()
+ !manager.session.datastore.hasCurrentSession()
t != null
- TestEntity.count() == initialCount + 1
+ 1 == TestEntity.count()
}
- @Unroll
void 'Two parameter validate is called on entity validator if it implements Validator interface'() {
given:
def mockValidator = Mock(Validator)
diff --git a/grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/model/MappingFactory.java b/grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/model/MappingFactory.java
index cf98678744..77e3e5d8d1 100644
--- a/grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/model/MappingFactory.java
+++ b/grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/model/MappingFactory.java
@@ -448,7 +448,7 @@ public abstract class MappingFactory<R extends Entity, T extends Property> {
String targetName = property != null ? property.getName() : null;
String[] identifierNames = targetName != null ? new String[]{targetName} : new String[]{IDENTITY_PROPERTY};
String generatorName = property != null ? property.getGenerator() : null;
- ValueGenerator generator = generatorName != null ? ValueGenerator.valueOf(generatorName) : ValueGenerator.AUTO;
+ ValueGenerator generator = generatorName != null ? ValueGenerator.valueOf(generatorName.toUpperCase(java.util.Locale.ENGLISH)) : ValueGenerator.AUTO;
return new DefaultIdentityMapping<>(classMapping, property, identifierNames, generator);
}
(grails-core) 01/03: hibernate 7: * RAT fix
Posted by bo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
borinquenkid pushed a commit to branch 8.0.x-hibernate7
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 3d0c862330e02b02ecd4fa6e4df829d2d3110e43
Author: Walter Duque de Estrada <wb...@mac.com>
AuthorDate: Tue Mar 24 09:15:43 2026 -0500
hibernate 7:
* RAT fix
---
BRANCHES.md | 18 ++++++++++++++++++
gradle/rat-root-config.gradle | 4 ++++
.../data/testing/tck/tests/FindByMethodSpec.groovy | 18 ++++++++++++++++++
3 files changed, 40 insertions(+)
diff --git a/BRANCHES.md b/BRANCHES.md
index 5bda5cf376..12a71d877c 100644
--- a/BRANCHES.md
+++ b/BRANCHES.md
@@ -1,3 +1,21 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
| Branch | Date | Type |
| --- | --- | --- |
| origin/GRAILS-6737-Groovy-1.7.5 | 2010-09-17 | CLOSED |
diff --git a/gradle/rat-root-config.gradle b/gradle/rat-root-config.gradle
index f927ff3c81..bc65083ef0 100644
--- a/gradle/rat-root-config.gradle
+++ b/gradle/rat-root-config.gradle
@@ -84,6 +84,10 @@ tasks.named('rat') {
'build/**', // build directories
'buildSrc/build/**', // build directories
'**/build/**', // all build directories
+ 'node_modules/**', // node modules
+ 'local.properties', // local properties
+ 'test_output.log', // test output log
+ 'fix_codenarc.py', // fix codenarc script
] + rootProject.subprojects.collect{"${rootProject.projectDir.relativePath(it.layout.buildDirectory.get().asFile).toString()}/**/*" }
// logger.lifecycle("Excludes for RAT task: ${allExcludes.join(', \n')}")
excludes = allExcludes
diff --git a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/FindByMethodSpec.groovy b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/FindByMethodSpec.groovy
index e73385d529..1a0359f56a 100644
--- a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/FindByMethodSpec.groovy
+++ b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/FindByMethodSpec.groovy
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
package org.apache.grails.data.testing.tck.tests
import org.apache.grails.data.testing.tck.domains.Book as TckBook
(grails-core) 03/03: mongo: fix MongoContainers for latest version of Docker
Posted by bo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
borinquenkid pushed a commit to branch 8.0.x-hibernate7
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit bacd5fa27301f92e0b1f1f4f24393b88a8dc8db9
Author: Walter Duque de Estrada <wb...@mac.com>
AuthorDate: Tue Mar 24 19:53:23 2026 -0500
mongo: fix MongoContainers for latest version of Docker
---
grails-data-mongodb/core/build.gradle | 5 +
.../tests/DirtyCheckEmbeddedCollectionSpec.groovy | 5 +-
.../groovy/grails/gorm/tests/FindNativeSpec.groovy | 5 +-
.../listener/PersistenceEventListenerSpec.groovy | 5 +-
.../grails/mongodb/cascade/MongoCascadeSpec.groovy | 5 +-
.../mongo/core/GrailsDataMongoTckManager.groovy | 134 +++++++++++----------
.../data/mongo/core/MongoDatastoreSpec.groovy | 38 ++++++
.../gorm/mongo/AggregateMethodSpec.groovy | 5 +-
.../gorm/mongo/AssignedIdentifierSpec.groovy | 5 +-
.../gorm/mongo/AutowireServicesSpec.groovy | 5 +-
.../datastore/gorm/mongo/BasicArraySpec.groovy | 5 +-
.../gorm/mongo/BasicCollectionTypeSpec.groovy | 5 +-
.../gorm/mongo/BasicCollectionsSpec.groovy | 5 +-
.../gorm/mongo/BatchUpdateDeleteSpec.groovy | 5 +-
.../gorm/mongo/BeforeInsertUpdateSpec.groovy | 5 +-
.../BeforeUpdatePropertyPersistenceSpec.groovy | 8 +-
.../datastore/gorm/mongo/BigDecimalSpec.groovy | 5 +-
.../mongo/BrokenManyToManyAssociationSpec.groovy | 5 +-
.../gorm/mongo/CascadeDeleteOneToOneSpec.groovy | 5 +-
.../datastore/gorm/mongo/CascadeDeleteSpec.groovy | 5 +-
.../CircularBidirectionalOneToManySpec.groovy | 5 +-
.../gorm/mongo/CircularEmbeddedListSpec.groovy | 5 +-
.../gorm/mongo/CircularOneToManySpec.groovy | 5 +-
.../gorm/mongo/ClearCollectionSpec.groovy | 5 +-
.../CustomCollectionAndAttributeMappingSpec.groovy | 5 +-
.../datastore/gorm/mongo/CustomIdProxySpec.groovy | 5 +-
.../gorm/mongo/CustomMongoEventListenerSpec.groovy | 5 +-
.../gorm/mongo/CustomTypeMarshallingSpec.groovy | 5 +-
.../gorm/mongo/DBObjectConversionSpec.groovy | 5 +-
.../gorm/mongo/DbRefWithEmbeddedSpec.groovy | 5 +-
.../gorm/mongo/DefaultSortOrderSpec.groovy | 5 +-
.../gorm/mongo/DirtyCheckUpdateSpec.groovy | 5 +-
.../datastore/gorm/mongo/DisableVersionSpec.groovy | 5 +-
.../gorm/mongo/DisjunctionQuerySpec.groovy | 7 +-
.../gorm/mongo/DistinctPropertySpec.groovy | 5 +-
.../gorm/mongo/DocumentMappingSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedAssociationSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedBiDirectionalSpec.groovy | 5 +-
.../EmbeddedCollectionAndInheritanceSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedCollectionWithIdSpec.groovy | 5 +-
.../EmbeddedCollectionWithOneToOneSpec.groovy | 5 +-
.../EmbeddedHasManyWithBeforeUpdateSpec.groovy | 7 +-
.../mongo/EmbeddedListWithCustomTypeSpec.groovy | 5 +-
.../datastore/gorm/mongo/EmbeddedMapSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedSetAssignedIdSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedSimpleObjectSpec.groovy | 5 +-
...edStringListInsideEmbeddedCollectionSpec.groovy | 5 +-
.../datastore/gorm/mongo/EmbeddedUnsetSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedWhereClauseSpec.groovy | 5 +-
.../EmbeddedWithCustomFieldMappingSpec.groovy | 5 +-
.../gorm/mongo/EmbeddedWithIdSpecifiedSpec.groovy | 7 +-
.../EmbeddedWithNonEmbeddedAssociationsSpec.groovy | 5 +-
.../EmbeddedWithNonEmbeddedCollectionsSpec.groovy | 5 +-
.../EmbeddedWithinEmbeddedAssociationSpec.groovy | 5 +-
.../datastore/gorm/mongo/EnumCollectionSpec.groovy | 5 +-
.../datastore/gorm/mongo/EnumTypeSpec.groovy | 5 +-
.../mongo/EventsWithAbstractInheritanceSpec.groovy | 5 +-
.../gorm/mongo/FindOrCreateWhereSpec.groovy | 5 +-
.../gorm/mongo/GeoJSONTypePersistenceSpec.groovy | 5 +-
.../gorm/mongo/GeospacialQuerySpec.groovy | 5 +-
.../grails/datastore/gorm/mongo/GetAllSpec.groovy | 7 +-
.../gorm/mongo/GetAllWithStringIdSpec.groovy | 5 +-
.../GreaterThanAndLessThanCriteriaSpec.groovy | 5 +-
.../grails/datastore/gorm/mongo/HasOneSpec.groovy | 5 +-
.../gorm/mongo/HintQueryArgumentSpec.groovy | 7 +-
.../datastore/gorm/mongo/InListQuerySpec.groovy | 7 +-
.../mongo/IndexAttributesAndCompoundKeySpec.groovy | 5 +-
.../gorm/mongo/IndexWithInheritanceSpec.groovy | 5 +-
.../gorm/mongo/InheritanceQueryingSpec.groovy | 5 +-
...nheritanceWithSingleEndedAssociationSpec.groovy | 5 +-
.../datastore/gorm/mongo/InnerEnumSpec.groovy | 5 +-
.../grails/datastore/gorm/mongo/IsNullSpec.groovy | 5 +-
.../gorm/mongo/JakartaValidationSpec.groovy | 5 +-
.../datastore/gorm/mongo/LastUpdatedSpec.groovy | 5 +-
.../datastore/gorm/mongo/LikeQuerySpec.groovy | 7 +-
.../gorm/mongo/ListOneToManyOrderingSpec.groovy | 5 +-
.../datastore/gorm/mongo/MapOfDomainsSpec.groovy | 5 +-
.../datastore/gorm/mongo/MarkDirtyFalseSpec.groovy | 5 +-
.../MongoDynamicPropertyOnEmbeddedSpec.groovy | 5 +-
.../gorm/mongo/MongoEntityConfigSpec.groovy | 5 +-
.../gorm/mongo/MongoGormEnhancerSpec.groovy | 5 +-
.../gorm/mongo/MongoResultsListIndexSpec.groovy | 7 +-
.../datastore/gorm/mongo/MongoTypesSpec.groovy | 5 +-
.../datastore/gorm/mongo/NegateInListSpec.groovy | 7 +-
.../datastore/gorm/mongo/NegationEnumSpec.groovy | 5 +-
.../gorm/mongo/NullifyPropertySpec.groovy | 7 +-
.../gorm/mongo/NullsAreNotStoredSpec.groovy | 5 +-
.../gorm/mongo/ObjectIdPersistenceSpec.groovy | 5 +-
.../gorm/mongo/ObjectIdPropertySpec.groovy | 5 +-
.../gorm/mongo/OneToManyWithInheritanceSpec.groovy | 5 +-
.../gorm/mongo/OneToOneIntegritySpec.groovy | 7 +-
.../gorm/mongo/OneToOneNoReferenceSpec.groovy | 5 +-
.../OptimisticLockingWithExceptionSpec.groovy | 5 +-
.../gorm/mongo/OrderWithPaginationSpec.groovy | 7 +-
.../datastore/gorm/mongo/ProjectionsSpec.groovy | 5 +-
.../QueriesWithIdenticallyNamedPartsSpec.groovy | 5 +-
.../gorm/mongo/ReadConcernArgumentSpec.groovy | 7 +-
.../gorm/mongo/ReadManyObjectsSpec.groovy | 5 +-
.../ResultsWithGroovyCollectionMethodsSpec.groovy | 7 +-
.../datastore/gorm/mongo/SchemalessSpec.groovy | 7 +-
.../datastore/gorm/mongo/SessionCachingSpec.groovy | 7 +-
.../datastore/gorm/mongo/SetRetrievalSpec.groovy | 5 +-
.../datastore/gorm/mongo/SimpleHasManySpec.groovy | 5 +-
.../datastore/gorm/mongo/StatelessSpec.groovy | 5 +-
.../gorm/mongo/SwitchDatabaseAtRuntimeSpec.groovy | 5 +-
.../datastore/gorm/mongo/TestSearchSpec.groovy | 5 +-
.../gorm/mongo/TransientPropertySpec.groovy | 5 +-
.../gorm/mongo/WhereQueryInCriteriaSpec.groovy | 5 +-
.../datastore/gorm/mongo/WriteConcernSpec.groovy | 5 +-
.../gorm/mongo/bugs/GPMongoDB295Spec.groovy | 5 +-
110 files changed, 450 insertions(+), 297 deletions(-)
diff --git a/grails-data-mongodb/core/build.gradle b/grails-data-mongodb/core/build.gradle
index a23048f3be..110763033b 100644
--- a/grails-data-mongodb/core/build.gradle
+++ b/grails-data-mongodb/core/build.gradle
@@ -130,6 +130,11 @@ dependencies {
testImplementation 'org.spockframework:spock-core'
testImplementation project(':grails-testing-support-mongodb')
+ testImplementation platform('org.testcontainers:testcontainers-bom:2.0.3')
+ testImplementation 'org.testcontainers:testcontainers'
+ testImplementation 'org.testcontainers:mongodb'
+ testImplementation 'org.testcontainers:spock'
+
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
testRuntimeOnly 'org.slf4j:slf4j-nop' // Get rid of warning about missing slf4j implementation during tests
}
diff --git a/grails-data-mongodb/core/src/test/groovy/grails/gorm/tests/DirtyCheckEmbeddedCollectionSpec.groovy b/grails-data-mongodb/core/src/test/groovy/grails/gorm/tests/DirtyCheckEmbeddedCollectionSpec.groovy
index 2952cbdf0d..cdda0cd431 100644
--- a/grails-data-mongodb/core/src/test/groovy/grails/gorm/tests/DirtyCheckEmbeddedCollectionSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/grails/gorm/tests/DirtyCheckEmbeddedCollectionSpec.groovy
@@ -18,12 +18,13 @@
*/
package grails.gorm.tests
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
-class DirtyCheckEmbeddedCollectionSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class DirtyCheckEmbeddedCollectionSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Foo, Bar])
diff --git a/grails-data-mongodb/core/src/test/groovy/grails/gorm/tests/FindNativeSpec.groovy b/grails-data-mongodb/core/src/test/groovy/grails/gorm/tests/FindNativeSpec.groovy
index 4602948c93..16e453b720 100644
--- a/grails-data-mongodb/core/src/test/groovy/grails/gorm/tests/FindNativeSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/grails/gorm/tests/FindNativeSpec.groovy
@@ -18,9 +18,10 @@
*/
package grails.gorm.tests
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import com.mongodb.client.FindIterable
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
import org.grails.datastore.gorm.mongo.Product
//tag::nativeImport[]
@@ -31,7 +32,7 @@ import static com.mongodb.client.model.Filters.eq
/**
* Created by graemerocher on 24/10/16.
*/
-class FindNativeSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class FindNativeSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Product])
diff --git a/grails-data-mongodb/core/src/test/groovy/grails/gorm/tests/listener/PersistenceEventListenerSpec.groovy b/grails-data-mongodb/core/src/test/groovy/grails/gorm/tests/listener/PersistenceEventListenerSpec.groovy
index 5bb8cee946..1d4aadd324 100644
--- a/grails-data-mongodb/core/src/test/groovy/grails/gorm/tests/listener/PersistenceEventListenerSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/grails/gorm/tests/listener/PersistenceEventListenerSpec.groovy
@@ -18,10 +18,11 @@
*/
package grails.gorm.tests.listener
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.DetachedCriteria
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.grails.datastore.mapping.core.Datastore
import org.grails.datastore.mapping.engine.event.AbstractPersistenceEvent
import org.grails.datastore.mapping.engine.event.AbstractPersistenceEventListener
@@ -34,7 +35,7 @@ import org.springframework.context.ApplicationEvent
/**
* @author Tom Widmer
*/
-class PersistenceEventListenerSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class PersistenceEventListenerSpec extends MongoDatastoreSpec {
SpecPersistenceListener listener
void setupSpec() {
diff --git a/grails-data-mongodb/core/src/test/groovy/grails/mongodb/cascade/MongoCascadeSpec.groovy b/grails-data-mongodb/core/src/test/groovy/grails/mongodb/cascade/MongoCascadeSpec.groovy
index 305115d7a8..fdae5a1caa 100644
--- a/grails-data-mongodb/core/src/test/groovy/grails/mongodb/cascade/MongoCascadeSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/grails/mongodb/cascade/MongoCascadeSpec.groovy
@@ -18,10 +18,11 @@
*/
package grails.mongodb.cascade
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class MongoCascadeSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class MongoCascadeSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Product, ProductLine])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/apache/grails/data/mongo/core/GrailsDataMongoTckManager.groovy b/grails-data-mongodb/core/src/test/groovy/org/apache/grails/data/mongo/core/GrailsDataMongoTckManager.groovy
index 022637f6c0..9b28756e00 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/apache/grails/data/mongo/core/GrailsDataMongoTckManager.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/apache/grails/data/mongo/core/GrailsDataMongoTckManager.groovy
@@ -65,29 +65,12 @@ class GrailsDataMongoTckManager extends GrailsDataTckManager {
MongoDatastore multiDataSourceDatastore
MongoDatastore multiTenantMultiDataSourceDatastore
- @Override
- void setupSpec() {
- super.setupSpec()
- mongoDBContainer = new MongoDBContainer(AbstractMongoGrailsExtension.desiredMongoDockerName)
- mongoDBContainer.start()
- mongoDBContainer.followOutput(new Slf4jLogConsumer(LoggerFactory.getLogger("testcontainers")))
-
- configuration = [
- (MongoSettings.SETTING_DATABASE_NAME): 'test',
- (MongoSettings.SETTING_HOST) : mongoDBContainer.host,
- (MongoSettings.SETTING_PORT) : mongoDBContainer.getMappedPort(AbstractMongoGrailsExtension.DEFAULT_MONGO_PORT) as String,
- //TODO: 'grails.mongodb.url': "mongodb://${host}:${port as String}/myDb" as String
- ]
- }
-
- @Override
- void cleanupSpec() {
- super.cleanupSpec()
- mongoDBContainer.stop()
- }
-
@Override
Session createSession() {
+ if (mongoDBContainer == null || !mongoDBContainer.isRunning()) {
+ return null
+ }
+ System.setProperty('mongodb.gorm.suite', 'true')
def allClasses = getDomainClasses() as Class[]
def ctx = new GenericApplicationContext()
ctx.refresh()
@@ -136,38 +119,42 @@ class GrailsDataMongoTckManager extends GrailsDataTckManager {
@Override
void destroy() {
- mongoDatastore.getMongoClient().listDatabaseNames().findAll {!(it in ['admin', 'config', 'local']) }.each {
- try {
- mongoDatastore.getMongoClient().getDatabase(it).drop()
+ if (mongoDatastore != null) {
+ mongoDatastore.getMongoClient().listDatabaseNames().findAll {!(it in ['admin', 'config', 'local']) }.each {
+ try {
+ mongoDatastore.getMongoClient().getDatabase(it).drop()
+ }
+ catch(e) {
+ log.warn("Could not drop ${it}")
+ }
}
- catch(e) {
- log.warn("Could not drop ${it}")
+ mongoDatastore.buildIndex()
+ for (cls in getDomainClasses()) {
+ GormEnhancer.findValidationApi(cls).setValidator(null)
}
}
- mongoDatastore.buildIndex()
- for (cls in getDomainClasses()) {
- GormEnhancer.findValidationApi(cls).setValidator(null)
- }
super.destroy()
}
@Override
boolean supportsMultipleDataSources() {
- true
+ mongoDBContainer != null && mongoDBContainer.isRunning()
}
@Override
void setupMultiDataSource(Class... domainClasses) {
- String host = mongoDBContainer.host
- int port = mongoDBContainer.getMappedPort(AbstractMongoGrailsExtension.DEFAULT_MONGO_PORT)
- Map config = [
- 'grails.mongodb.url' : "mongodb://${host}:${port}/tckDefaultDB" as String,
- 'grails.mongodb.connections': [
- 'secondary': ['url': "mongodb://${host}:${port}/tckSecondaryDB" as String],
- ],
- ]
- multiDataSourceDatastore = new MongoDatastore(DatastoreUtils.createPropertyResolver(config), domainClasses)
+ if (mongoDBContainer != null && mongoDBContainer.isRunning()) {
+ String host = mongoDBContainer.host
+ int port = mongoDBContainer.getMappedPort(AbstractMongoGrailsExtension.DEFAULT_MONGO_PORT)
+ Map config = [
+ 'grails.mongodb.url' : "mongodb://${host}:${port}/tckDefaultDB" as String,
+ 'grails.mongodb.connections': [
+ 'secondary': ['url': "mongodb://${host}:${port}/tckSecondaryDB" as String],
+ ],
+ ]
+ multiDataSourceDatastore = new MongoDatastore(DatastoreUtils.createPropertyResolver(config), domainClasses)
+ }
}
@Override
@@ -184,30 +171,32 @@ class GrailsDataMongoTckManager extends GrailsDataTckManager {
@Override
def getServiceForConnection(Class serviceType, String connectionName) {
multiDataSourceDatastore
- .getDatastoreForConnection(connectionName)
- .getService(serviceType)
+ ?.getDatastoreForConnection(connectionName)
+ ?.getService(serviceType)
}
@Override
boolean supportsMultiTenantMultiDataSource() {
- true
+ mongoDBContainer != null && mongoDBContainer.isRunning()
}
@Override
void setupMultiTenantMultiDataSource(Class... domainClasses) {
- String host = mongoDBContainer.host
- int port = mongoDBContainer.getMappedPort(AbstractMongoGrailsExtension.DEFAULT_MONGO_PORT)
- Map config = [
- 'grails.gorm.multiTenancy.mode' : MultiTenancySettings.MultiTenancyMode.DISCRIMINATOR,
- 'grails.gorm.multiTenancy.tenantResolverClass' : SystemPropertyTenantResolver,
- 'grails.mongodb.url' : "mongodb://${host}:${port}/tckMtDefaultDB" as String,
- 'grails.mongodb.connections' : [
- 'secondary': ['url': "mongodb://${host}:${port}/tckMtSecondaryDB" as String],
- ],
- ]
- multiTenantMultiDataSourceDatastore = new MongoDatastore(
- DatastoreUtils.createPropertyResolver(config), domainClasses
- )
+ if (mongoDBContainer != null && mongoDBContainer.isRunning()) {
+ String host = mongoDBContainer.host
+ int port = mongoDBContainer.getMappedPort(AbstractMongoGrailsExtension.DEFAULT_MONGO_PORT)
+ Map config = [
+ 'grails.gorm.multiTenancy.mode' : MultiTenancySettings.MultiTenancyMode.DISCRIMINATOR,
+ 'grails.gorm.multiTenancy.tenantResolverClass' : SystemPropertyTenantResolver,
+ 'grails.mongodb.url' : "mongodb://${host}:${port}/tckMtDefaultDB" as String,
+ 'grails.mongodb.connections' : [
+ 'secondary': ['url': "mongodb://${host}:${port}/tckMtSecondaryDB" as String],
+ ],
+ ]
+ multiTenantMultiDataSourceDatastore = new MongoDatastore(
+ DatastoreUtils.createPropertyResolver(config), domainClasses
+ )
+ }
}
@Override
@@ -224,17 +213,34 @@ class GrailsDataMongoTckManager extends GrailsDataTckManager {
@Override
def getServiceForMultiTenantConnection(Class serviceType, String connectionName) {
multiTenantMultiDataSourceDatastore
- .getDatastoreForConnection(connectionName)
- .getService(serviceType)
+ ?.getDatastoreForConnection(connectionName)
+ ?.getService(serviceType)
}
void setupValidator(Class entityClass, Validator validator = null) {
- PersistentEntity entity = mappingContext.persistentEntities.find { PersistentEntity e -> e.javaClass == entityClass }
- def messageSource = new StaticMessageSource()
- def evaluator = new DefaultConstraintEvaluator(new DefaultConstraintRegistry(messageSource), mappingContext, Collections.emptyMap())
- if (entity) {
- mappingContext.addEntityValidator(entity, validator ?:
- new PersistentEntityValidator(entity, messageSource, evaluator))
+ if (mappingContext != null) {
+ PersistentEntity entity = mappingContext.persistentEntities.find { PersistentEntity e -> e.javaClass == entityClass }
+ def messageSource = new StaticMessageSource()
+ def evaluator = new DefaultConstraintEvaluator(new DefaultConstraintRegistry(messageSource), mappingContext, Collections.emptyMap())
+ if (entity) {
+ mappingContext.addEntityValidator(entity, validator ?:
+ new PersistentEntityValidator(entity, messageSource, evaluator))
+ }
+ }
+ }
+ static boolean isDockerAvailable() {
+ def candidates = [
+ System.getProperty('user.home') + '/.docker/run/docker.sock',
+ '/var/run/docker.sock',
+ System.getenv('DOCKER_HOST') ?: ''
+ ]
+ if (candidates.any { it && new File(it).exists() }) {
+ try {
+ return org.testcontainers.DockerClientFactory.instance().isDockerAvailable()
+ } catch (Throwable e) {
+ return false
+ }
}
+ return false
}
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/apache/grails/data/mongo/core/MongoDatastoreSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/apache/grails/data/mongo/core/MongoDatastoreSpec.groovy
new file mode 100644
index 0000000000..1987ea2f81
--- /dev/null
+++ b/grails-data-mongodb/core/src/test/groovy/org/apache/grails/data/mongo/core/MongoDatastoreSpec.groovy
@@ -0,0 +1,38 @@
+package org.apache.grails.data.mongo.core
+
+import org.testcontainers.spock.Testcontainers
+import spock.lang.Shared
+
+import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
+import org.apache.grails.testing.mongo.AbstractMongoGrailsExtension
+import org.grails.datastore.mapping.mongo.config.MongoSettings
+import org.testcontainers.containers.MongoDBContainer
+import spock.lang.Requires
+
+@Testcontainers
+@Requires({ isDockerAvailable() })
+abstract class MongoDatastoreSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+
+ @Shared MongoDBContainer container = new MongoDBContainer(AbstractMongoGrailsExtension.desiredMongoDockerName)
+
+ void setupSpec() {
+ if (container != null && !container.isRunning()) {
+ container.start()
+ }
+ manager.mongoDBContainer = container
+ manager.configuration = [
+ (MongoSettings.SETTING_DATABASE_NAME): 'test',
+ (MongoSettings.SETTING_HOST) : container.host,
+ (MongoSettings.SETTING_PORT) : container.getMappedPort(AbstractMongoGrailsExtension.DEFAULT_MONGO_PORT) as String
+ ]
+ }
+
+ void cleanupSpec() {
+ // We let Testcontainers handle shutdown via its Ryuk container, or we could stop it here
+ // if we wanted to recreate it per-spec. Keeping it static across the suite is faster.
+ }
+
+ static boolean isDockerAvailable() {
+ GrailsDataMongoTckManager.isDockerAvailable()
+ }
+}
\ No newline at end of file
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/AggregateMethodSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/AggregateMethodSpec.groovy
index 4e6e92b402..bce0729e10 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/AggregateMethodSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/AggregateMethodSpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.mongodb.MongoEntity
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
/**
* Created by graemerocher on 22/04/14.
*/
-class AggregateMethodSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class AggregateMethodSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([City])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/AssignedIdentifierSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/AssignedIdentifierSpec.groovy
index 361338320d..05b089f51e 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/AssignedIdentifierSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/AssignedIdentifierSpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import com.mongodb.MongoBulkWriteException
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
/**
* Tests for usage of assigned identifiers
*/
-class AssignedIdentifierSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class AssignedIdentifierSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([River, Lake, Volcano])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/AutowireServicesSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/AutowireServicesSpec.groovy
index 196d6321c0..0013000123 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/AutowireServicesSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/AutowireServicesSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.springframework.context.support.GenericApplicationContext
-class AutowireServicesSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class AutowireServicesSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Pizza])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BasicArraySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BasicArraySpec.groovy
index 6a33d4e89f..3def2e7a85 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BasicArraySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BasicArraySpec.groovy
@@ -19,16 +19,17 @@
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
import org.bson.types.ObjectId
/**
* @author Graeme Rocher
*/
-class BasicArraySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class BasicArraySpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Data])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BasicCollectionTypeSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BasicCollectionTypeSpec.groovy
index 45a490684a..7be936d359 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BasicCollectionTypeSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BasicCollectionTypeSpec.groovy
@@ -18,11 +18,12 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class BasicCollectionTypeSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class BasicCollectionTypeSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([MyCollections])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BasicCollectionsSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BasicCollectionsSpec.groovy
index 0a96023d3c..ae4149e4e4 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BasicCollectionsSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BasicCollectionsSpec.groovy
@@ -18,11 +18,12 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class BasicCollectionsSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class BasicCollectionsSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Linguist, Increment])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BatchUpdateDeleteSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BatchUpdateDeleteSpec.groovy
index 5d0c3fadc1..05f9e1e7da 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BatchUpdateDeleteSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BatchUpdateDeleteSpec.groovy
@@ -19,18 +19,19 @@
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.annotation.Entity
import grails.gorm.tests.Plant
import grails.mongodb.MongoEntity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.grails.datastore.gorm.query.transform.ApplyDetachedCriteriaTransform
/**
* Created by graemerocher on 20/03/14.
*/
@ApplyDetachedCriteriaTransform
-class BatchUpdateDeleteSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class BatchUpdateDeleteSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([BatchUser, BatchAddress, Plant])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BeforeInsertUpdateSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BeforeInsertUpdateSpec.groovy
index d3d44c1f70..beacc278f2 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BeforeInsertUpdateSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BeforeInsertUpdateSpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
import spock.lang.Issue
/**
* @author Graeme Rocher
*/
-class BeforeInsertUpdateSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class BeforeInsertUpdateSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([BeforeInsertUser])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BeforeUpdatePropertyPersistenceSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BeforeUpdatePropertyPersistenceSpec.groovy
index 4ec3b27def..346209ca02 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BeforeUpdatePropertyPersistenceSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BeforeUpdatePropertyPersistenceSpec.groovy
@@ -18,10 +18,11 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.annotation.AutoTimestamp
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
import spock.lang.Issue
@@ -30,11 +31,8 @@ import spock.lang.Issue
* This specifically tests the scenario where a property is set in beforeUpdate()
* but was NOT explicitly modified by the user code.
*/
-class BeforeUpdatePropertyPersistenceSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class BeforeUpdatePropertyPersistenceSpec extends MongoDatastoreSpec {
- void setupSpec() {
- manager.domainClasses.addAll([UserWithBeforeUpdate, UserWithBeforeUpdateAndAutoTimestamp])
- }
@Issue('GRAILS-15139')
void "Test that properties set in beforeUpdate are persisted"() {
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BigDecimalSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BigDecimalSpec.groovy
index 37ae170ef4..c97da241b1 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BigDecimalSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BigDecimalSpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.annotation.Entity
import grails.mongodb.MongoEntity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.Decimal128
/**
* Created by graemerocher on 14/12/16.
*/
-class BigDecimalSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class BigDecimalSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([BossMan])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BrokenManyToManyAssociationSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BrokenManyToManyAssociationSpec.groovy
index b71b0da4e5..02cb191762 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BrokenManyToManyAssociationSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/BrokenManyToManyAssociationSpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.mongodb.MongoEntity
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
/**
* @author Noam Y. Tenne
*/
-class BrokenManyToManyAssociationSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class BrokenManyToManyAssociationSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([ReferencingEntity, ReferencedEntity])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CascadeDeleteOneToOneSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CascadeDeleteOneToOneSpec.groovy
index abb2dfd9c3..3bf042e228 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CascadeDeleteOneToOneSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CascadeDeleteOneToOneSpec.groovy
@@ -18,15 +18,16 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
/**
* @author Graeme Rocher
*/
-class CascadeDeleteOneToOneSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class CascadeDeleteOneToOneSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([SystemUser, UserSettings, Company, Executive, Employee])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CascadeDeleteSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CascadeDeleteSpec.groovy
index a230a7dc54..f2bcbd8ac3 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CascadeDeleteSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CascadeDeleteSpec.groovy
@@ -18,13 +18,14 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
import spock.lang.Issue
-class CascadeDeleteSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class CascadeDeleteSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([CascadeUser, CascadeUserSettings])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CircularBidirectionalOneToManySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CircularBidirectionalOneToManySpec.groovy
index d16616add7..4a8279e465 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CircularBidirectionalOneToManySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CircularBidirectionalOneToManySpec.groovy
@@ -18,15 +18,16 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.annotation.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
/**
* Created by graemerocher on 24/08/2016.
*/
-class CircularBidirectionalOneToManySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class CircularBidirectionalOneToManySpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Comment])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CircularEmbeddedListSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CircularEmbeddedListSpec.groovy
index 8baee8ed11..378388c108 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CircularEmbeddedListSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CircularEmbeddedListSpec.groovy
@@ -18,15 +18,16 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
/**
* Created by graemerocher on 14/03/14.
*/
-class CircularEmbeddedListSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class CircularEmbeddedListSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Tree])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CircularOneToManySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CircularOneToManySpec.groovy
index 5f2510f078..fa6779ca6d 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CircularOneToManySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CircularOneToManySpec.groovy
@@ -18,14 +18,15 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
/**
* @author Graeme Rocher
*/
-class CircularOneToManySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class CircularOneToManySpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Profile])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ClearCollectionSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ClearCollectionSpec.groovy
index 8798e3d452..d055be480d 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ClearCollectionSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ClearCollectionSpec.groovy
@@ -19,12 +19,13 @@
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
-class ClearCollectionSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class ClearCollectionSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Building, Room, RoomCompany])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomCollectionAndAttributeMappingSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomCollectionAndAttributeMappingSpec.groovy
index f19b5418ad..2fb8e93b7c 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomCollectionAndAttributeMappingSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomCollectionAndAttributeMappingSpec.groovy
@@ -18,14 +18,15 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* Tests for the case where a custom mapping is used.
*/
-class CustomCollectionAndAttributeMappingSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class CustomCollectionAndAttributeMappingSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([CCAAMPerson])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomIdProxySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomIdProxySpec.groovy
index dc7aef4698..ad92eedc77 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomIdProxySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomIdProxySpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.annotation.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.grails.datastore.mapping.proxy.EntityProxy
import spock.lang.Issue
/**
* Created by graemerocher on 14/10/16.
*/
-class CustomIdProxySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class CustomIdProxySpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([CustomIdCompany, CustomIdTeam])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomMongoEventListenerSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomMongoEventListenerSpec.groovy
index 032774369e..d3e5448491 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomMongoEventListenerSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomMongoEventListenerSpec.groovy
@@ -18,9 +18,10 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.grails.datastore.mapping.core.Datastore
import org.grails.datastore.mapping.engine.event.AbstractPersistenceEvent
import org.grails.datastore.mapping.engine.event.AbstractPersistenceEventListener
@@ -35,7 +36,7 @@ import static org.grails.datastore.mapping.engine.event.EventType.PreInsert
import static org.grails.datastore.mapping.engine.event.EventType.PreLoad
import static org.grails.datastore.mapping.engine.event.EventType.PreUpdate
-class CustomMongoEventListenerSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class CustomMongoEventListenerSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Listener])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomTypeMarshallingSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomTypeMarshallingSpec.groovy
index 3363d3eb72..17a6f00fad 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomTypeMarshallingSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/CustomTypeMarshallingSpec.groovy
@@ -18,13 +18,14 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.mongodb.MongoEntity
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
-class CustomTypeMarshallingSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class CustomTypeMarshallingSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Person])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DBObjectConversionSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DBObjectConversionSpec.groovy
index a7edefa90d..0aea691afb 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DBObjectConversionSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DBObjectConversionSpec.groovy
@@ -18,13 +18,14 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Ignore
// moved to 'gorm-ex
@Ignore
-class DBObjectConversionSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class DBObjectConversionSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Boat, Sailor, Captain])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DbRefWithEmbeddedSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DbRefWithEmbeddedSpec.groovy
index dc12582bbf..9f7f35da02 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DbRefWithEmbeddedSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DbRefWithEmbeddedSpec.groovy
@@ -18,10 +18,11 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import com.mongodb.DBRef
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
import org.bson.types.ObjectId
import spock.lang.Issue
@@ -29,7 +30,7 @@ import spock.lang.Issue
/**
* @author Graeme Rocher
*/
-class DbRefWithEmbeddedSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class DbRefWithEmbeddedSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([One, Two])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DefaultSortOrderSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DefaultSortOrderSpec.groovy
index 9497701d8f..f4f6caac60 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DefaultSortOrderSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DefaultSortOrderSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
-class DefaultSortOrderSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class DefaultSortOrderSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([SOBook])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DirtyCheckUpdateSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DirtyCheckUpdateSpec.groovy
index 31fcad3a9e..9f3040da03 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DirtyCheckUpdateSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DirtyCheckUpdateSpec.groovy
@@ -18,10 +18,11 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.dirty.checking.DirtyCheck
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
import org.grails.datastore.mapping.dirty.checking.DirtyCheckable
import org.grails.datastore.mapping.mongo.config.MongoSettings
@@ -30,7 +31,7 @@ import spock.lang.Issue
/**
* Created by graemerocher on 14/03/14.
*/
-class DirtyCheckUpdateSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class DirtyCheckUpdateSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Bar])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DisableVersionSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DisableVersionSpec.groovy
index f2c271610f..f93f190467 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DisableVersionSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DisableVersionSpec.groovy
@@ -18,11 +18,12 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class DisableVersionSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class DisableVersionSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([NoVersion])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DisjunctionQuerySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DisjunctionQuerySpec.groovy
index 7025f5b562..32fcd26d56 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DisjunctionQuerySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DisjunctionQuerySpec.groovy
@@ -18,20 +18,21 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Pet
import org.apache.grails.data.testing.tck.domains.PetType
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
-class DisjunctionQuerySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class DisjunctionQuerySpec extends MongoDatastoreSpec {
def dogType
def catType
def birdType
void setupSpec() {
- manager.domainClasses += [Pet, PetType]
+ manager.addAllDomainClasses([Pet, PetType])
}
@Issue('GPMONGODB-380')
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DistinctPropertySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DistinctPropertySpec.groovy
index 42b52b83fa..e8d53af43b 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DistinctPropertySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DistinctPropertySpec.groovy
@@ -18,13 +18,14 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
import spock.lang.Issue
-class DistinctPropertySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class DistinctPropertySpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Student])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DocumentMappingSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DocumentMappingSpec.groovy
index ac4ca60d9d..2614e7083d 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DocumentMappingSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/DocumentMappingSpec.groovy
@@ -18,11 +18,12 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.annotation.Entity
import grails.mongodb.MongoEntity
import grails.mongodb.geo.Point
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
import static grails.mongodb.mapping.MappingBuilder.document
@@ -30,7 +31,7 @@ import static grails.mongodb.mapping.MappingBuilder.document
/**
* Created by graemerocher on 02/02/2017.
*/
-class DocumentMappingSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class DocumentMappingSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([CustomMapping])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedAssociationSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedAssociationSpec.groovy
index 827d83d337..316244bcaf 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedAssociationSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedAssociationSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
-class EmbeddedAssociationSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedAssociationSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Individual, Individual2, Address, LongAddress])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedBiDirectionalSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedBiDirectionalSpec.groovy
index 30d1b0a101..a20fce4694 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedBiDirectionalSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedBiDirectionalSpec.groovy
@@ -18,14 +18,15 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.annotation.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* Created by Jim on 8/18/2016.
*/
-class EmbeddedBiDirectionalSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedBiDirectionalSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([EBDDogOwner, EBDDog, EBDToy])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedCollectionAndInheritanceSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedCollectionAndInheritanceSpec.groovy
index e89e49c881..0959103cb7 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedCollectionAndInheritanceSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedCollectionAndInheritanceSpec.groovy
@@ -18,14 +18,15 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* Tests the use of embedded collections in inheritance hierarchies.
*/
-class EmbeddedCollectionAndInheritanceSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedCollectionAndInheritanceSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([ECAISPerson, ECAISPet, ECAISDog])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedCollectionWithIdSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedCollectionWithIdSpec.groovy
index c03f4cc521..990d2bdc4d 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedCollectionWithIdSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedCollectionWithIdSpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
import org.bson.types.ObjectId
/**
* Created by Jim on 8/15/2016.
*/
-class EmbeddedCollectionWithIdSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedCollectionWithIdSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([MainUser, EmbeddedBar])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedCollectionWithOneToOneSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedCollectionWithOneToOneSpec.groovy
index c19af3a830..b5ed055ec1 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedCollectionWithOneToOneSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedCollectionWithOneToOneSpec.groovy
@@ -18,13 +18,14 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* @author Graeme Rocher
*/
-class EmbeddedCollectionWithOneToOneSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedCollectionWithOneToOneSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Building, Room, RoomCompany])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedHasManyWithBeforeUpdateSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedHasManyWithBeforeUpdateSpec.groovy
index 6ed8b4461f..6b0d4b5d7a 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedHasManyWithBeforeUpdateSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedHasManyWithBeforeUpdateSpec.groovy
@@ -18,15 +18,16 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
-class EmbeddedHasManyWithBeforeUpdateSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedHasManyWithBeforeUpdateSpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [User, UserAddress]
+ manager.addAllDomainClasses([User, UserAddress])
}
void "Test embedded hasMany with beforeUpdate event"() {
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedListWithCustomTypeSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedListWithCustomTypeSpec.groovy
index 77c206eacd..89246a667a 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedListWithCustomTypeSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedListWithCustomTypeSpec.groovy
@@ -18,13 +18,14 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
import spock.lang.Issue
-class EmbeddedListWithCustomTypeSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedListWithCustomTypeSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Person, Family])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedMapSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedMapSpec.groovy
index 4da5453f99..e43f6f09c3 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedMapSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedMapSpec.groovy
@@ -18,15 +18,16 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
/**
* Created by graemerocher on 20/04/16.
*/
-class EmbeddedMapSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedMapSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([EmbeddedMapPerson])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedSetAssignedIdSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedSetAssignedIdSpec.groovy
index 3b6687da0d..7bacd26e33 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedSetAssignedIdSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedSetAssignedIdSpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
import spock.lang.Ignore
/**
* Created by graemerocher on 22/04/16.
*/
-class EmbeddedSetAssignedIdSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedSetAssignedIdSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Itemized, LineItem, SubItem, JobItem])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedSimpleObjectSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedSimpleObjectSpec.groovy
index bad5e7441a..cb0ca6a860 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedSimpleObjectSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedSimpleObjectSpec.groovy
@@ -18,11 +18,12 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class EmbeddedSimpleObjectSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedSimpleObjectSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Space])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedStringListInsideEmbeddedCollectionSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedStringListInsideEmbeddedCollectionSpec.groovy
index bf478f5e99..9db9a6dccd 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedStringListInsideEmbeddedCollectionSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedStringListInsideEmbeddedCollectionSpec.groovy
@@ -18,11 +18,12 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class EmbeddedStringListInsideEmbeddedCollectionSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedStringListInsideEmbeddedCollectionSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([ESLIECPerson])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedUnsetSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedUnsetSpec.groovy
index c73264d067..d190ed2973 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedUnsetSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedUnsetSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.annotation.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
-class EmbeddedUnsetSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedUnsetSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([EmbeddedPetOwner, EmbeddedPet])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWhereClauseSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWhereClauseSpec.groovy
index a58a477fbb..de9add86ad 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWhereClauseSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWhereClauseSpec.groovy
@@ -18,15 +18,16 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.services.Service
import grails.gorm.services.Where
import grails.persistence.Entity
import jakarta.persistence.Embeddable
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class EmbeddedWhereClauseSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedWhereClauseSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([PersonAttribute])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithCustomFieldMappingSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithCustomFieldMappingSpec.groovy
index e8380d7e8c..69dda852aa 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithCustomFieldMappingSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithCustomFieldMappingSpec.groovy
@@ -18,11 +18,12 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class EmbeddedWithCustomFieldMappingSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedWithCustomFieldMappingSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([EWCFMPerson, EWCFMPet])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithIdSpecifiedSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithIdSpecifiedSpec.groovy
index ff656d07c4..99737a10e5 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithIdSpecifiedSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithIdSpecifiedSpec.groovy
@@ -18,14 +18,15 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class EmbeddedWithIdSpecifiedSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedWithIdSpecifiedSpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [SystemCustomer, PreorderTreeNode, MultiLevelKpi]
+ manager.addAllDomainClasses([SystemCustomer, PreorderTreeNode, MultiLevelKpi])
}
void "Test that id is saved of embedded entity if specified"() {
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithNonEmbeddedAssociationsSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithNonEmbeddedAssociationsSpec.groovy
index 50dae4f5aa..082a777083 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithNonEmbeddedAssociationsSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithNonEmbeddedAssociationsSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
-class EmbeddedWithNonEmbeddedAssociationsSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedWithNonEmbeddedAssociationsSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Boat, Sailor, Captain])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithNonEmbeddedCollectionsSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithNonEmbeddedCollectionsSpec.groovy
index 58cdbecbc4..36014cebb7 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithNonEmbeddedCollectionsSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithNonEmbeddedCollectionsSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.mongodb.MongoEntity
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class EmbeddedWithNonEmbeddedCollectionsSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedWithNonEmbeddedCollectionsSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Ship, Crew, Sailor, Captain])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithinEmbeddedAssociationSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithinEmbeddedAssociationSpec.groovy
index 73f64fe0a4..b6e46ef6e1 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithinEmbeddedAssociationSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EmbeddedWithinEmbeddedAssociationSpec.groovy
@@ -18,11 +18,12 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class EmbeddedWithinEmbeddedAssociationSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EmbeddedWithinEmbeddedAssociationSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Customer, Vehicle, Maker, Part, Component])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EnumCollectionSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EnumCollectionSpec.groovy
index 507821806e..c25613325a 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EnumCollectionSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EnumCollectionSpec.groovy
@@ -18,11 +18,12 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class EnumCollectionSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EnumCollectionSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Teacher, Teacher2, Teacher3, DerivedTeacher])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EnumTypeSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EnumTypeSpec.groovy
index f4d4f4cadf..623550a588 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EnumTypeSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EnumTypeSpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import jakarta.persistence.EnumType
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
/**
* Created by graemerocher on 06/05/14.
*/
-class EnumTypeSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EnumTypeSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Dist])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EventsWithAbstractInheritanceSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EventsWithAbstractInheritanceSpec.groovy
index 59a2c4f279..7cb315b362 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EventsWithAbstractInheritanceSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/EventsWithAbstractInheritanceSpec.groovy
@@ -18,15 +18,16 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
/**
* Created by graemerocher on 21/04/16.
*/
-class EventsWithAbstractInheritanceSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class EventsWithAbstractInheritanceSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([ConcreteEventDomain])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/FindOrCreateWhereSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/FindOrCreateWhereSpec.groovy
index d8e4e5b2a1..245605f53e 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/FindOrCreateWhereSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/FindOrCreateWhereSpec.groovy
@@ -18,11 +18,12 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Pet
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class FindOrCreateWhereSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class FindOrCreateWhereSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Person, Pet])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GeoJSONTypePersistenceSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GeoJSONTypePersistenceSpec.groovy
index fe736a9e0f..f10c02f378 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GeoJSONTypePersistenceSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GeoJSONTypePersistenceSpec.groovy
@@ -18,6 +18,8 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.mongodb.geo.Box
import grails.mongodb.geo.Circle
import grails.mongodb.geo.GeometryCollection
@@ -31,12 +33,11 @@ import grails.mongodb.geo.Shape
import grails.mongodb.geo.Sphere
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* Created by graemerocher on 17/03/14.
*/
-class GeoJSONTypePersistenceSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class GeoJSONTypePersistenceSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Place, Loc])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GeospacialQuerySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GeospacialQuerySpec.groovy
index 9e1d065aa6..14bb47226f 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GeospacialQuerySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GeospacialQuerySpec.groovy
@@ -18,11 +18,12 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class GeospacialQuerySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class GeospacialQuerySpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Hotel])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GetAllSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GetAllSpec.groovy
index 05e2323c55..f68b3cdcb4 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GetAllSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GetAllSpec.groovy
@@ -18,19 +18,20 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Pet
import grails.gorm.tests.Person
import org.apache.grails.data.testing.tck.domains.PetType
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* @author Graeme Rocher
*/
-class GetAllSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class GetAllSpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [Pet, Person, PetType]
+ manager.addAllDomainClasses([Pet, Person, PetType])
}
void "test that 'null' returns null"() {
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GetAllWithStringIdSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GetAllWithStringIdSpec.groovy
index 3cbbcc310a..ddf43b8165 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GetAllWithStringIdSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GetAllWithStringIdSpec.groovy
@@ -18,15 +18,16 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
/**
* @author Graeme Rocher
*/
-class GetAllWithStringIdSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class GetAllWithStringIdSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([GetItem])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GreaterThanAndLessThanCriteriaSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GreaterThanAndLessThanCriteriaSpec.groovy
index 1db1c9fb6b..a4758054e9 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GreaterThanAndLessThanCriteriaSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/GreaterThanAndLessThanCriteriaSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
-class GreaterThanAndLessThanCriteriaSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class GreaterThanAndLessThanCriteriaSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([GTBook])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/HasOneSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/HasOneSpec.groovy
index d21a847cf9..215790547f 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/HasOneSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/HasOneSpec.groovy
@@ -18,14 +18,15 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* Tests hasOne functionality with MongoDB.
*/
-class HasOneSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class HasOneSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Face, Nose])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/HintQueryArgumentSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/HintQueryArgumentSpec.groovy
index 9157f568de..5915935a8b 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/HintQueryArgumentSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/HintQueryArgumentSpec.groovy
@@ -18,18 +18,19 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import com.mongodb.MongoException
import com.mongodb.MongoQueryException
import grails.gorm.CriteriaBuilder
import grails.gorm.DetachedCriteria
import grails.gorm.tests.Person
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class HintQueryArgumentSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class HintQueryArgumentSpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [Person]
+ manager.addAllDomainClasses([Person])
}
void "Test that hints work on criteria queries"() {
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InListQuerySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InListQuerySpec.groovy
index a0d7a9068f..6c93e5b4d9 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InListQuerySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InListQuerySpec.groovy
@@ -18,18 +18,19 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Person
import grails.gorm.tests.Pet
import org.apache.grails.data.testing.tck.domains.PetType
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
-class InListQuerySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class InListQuerySpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [Pet, Person, PetType]
+ manager.addAllDomainClasses([Pet, Person, PetType])
}
@Issue('https://github.com/grails/grails-data-mongodb/issues/11')
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/IndexAttributesAndCompoundKeySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/IndexAttributesAndCompoundKeySpec.groovy
index 27b36f9d28..ceb34a3374 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/IndexAttributesAndCompoundKeySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/IndexAttributesAndCompoundKeySpec.groovy
@@ -18,17 +18,18 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import com.mongodb.WriteConcern
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
import spock.lang.Issue
/**
* Created by graemerocher on 25/03/14.
*/
-class IndexAttributesAndCompoundKeySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class IndexAttributesAndCompoundKeySpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([ServerStream])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/IndexWithInheritanceSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/IndexWithInheritanceSpec.groovy
index 7f10e17bae..8c4cd81446 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/IndexWithInheritanceSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/IndexWithInheritanceSpec.groovy
@@ -18,15 +18,16 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.annotation.Entity
import grails.mongodb.MongoEntity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* Created by graemerocher on 24/08/2016.
*/
-class IndexWithInheritanceSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class IndexWithInheritanceSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Lion, Mammal])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InheritanceQueryingSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InheritanceQueryingSpec.groovy
index 99c9953cee..968197c8e9 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InheritanceQueryingSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InheritanceQueryingSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
-class InheritanceQueryingSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class InheritanceQueryingSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([A, B, C])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InheritanceWithSingleEndedAssociationSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InheritanceWithSingleEndedAssociationSpec.groovy
index 4025fd9a7a..efa2871e18 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InheritanceWithSingleEndedAssociationSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InheritanceWithSingleEndedAssociationSpec.groovy
@@ -18,9 +18,10 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
import org.grails.datastore.mapping.proxy.EntityProxy
import spock.lang.Issue
@@ -28,7 +29,7 @@ import spock.lang.Issue
/**
* @author Graeme Rocher
*/
-class InheritanceWithSingleEndedAssociationSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class InheritanceWithSingleEndedAssociationSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Node, NodeA, NodeB, NodeC])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InnerEnumSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InnerEnumSpec.groovy
index a26fd259c6..4bfcec683d 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InnerEnumSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/InnerEnumSpec.groovy
@@ -18,14 +18,15 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* Created by graemerocher on 05/01/16.
*/
-class InnerEnumSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class InnerEnumSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([InnerPerson])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/IsNullSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/IsNullSpec.groovy
index 076cab2746..cec6d7e521 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/IsNullSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/IsNullSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
-class IsNullSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class IsNullSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Elephant, Trunk])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/JakartaValidationSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/JakartaValidationSpec.groovy
index 40e143999d..ccdaae316b 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/JakartaValidationSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/JakartaValidationSpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.annotation.Entity
import jakarta.validation.constraints.Digits
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* Created by graemerocher on 30/12/2016.
*/
-class JakartaValidationSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class JakartaValidationSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([JakartaProduct])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/LastUpdatedSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/LastUpdatedSpec.groovy
index 16c8ff5eaf..ec800df2c1 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/LastUpdatedSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/LastUpdatedSpec.groovy
@@ -18,14 +18,15 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* Created by graemerocher on 20/04/16.
*/
-class LastUpdatedSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class LastUpdatedSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([LastUpdateMe])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/LikeQuerySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/LikeQuerySpec.groovy
index 4562fa68a4..a0e3a066ce 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/LikeQuerySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/LikeQuerySpec.groovy
@@ -18,14 +18,15 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Pet
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class LikeQuerySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class LikeQuerySpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [Pet]
+ manager.addAllDomainClasses([Pet])
}
void "Test for like query"() {
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ListOneToManyOrderingSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ListOneToManyOrderingSpec.groovy
index 9115f42ab4..f0bdfd8e03 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ListOneToManyOrderingSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ListOneToManyOrderingSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
-class ListOneToManyOrderingSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class ListOneToManyOrderingSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Judge, Juror])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MapOfDomainsSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MapOfDomainsSpec.groovy
index ecf5a641a8..7c743cf64f 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MapOfDomainsSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MapOfDomainsSpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import groovy.transform.EqualsAndHashCode
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
/**
* Created by graemerocher on 22/04/14.
*/
-class MapOfDomainsSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class MapOfDomainsSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Smartphones])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MarkDirtyFalseSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MarkDirtyFalseSpec.groovy
index 3f0d3a1555..de246fbd10 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MarkDirtyFalseSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MarkDirtyFalseSpec.groovy
@@ -18,14 +18,15 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.dirty.checking.DirtyCheck
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
import org.grails.datastore.mapping.mongo.config.MongoSettings
-class MarkDirtyFalseSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class MarkDirtyFalseSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Bar, BarWithTimestamp])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoDynamicPropertyOnEmbeddedSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoDynamicPropertyOnEmbeddedSpec.groovy
index 4895811410..708836c13f 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoDynamicPropertyOnEmbeddedSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoDynamicPropertyOnEmbeddedSpec.groovy
@@ -18,9 +18,10 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
import org.bson.types.ObjectId
import spock.lang.Issue
@@ -28,7 +29,7 @@ import spock.lang.Issue
/**
* @author Graeme Rocher
*/
-class MongoDynamicPropertyOnEmbeddedSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class MongoDynamicPropertyOnEmbeddedSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Container])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoEntityConfigSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoEntityConfigSpec.groovy
index e936d296fe..a6ec1bf679 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoEntityConfigSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoEntityConfigSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import com.mongodb.client.MongoClient
import com.mongodb.client.MongoDatabase
import grails.mongodb.MongoEntity
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.grails.datastore.mapping.document.config.DocumentPersistentEntity
import org.grails.datastore.mapping.model.PersistentEntity
import org.grails.datastore.mapping.mongo.AbstractMongoSession
@@ -31,7 +32,7 @@ import org.grails.datastore.mapping.mongo.config.MongoAttribute
import org.grails.datastore.mapping.mongo.config.MongoCollection
import com.mongodb.WriteConcern
-class MongoEntityConfigSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class MongoEntityConfigSpec extends MongoDatastoreSpec {
def "Test custom collection config"() {
given:
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoGormEnhancerSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoGormEnhancerSpec.groovy
index f3101eab44..af52cab743 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoGormEnhancerSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoGormEnhancerSpec.groovy
@@ -18,13 +18,14 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import com.mongodb.client.MongoCollection
import grails.mongodb.MongoEntity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class MongoGormEnhancerSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class MongoGormEnhancerSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([MyMongoEntity])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoResultsListIndexSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoResultsListIndexSpec.groovy
index 17fa0f81fc..0221b08356 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoResultsListIndexSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoResultsListIndexSpec.groovy
@@ -18,17 +18,18 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Person
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* @author Graeme Rocher
*/
-class MongoResultsListIndexSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class MongoResultsListIndexSpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [Person]
+ manager.addAllDomainClasses([Person])
}
void "Test that indexing into results works with MongoDB"() {
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoTypesSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoTypesSpec.groovy
index 307f5c79e9..7e3419726f 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoTypesSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/MongoTypesSpec.groovy
@@ -18,14 +18,15 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
import org.bson.types.Binary
import org.bson.types.ObjectId
-class MongoTypesSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class MongoTypesSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([MongoTypes])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NegateInListSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NegateInListSpec.groovy
index 7a933c590e..b0e4e3403c 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NegateInListSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NegateInListSpec.groovy
@@ -18,14 +18,15 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Person
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class NegateInListSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class NegateInListSpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [Person]
+ manager.addAllDomainClasses([Person])
}
void "Test negate in list query"() {
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NegationEnumSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NegationEnumSpec.groovy
index 1dfddbb042..b8122634b0 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NegationEnumSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NegationEnumSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
-class NegationEnumSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class NegationEnumSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([HasEnum])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NullifyPropertySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NullifyPropertySpec.groovy
index 5d5dc5f2ee..41509078ce 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NullifyPropertySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NullifyPropertySpec.groovy
@@ -18,18 +18,19 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Pet
import grails.gorm.tests.Person
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* Tests the nullification of properties
*/
-class NullifyPropertySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class NullifyPropertySpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [Pet, Person]
+ manager.addAllDomainClasses([Pet, Person])
}
void "Test nullify basic property"() {
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NullsAreNotStoredSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NullsAreNotStoredSpec.groovy
index 4f81110ee5..c9fb8be0be 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NullsAreNotStoredSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/NullsAreNotStoredSpec.groovy
@@ -18,9 +18,10 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.mongodb.MongoEntity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
import org.bson.types.ObjectId
import grails.persistence.Entity
@@ -28,7 +29,7 @@ import grails.persistence.Entity
/**
*
*/
-class NullsAreNotStoredSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class NullsAreNotStoredSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([NANSPerson])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ObjectIdPersistenceSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ObjectIdPersistenceSpec.groovy
index 21232bf243..446fd25b45 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ObjectIdPersistenceSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ObjectIdPersistenceSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
-class ObjectIdPersistenceSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class ObjectIdPersistenceSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([MongoObjectIdEntity])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ObjectIdPropertySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ObjectIdPropertySpec.groovy
index aaa3fc6ed4..e79d64bfdd 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ObjectIdPropertySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ObjectIdPropertySpec.groovy
@@ -18,15 +18,16 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
/**
* Created by graemerocher on 29/02/16.
*/
-class ObjectIdPropertySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class ObjectIdPropertySpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([ObjectIdPerson])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OneToManyWithInheritanceSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OneToManyWithInheritanceSpec.groovy
index 0abd53c4b6..6c8ac16e7a 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OneToManyWithInheritanceSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OneToManyWithInheritanceSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.mongodb.MongoEntity
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class OneToManyWithInheritanceSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class OneToManyWithInheritanceSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Animal, Donkey, Carrot])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OneToOneIntegritySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OneToOneIntegritySpec.groovy
index 10bf1feb6c..310f78c4e1 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OneToOneIntegritySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OneToOneIntegritySpec.groovy
@@ -18,18 +18,19 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Face
import grails.gorm.tests.Nose
import grails.gorm.tests.Person
import grails.gorm.tests.Pet
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
-class OneToOneIntegritySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class OneToOneIntegritySpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [Person, Pet, Face, Nose]
+ manager.addAllDomainClasses([Person, Pet, Face, Nose])
}
def "Test persist and retrieve unidirectional many-to-one"() {
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OneToOneNoReferenceSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OneToOneNoReferenceSpec.groovy
index 5e1bc729b1..4bc6b82454 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OneToOneNoReferenceSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OneToOneNoReferenceSpec.groovy
@@ -18,12 +18,13 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
-class OneToOneNoReferenceSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class OneToOneNoReferenceSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([OtherNoRef, NoRef])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OptimisticLockingWithExceptionSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OptimisticLockingWithExceptionSpec.groovy
index cf713989d7..6fbd527709 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OptimisticLockingWithExceptionSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OptimisticLockingWithExceptionSpec.groovy
@@ -18,17 +18,18 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import jakarta.persistence.FlushModeType
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.grails.datastore.mapping.core.OptimisticLockingException
import spock.lang.Issue
/**
* @author Graeme Rocher
*/
-class OptimisticLockingWithExceptionSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class OptimisticLockingWithExceptionSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Counter])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OrderWithPaginationSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OrderWithPaginationSpec.groovy
index a630d402d5..8df973d549 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OrderWithPaginationSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/OrderWithPaginationSpec.groovy
@@ -18,18 +18,19 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Plant
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
/**
* Created by graemerocher on 14/03/14.
*/
-class OrderWithPaginationSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class OrderWithPaginationSpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [Plant]
+ manager.addAllDomainClasses([Plant])
}
@Issue('GPMONGODB-241')
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ProjectionsSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ProjectionsSpec.groovy
index db87433168..305c4cfeb6 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ProjectionsSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ProjectionsSpec.groovy
@@ -18,17 +18,18 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.DetachedCriteria
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
import spock.lang.Issue
/**
* Created by graemerocher on 15/04/14.
*/
-class ProjectionsSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class ProjectionsSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Dog])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/QueriesWithIdenticallyNamedPartsSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/QueriesWithIdenticallyNamedPartsSpec.groovy
index 9b28ee6a40..36d278702e 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/QueriesWithIdenticallyNamedPartsSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/QueriesWithIdenticallyNamedPartsSpec.groovy
@@ -18,9 +18,10 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
import spock.lang.Issue
@@ -28,7 +29,7 @@ import spock.lang.Issue
* Test cases for GPMONGODB-296 (and GPMONGODB-302).
*/
@Issue('GPMONGODB-296')
-class QueriesWithIdenticallyNamedPartsSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class QueriesWithIdenticallyNamedPartsSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Foo])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ReadConcernArgumentSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ReadConcernArgumentSpec.groovy
index 4d9f7f1c7b..b4500777ac 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ReadConcernArgumentSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ReadConcernArgumentSpec.groovy
@@ -18,23 +18,24 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import com.mongodb.MongoQueryException
import com.mongodb.ReadConcern
import com.mongodb.WriteConcern
import grails.gorm.CriteriaBuilder
import grails.gorm.DetachedCriteria
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.grails.datastore.mapping.mongo.MongoCodecSession
import spock.lang.Ignore
/**
* Created by graemerocher on 03/02/2017.
*/
-class ReadConcernArgumentSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class ReadConcernArgumentSpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [grails.gorm.tests.Person]
+ manager.addAllDomainClasses([grails.gorm.tests.Person])
}
@Ignore
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ReadManyObjectsSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ReadManyObjectsSpec.groovy
index 06dcd22964..a16eab284b 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ReadManyObjectsSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ReadManyObjectsSpec.groovy
@@ -18,9 +18,10 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
import org.bson.types.ObjectId
import spock.lang.Requires
@@ -31,7 +32,7 @@ import spock.lang.Requires
@Requires({
System.getenv().get('CI') as Boolean
})
-class ReadManyObjectsSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class ReadManyObjectsSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([ProfileDoc])
}
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ResultsWithGroovyCollectionMethodsSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ResultsWithGroovyCollectionMethodsSpec.groovy
index d544d3aaf5..a146973208 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ResultsWithGroovyCollectionMethodsSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/ResultsWithGroovyCollectionMethodsSpec.groovy
@@ -18,18 +18,19 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Plant
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
/**
* Created by graemerocher on 16/04/14.
*/
-class ResultsWithGroovyCollectionMethodsSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class ResultsWithGroovyCollectionMethodsSpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [Plant]
+ manager.addAllDomainClasses([Plant])
}
@Issue('GPMONGODB-316')
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SchemalessSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SchemalessSpec.groovy
index 07720fc47d..e5750d351b 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SchemalessSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SchemalessSpec.groovy
@@ -18,13 +18,14 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Plant
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class SchemalessSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class SchemalessSpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [Plant]
+ manager.addAllDomainClasses([Plant])
}
def "Test attach additional data"() {
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SessionCachingSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SessionCachingSpec.groovy
index 6ff5f77396..4b79d43b2f 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SessionCachingSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SessionCachingSpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Person
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* Tests related to caching of entities.
*/
-class SessionCachingSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class SessionCachingSpec extends MongoDatastoreSpec {
void setupSpec() {
- manager.domainClasses += [Person]
+ manager.addAllDomainClasses([Person])
}
void "test cache used for get"() {
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SetRetrievalSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SetRetrievalSpec.groovy
index 723aa3d403..736a6c4349 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SetRetrievalSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SetRetrievalSpec.groovy
@@ -18,11 +18,12 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import com.mongodb.client.MongoDatabase
import grails.mongodb.MongoEntity
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.Document
import org.bson.types.ObjectId
import spock.lang.Issue
@@ -30,7 +31,7 @@ import spock.lang.Issue
/**
* Created by graemerocher on 01/04/16.
*/
-class SetRetrievalSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class SetRetrievalSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Team, Player])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SimpleHasManySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SimpleHasManySpec.groovy
index b055357e2e..7879519146 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SimpleHasManySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SimpleHasManySpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
import spock.lang.Issue
/**
* Created by graemerocher on 25/03/14.
*/
-class SimpleHasManySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class SimpleHasManySpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Book, Chapter])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/StatelessSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/StatelessSpec.groovy
index 79cdfeba5a..bafb0bacc4 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/StatelessSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/StatelessSpec.groovy
@@ -18,10 +18,11 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class StatelessSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class StatelessSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Volcano])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SwitchDatabaseAtRuntimeSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SwitchDatabaseAtRuntimeSpec.groovy
index 76b1c98e05..11113efea6 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SwitchDatabaseAtRuntimeSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/SwitchDatabaseAtRuntimeSpec.groovy
@@ -18,14 +18,15 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.tests.Person
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
/**
* @author Graeme Rocher
*/
-class SwitchDatabaseAtRuntimeSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class SwitchDatabaseAtRuntimeSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Person])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/TestSearchSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/TestSearchSpec.groovy
index ed3305b25d..4e4f99d441 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/TestSearchSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/TestSearchSpec.groovy
@@ -18,16 +18,17 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.mongodb.MongoEntity
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import org.bson.types.ObjectId
/**
* Created by graemerocher on 14/04/14.
*/
-class TestSearchSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class TestSearchSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Product])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/TransientPropertySpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/TransientPropertySpec.groovy
index e3f1a98aeb..d3f79584ca 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/TransientPropertySpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/TransientPropertySpec.groovy
@@ -18,11 +18,12 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
-class TransientPropertySpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class TransientPropertySpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([Cow])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/WhereQueryInCriteriaSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/WhereQueryInCriteriaSpec.groovy
index 59bec2a66a..27aab59678 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/WhereQueryInCriteriaSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/WhereQueryInCriteriaSpec.groovy
@@ -18,13 +18,14 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.gorm.annotation.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Ignore
import spock.lang.Shared
-class WhereQueryInCriteriaSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class WhereQueryInCriteriaSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([InCritOwner, InCritDog])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/WriteConcernSpec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/WriteConcernSpec.groovy
index c563b93237..be2fbcd4b6 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/WriteConcernSpec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/WriteConcernSpec.groovy
@@ -18,10 +18,11 @@
*/
package org.grails.datastore.gorm.mongo
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import com.mongodb.WriteConcern
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
import static grails.mongodb.mapping.MappingBuilder.document
@@ -29,7 +30,7 @@ import static grails.mongodb.mapping.MappingBuilder.document
/**
* Tests usage of WriteConcern
*/
-class WriteConcernSpec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class WriteConcernSpec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([SafeWrite, UnacknowledgedWrite])
diff --git a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/bugs/GPMongoDB295Spec.groovy b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/bugs/GPMongoDB295Spec.groovy
index 93c82fbcc8..8e609d4b3b 100644
--- a/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/bugs/GPMongoDB295Spec.groovy
+++ b/grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/bugs/GPMongoDB295Spec.groovy
@@ -18,15 +18,16 @@
*/
package org.grails.datastore.gorm.mongo.bugs
+import org.apache.grails.data.mongo.core.MongoDatastoreSpec
+
import grails.persistence.Entity
import org.apache.grails.data.mongo.core.GrailsDataMongoTckManager
-import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec
import spock.lang.Issue
/**
* @author Graeme Rocher
*/
-class GPMongoDB295Spec extends GrailsDataTckSpec<GrailsDataMongoTckManager> {
+class GPMongoDB295Spec extends MongoDatastoreSpec {
void setupSpec() {
manager.addAllDomainClasses([InheritUser, ObjParent, UserGroup, User, UserObject])
}