Search in sources :

Example 26 with MongoMappingContext

use of org.springframework.data.mongodb.core.mapping.MongoMappingContext in project spring-data-mongodb by spring-projects.

the class MongoPersistentEntityIndexCreatorUnitTests method isIndexCreatorForMappingContextHandedIntoConstructor.

// DATAMONGO-530
@Test
void isIndexCreatorForMappingContextHandedIntoConstructor() {
    MongoMappingContext mappingContext = new MongoMappingContext();
    mappingContext.initialize();
    MongoPersistentEntityIndexCreator creator = new MongoPersistentEntityIndexCreator(mappingContext, mongoTemplate);
    assertThat(creator.isIndexCreatorFor(mappingContext)).isTrue();
    assertThat(creator.isIndexCreatorFor(new MongoMappingContext())).isFalse();
}
Also used : MongoMappingContext(org.springframework.data.mongodb.core.mapping.MongoMappingContext) Test(org.junit.jupiter.api.Test)

Example 27 with MongoMappingContext

use of org.springframework.data.mongodb.core.mapping.MongoMappingContext in project spring-data-mongodb by spring-projects.

the class MongoPersistentEntityIndexCreatorUnitTests method autoGeneratedIndexNameShouldGenerateNoName.

// DATAMONGO-827
@Test
void autoGeneratedIndexNameShouldGenerateNoName() {
    MongoMappingContext mappingContext = prepareMappingContext(EntityWithGeneratedIndexName.class);
    new MongoPersistentEntityIndexCreator(mappingContext, mongoTemplate);
    assertThat(keysCaptor.getValue()).doesNotContainKey("name").containsKey("lastname");
    assertThat(optionsCaptor.getValue().getName()).isNull();
}
Also used : MongoMappingContext(org.springframework.data.mongodb.core.mapping.MongoMappingContext) Test(org.junit.jupiter.api.Test)

Example 28 with MongoMappingContext

use of org.springframework.data.mongodb.core.mapping.MongoMappingContext in project spring-data-mongodb by spring-projects.

the class MongoPersistentEntityIndexCreatorUnitTests method expireAfterSecondsIfConfigured.

// DATAMONGO-544
@Test
void expireAfterSecondsIfConfigured() {
    MongoMappingContext mappingContext = prepareMappingContext(Milk.class);
    new MongoPersistentEntityIndexCreator(mappingContext, mongoTemplate);
    assertThat(keysCaptor.getValue()).isNotNull().containsKey("expiry");
    assertThat(optionsCaptor.getValue().getExpireAfter(TimeUnit.SECONDS)).isEqualTo(60);
}
Also used : MongoMappingContext(org.springframework.data.mongodb.core.mapping.MongoMappingContext) Test(org.junit.jupiter.api.Test)

Example 29 with MongoMappingContext

use of org.springframework.data.mongodb.core.mapping.MongoMappingContext in project spring-data-mongodb by spring-projects.

the class MongoQueryCreatorUnitTests method assertBindsDistanceToQuery.

private void assertBindsDistanceToQuery(Point point, Distance distance, Query reference) throws Exception {
    PartTree tree = new PartTree("findByLocationNearAndFirstname", org.springframework.data.mongodb.repository.Person.class);
    Method method = PersonRepository.class.getMethod("findByLocationNearAndFirstname", Point.class, Distance.class, String.class);
    MongoQueryMethod queryMethod = new MongoQueryMethod(method, new DefaultRepositoryMetadata(PersonRepository.class), new SpelAwareProxyProjectionFactory(), new MongoMappingContext());
    MongoParameterAccessor accessor = new MongoParametersParameterAccessor(queryMethod, new Object[] { point, distance, "Dave" });
    Query query = new MongoQueryCreator(tree, new ConvertingParameterAccessor(converter, accessor), context).createQuery();
    assertThat(query).isEqualTo(query);
}
Also used : DefaultRepositoryMetadata(org.springframework.data.repository.core.support.DefaultRepositoryMetadata) Query(org.springframework.data.mongodb.core.query.Query) SpelAwareProxyProjectionFactory(org.springframework.data.projection.SpelAwareProxyProjectionFactory) DefaultRepositoryMetadata(org.springframework.data.repository.core.support.DefaultRepositoryMetadata) Method(java.lang.reflect.Method) MongoMappingContext(org.springframework.data.mongodb.core.mapping.MongoMappingContext) PartTree(org.springframework.data.repository.query.parser.PartTree)

Example 30 with MongoMappingContext

use of org.springframework.data.mongodb.core.mapping.MongoMappingContext in project spring-data-mongodb by spring-projects.

the class SpringDataMongodbSerializerUnitTests method takesCustomConversionForEnumsIntoAccount.

// DATAMONGO-1485
@Test
public void takesCustomConversionForEnumsIntoAccount() {
    MongoMappingContext context = new MongoMappingContext();
    MappingMongoConverter converter = new MappingMongoConverter(dbFactory, context);
    converter.setCustomConversions(new MongoCustomConversions(Collections.singletonList(new SexTypeWriteConverter())));
    converter.afterPropertiesSet();
    this.converter = converter;
    this.serializer = new SpringDataMongodbSerializer(this.converter);
    Object mappedPredicate = serializer.handle(QPerson.person.sex.eq(Sex.FEMALE));
    assertThat(mappedPredicate).isInstanceOf(Document.class);
    assertThat(((Document) mappedPredicate).get("sex")).isEqualTo("f");
}
Also used : MongoMappingContext(org.springframework.data.mongodb.core.mapping.MongoMappingContext) MongoCustomConversions(org.springframework.data.mongodb.core.convert.MongoCustomConversions) MappingMongoConverter(org.springframework.data.mongodb.core.convert.MappingMongoConverter) Document(org.bson.Document) Test(org.junit.jupiter.api.Test)

Aggregations

MongoMappingContext (org.springframework.data.mongodb.core.mapping.MongoMappingContext)118 MappingMongoConverter (org.springframework.data.mongodb.core.convert.MappingMongoConverter)56 Test (org.junit.jupiter.api.Test)41 BeforeEach (org.junit.jupiter.api.BeforeEach)31 Document (org.bson.Document)19 QueryMapper (org.springframework.data.mongodb.core.convert.QueryMapper)19 DefaultDbRefResolver (org.springframework.data.mongodb.core.convert.DefaultDbRefResolver)13 MongoCustomConversions (org.springframework.data.mongodb.core.convert.MongoCustomConversions)10 Bson (org.bson.conversions.Bson)8 Before (org.junit.Before)8 Test (org.junit.Test)8 MongoTemplate (org.springframework.data.mongodb.core.MongoTemplate)8 IndexOptions (com.mongodb.client.model.IndexOptions)7 CustomConversions (org.springframework.data.convert.CustomConversions)6 DbRefResolver (org.springframework.data.mongodb.core.convert.DbRefResolver)6 Document (org.springframework.data.mongodb.core.mapping.Document)6 Set (java.util.Set)5 MongoDbFactory (org.springframework.data.mongodb.MongoDbFactory)5 CountOptions (com.mongodb.client.model.CountOptions)4 List (java.util.List)4