Search in sources :

Example 16 with Code

use of org.bson.types.Code in project spring-data-mongodb by spring-projects.

the class MappingMongoConverterUnitTests method mapsValueToExplicitTargetType.

// DATAMONGO-1849
@Test
void mapsValueToExplicitTargetType() {
    WithExplicitTargetTypes source = new WithExplicitTargetTypes();
    source.script = "if (a > b) a else b";
    org.bson.Document target = new org.bson.Document();
    converter.write(source, target);
    assertThat(target.get("script")).isEqualTo(new Code(source.script));
}
Also used : Document(org.springframework.data.mongodb.core.mapping.Document) EqualsAndHashCode(lombok.EqualsAndHashCode) Code(org.bson.types.Code) Test(org.junit.jupiter.api.Test)

Example 17 with Code

use of org.bson.types.Code in project spring-data-mongodb by spring-projects.

the class AbstractMongoConverter method initializeConverters.

/**
 * Registers additional converters that will be available when using the {@link ConversionService} directly (e.g. for
 * id conversion). These converters are not custom conversions as they'd introduce unwanted conversions (e.g.
 * ObjectId-to-String).
 */
private void initializeConverters() {
    conversionService.addConverter(ObjectIdToStringConverter.INSTANCE);
    conversionService.addConverter(StringToObjectIdConverter.INSTANCE);
    if (!conversionService.canConvert(ObjectId.class, BigInteger.class)) {
        conversionService.addConverter(ObjectIdToBigIntegerConverter.INSTANCE);
    }
    if (!conversionService.canConvert(BigInteger.class, ObjectId.class)) {
        conversionService.addConverter(BigIntegerToObjectIdConverter.INSTANCE);
    }
    if (!conversionService.canConvert(Date.class, Long.class)) {
        conversionService.addConverter(ConverterBuilder.writing(Date.class, Long.class, Date::getTime).getWritingConverter());
    }
    if (!conversionService.canConvert(Long.class, Date.class)) {
        conversionService.addConverter(ConverterBuilder.reading(Long.class, Date.class, Date::new).getReadingConverter());
    }
    if (!conversionService.canConvert(ObjectId.class, Date.class)) {
        conversionService.addConverter(ConverterBuilder.reading(ObjectId.class, Date.class, objectId -> new Date(objectId.getTimestamp())).getReadingConverter());
    }
    conversionService.addConverter(ConverterBuilder.reading(Code.class, String.class, Code::getCode).getReadingConverter());
    conversions.registerConvertersIn(conversionService);
}
Also used : ObjectId(org.bson.types.ObjectId) BigInteger(java.math.BigInteger) Code(org.bson.types.Code) Date(java.util.Date)

Example 18 with Code

use of org.bson.types.Code in project spring-data-mongodb by spring-projects.

the class QueryMapperUnitTests method shouldConvertPropertyWithExplicitTargetType.

// DATAMONGO-1849
@Test
void shouldConvertPropertyWithExplicitTargetType() {
    String script = "if (a > b) a else b";
    Query query = new Query(where("script").is(script));
    org.bson.Document document = mapper.getMappedObject(query.getQueryObject(), context.getPersistentEntity(WithExplicitTargetTypes.class));
    assertThat(document).isEqualTo(new org.bson.Document("script", new Code(script)));
}
Also used : BasicQuery(org.springframework.data.mongodb.core.query.BasicQuery) TextQuery(org.springframework.data.mongodb.core.query.TextQuery) Query(org.springframework.data.mongodb.core.query.Query) Code(org.bson.types.Code) Test(org.junit.jupiter.api.Test)

Example 19 with Code

use of org.bson.types.Code in project spring-data-mongodb by spring-projects.

the class QueryMapperUnitTests method shouldConvertCollectionPropertyWithExplicitTargetType.

// DATAMONGO-1849
@Test
void shouldConvertCollectionPropertyWithExplicitTargetType() {
    String script = "if (a > b) a else b";
    Query query = new Query(where("scripts").is(script));
    org.bson.Document document = mapper.getMappedObject(query.getQueryObject(), context.getPersistentEntity(WithExplicitTargetTypes.class));
    assertThat(document).isEqualTo(new org.bson.Document("scripts", new Code(script)));
}
Also used : BasicQuery(org.springframework.data.mongodb.core.query.BasicQuery) TextQuery(org.springframework.data.mongodb.core.query.TextQuery) Query(org.springframework.data.mongodb.core.query.Query) Code(org.bson.types.Code) Test(org.junit.jupiter.api.Test)

Aggregations

Code (org.bson.types.Code)19 ObjectId (org.bson.types.ObjectId)10 Test (org.junit.Test)9 Date (java.util.Date)8 CodeWScope (org.bson.types.CodeWScope)8 Binary (org.bson.types.Binary)7 MaxKey (org.bson.types.MaxKey)7 MinKey (org.bson.types.MinKey)7 BSONTimestamp (org.bson.types.BSONTimestamp)6 SimpleDateFormat (java.text.SimpleDateFormat)4 Test (org.junit.jupiter.api.Test)4 BasicDBObject (com.mongodb.BasicDBObject)3 DBRef (com.mongodb.DBRef)3 JavaScript (de.undercouch.bson4jackson.types.JavaScript)3 GregorianCalendar (java.util.GregorianCalendar)3 SimpleTimeZone (java.util.SimpleTimeZone)3 BSONObject (org.bson.BSONObject)3 BasicBSONObject (org.bson.BasicBSONObject)3 Document (org.bson.Document)3 ArrayList (java.util.ArrayList)2