diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java index 5f104634d..ef61aae62 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java @@ -408,7 +408,7 @@ public abstract class AbstractMongoQuery implements RepositoryQuery { return operations.findAllAndRemove(query, metadata.getJavaType()); } - WriteResult writeResult = operations.remove(query, metadata.getCollectionName()); + WriteResult writeResult = operations.remove(query, metadata.getJavaType(), metadata.getCollectionName()); return writeResult != null ? writeResult.getN() : 0L; } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstracMongoQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java similarity index 96% rename from spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstracMongoQueryUnitTests.java rename to spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java index b70c102d8..ea75a89c4 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstracMongoQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java @@ -54,7 +54,7 @@ import com.mongodb.WriteResult; * @author Oliver Gierke */ @RunWith(MockitoJUnitRunner.class) -public class AbstracMongoQueryUnitTests { +public class AbstractMongoQueryUnitTests { @Mock RepositoryMetadata metadataMock; @Mock MongoOperations mongoOperationsMock; @@ -88,7 +88,8 @@ public class AbstracMongoQueryUnitTests { createQueryForMethod("deletePersonByLastname", String.class).setDeleteQuery(true).execute(new Object[] { "booh" }); - verify(this.mongoOperationsMock, times(1)).remove(Matchers.any(Query.class), Matchers.eq("persons")); + verify(this.mongoOperationsMock, times(1)).remove(Matchers.any(Query.class), Matchers.eq(Person.class), + Matchers.eq("persons")); verify(this.mongoOperationsMock, times(0)).find(Matchers.any(Query.class), Matchers.any(Class.class), Matchers.anyString()); } @@ -122,19 +123,21 @@ public class AbstracMongoQueryUnitTests { /** * @see DATAMONGO-566 + * @see DATAMONGO-978 */ @Test public void testDeleteExecutionReturnsNrDocumentsDeletedFromWriteResult() { when(writeResultMock.getN()).thenReturn(100); - when(this.mongoOperationsMock.remove(Matchers.any(Query.class), Matchers.eq("persons"))) + when(this.mongoOperationsMock.remove(Matchers.any(Query.class), Matchers.eq(Person.class), Matchers.eq("persons"))) .thenReturn(writeResultMock); MongoQueryFake query = createQueryForMethod("deletePersonByLastname", String.class); query.setDeleteQuery(true); assertThat(query.execute(new Object[] { "fake" }), is((Object) 100L)); - verify(this.mongoOperationsMock, times(1)).remove(Matchers.any(Query.class), Matchers.eq("persons")); + verify(this.mongoOperationsMock, times(1)).remove(Matchers.any(Query.class), Matchers.eq(Person.class), + Matchers.eq("persons")); } private MongoQueryFake createQueryForMethod(String methodName, Class... paramTypes) {