@ -69,6 +69,8 @@ import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.core.BulkOperations.BulkMode ;
import org.springframework.data.mongodb.core.BulkOperations.BulkMode ;
import org.springframework.data.mongodb.core.aggregation.StringOperators ;
import org.springframework.data.mongodb.core.aggregation.StringOperators ;
import org.springframework.data.mongodb.core.convert.LazyLoadingProxy ;
import org.springframework.data.mongodb.core.convert.LazyLoadingProxy ;
import org.springframework.data.mongodb.core.convert.MongoCustomConversions ;
import org.springframework.data.mongodb.core.convert.MongoCustomConversions.MongoConverterConfigurationAdapter ;
import org.springframework.data.mongodb.core.geo.GeoJsonPoint ;
import org.springframework.data.mongodb.core.geo.GeoJsonPoint ;
import org.springframework.data.mongodb.core.index.Index ;
import org.springframework.data.mongodb.core.index.Index ;
import org.springframework.data.mongodb.core.index.IndexField ;
import org.springframework.data.mongodb.core.index.IndexField ;
@ -1789,6 +1791,30 @@ public class MongoTemplateTests {
assertThat ( result . get ( 0 ) . date ) . isNotNull ( ) ;
assertThat ( result . get ( 0 ) . date ) . isNotNull ( ) ;
}
}
@Test // GH-4390
void nativeDriverDateTimeCodecShouldBeApplied /*when configured*/ ( ) {
MongoTestTemplate ops = new MongoTestTemplate ( cfg - > {
cfg . configureConversion ( conversion - > {
conversion . customConversions (
MongoCustomConversions . create ( MongoConverterConfigurationAdapter : : useNativeDriverJavaTimeCodecs ) ) ;
} ) ;
} ) ;
TypeWithDate source = new TypeWithDate ( ) ;
source . id = "id-1" ;
source . date = Date . from ( Instant . now ( ) ) ;
ops . save ( source ) ;
var dbDate = ops . execute ( TypeWithDate . class ,
collection - > collection . find ( new org . bson . Document ( "_id" , source . id ) ) . first ( ) . get ( "date" ) ) ;
TypeWithDate target = ops . findOne ( query ( where ( "date" ) . is ( source . date ) ) , TypeWithDate . class ) ;
assertThat ( target . date ) . isEqualTo ( source . date ) . isEqualTo ( dbDate ) ;
}
@Test // DATAMONGO-540
@Test // DATAMONGO-540
public void findOneAfterUpsertForNonExistingObjectReturnsTheInsertedObject ( ) {
public void findOneAfterUpsertForNonExistingObjectReturnsTheInsertedObject ( ) {