Search in sources :

Example 1 with Version

use of org.springframework.data.util.Version in project spring-data-mongodb by spring-projects.

the class MongoVersionRule method apply.

@Override
public Statement apply(final Statement base, Description description) {
    return new Statement() {

        @Override
        public void evaluate() throws Throwable {
            if (!getCurrentVersion().equals(ANY)) {
                Version minVersion = MongoVersionRule.this.minVersion.equals(ANY) ? DEFAULT_LOW : MongoVersionRule.this.minVersion;
                Version maxVersion = MongoVersionRule.this.maxVersion.equals(ANY) ? DEFAULT_HIGH : MongoVersionRule.this.maxVersion;
                if (MongoVersionRule.this.minVersion.equals(ANY) && MongoVersionRule.this.maxVersion.equals(ANY)) {
                    MongoVersion version = description.getAnnotation(MongoVersion.class);
                    if (version != null) {
                        minVersion = Version.parse(version.asOf());
                        maxVersion = Version.parse(version.until());
                    }
                }
                validateVersion(minVersion, maxVersion);
            }
            base.evaluate();
        }
    };
}
Also used : Version(org.springframework.data.util.Version) Statement(org.junit.runners.model.Statement)

Example 2 with Version

use of org.springframework.data.util.Version in project spring-data-mongodb by spring-projects.

the class DefaultReactiveIndexOperationsTests method shouldCreateIndexWithCollationCorrectly.

// DATAMONGO-1518
@Test
public void shouldCreateIndexWithCollationCorrectly() {
    assumeTrue(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_FOUR));
    IndexDefinition id = new Index().named("with-collation").on("xyz", Direction.ASC).collation(Collation.of("de_AT").caseFirst(CaseFirst.off()));
    StepVerifier.create(indexOps.ensureIndex(id)).expectNextCount(1).verifyComplete();
    Document expected = // 
    new Document("locale", "de_AT").append("caseLevel", // 
    false).append("caseFirst", // 
    "off").append("strength", // 
    3).append("numericOrdering", // 
    false).append("alternate", // 
    "non-ignorable").append("maxVariable", // 
    "punct").append("normalization", // 
    false).append("backwards", false);
    // 
    StepVerifier.create(indexOps.getIndexInfo().filter(this.indexByName("with-collation"))).consumeNextWith(indexInfo -> {
        assertThat(indexInfo.getCollation()).isPresent();
        // version is set by MongoDB server - we remove it to avoid errors when upgrading server version.
        Document result = indexInfo.getCollation().get();
        result.remove("version");
        assertThat(result).isEqualTo(expected);
    }).verifyComplete();
}
Also used : Document(org.bson.Document) StepVerifier(reactor.test.StepVerifier) AbstractReactiveMongoConfiguration(org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration) RunWith(org.junit.runner.RunWith) Autowired(org.springframework.beans.factory.annotation.Autowired) MongoClients(com.mongodb.reactivestreams.client.MongoClients) Collation(org.springframework.data.mongodb.core.query.Collation) MongoCollection(com.mongodb.reactivestreams.client.MongoCollection) Index(org.springframework.data.mongodb.core.index.Index) MongoClient(com.mongodb.reactivestreams.client.MongoClient) SpringJUnit4ClassRunner(org.springframework.test.context.junit4.SpringJUnit4ClassRunner) Assertions(org.assertj.core.api.Assertions) Version(org.springframework.data.util.Version) Assume(org.junit.Assume) Direction(org.springframework.data.domain.Sort.Direction) CaseFirst(org.springframework.data.mongodb.core.query.Collation.CaseFirst) IndexInfo(org.springframework.data.mongodb.core.index.IndexInfo) Before(org.junit.Before) QueryMapper(org.springframework.data.mongodb.core.convert.QueryMapper) Predicate(java.util.function.Predicate) Test(org.junit.Test) Criteria(org.springframework.data.mongodb.core.query.Criteria) Field(org.springframework.data.mongodb.core.mapping.Field) Configuration(org.springframework.context.annotation.Configuration) PartialIndexFilter(org.springframework.data.mongodb.core.index.PartialIndexFilter) ContextConfiguration(org.springframework.test.context.ContextConfiguration) IndexDefinition(org.springframework.data.mongodb.core.index.IndexDefinition) IndexDefinition(org.springframework.data.mongodb.core.index.IndexDefinition) Index(org.springframework.data.mongodb.core.index.Index) Document(org.bson.Document) Test(org.junit.Test)

Aggregations

Version (org.springframework.data.util.Version)2 MongoClient (com.mongodb.reactivestreams.client.MongoClient)1 MongoClients (com.mongodb.reactivestreams.client.MongoClients)1 MongoCollection (com.mongodb.reactivestreams.client.MongoCollection)1 Predicate (java.util.function.Predicate)1 Assertions (org.assertj.core.api.Assertions)1 Document (org.bson.Document)1 Assume (org.junit.Assume)1 Before (org.junit.Before)1 Test (org.junit.Test)1 RunWith (org.junit.runner.RunWith)1 Statement (org.junit.runners.model.Statement)1 Autowired (org.springframework.beans.factory.annotation.Autowired)1 Configuration (org.springframework.context.annotation.Configuration)1 Direction (org.springframework.data.domain.Sort.Direction)1 AbstractReactiveMongoConfiguration (org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration)1 QueryMapper (org.springframework.data.mongodb.core.convert.QueryMapper)1 Index (org.springframework.data.mongodb.core.index.Index)1 IndexDefinition (org.springframework.data.mongodb.core.index.IndexDefinition)1 IndexInfo (org.springframework.data.mongodb.core.index.IndexInfo)1