use of dev.morphia.mapping.codec.pojo.EntityModel in project morphia by mongodb.
the class IndexHelperTest method calculateBadKeys.
@Test
public void calculateBadKeys() {
EntityModel model = getMapper().getEntityModel(IndexedClass.class);
Index index = indexBuilder().fields(fieldBuilder().value("texting").type(IndexType.TEXT).weight(1).build(), fieldBuilder().value("nest").type(IndexType.DESC).build()).build();
try {
getIndexHelper().calculateKeys(model, index);
fail("Validation should have failed on the bad key");
} catch (MappingException e) {
// all good
}
index = indexBuilder().fields(fieldBuilder().value("texting").type(IndexType.TEXT).weight(1).build(), fieldBuilder().value("nest").type(IndexType.DESC).build()).options(indexOptionsBuilder().disableValidation(true).build()).build();
getIndexHelper().calculateKeys(model, index);
}
use of dev.morphia.mapping.codec.pojo.EntityModel in project morphia by mongodb.
the class IndexHelperTest method index.
@Test
public void index() {
MongoCollection<Document> collection = getDatabase().getCollection("indexes");
EntityModel model = getMapper().getEntityModel(IndexedClass.class);
IndexOptions options = indexOptionsBuilder().name("index_name").background(true).collation(collation().build()).disableValidation(true).language("en").languageOverride("de").sparse(true).unique(true).build();
Index index = indexBuilder().fields(fieldBuilder().value("indexName").build(), fieldBuilder().value("text").type(IndexType.DESC).build()).options(options).build();
getIndexHelper().createIndex(collection, model, index);
List<Document> indexInfo = getIndexInfo(IndexedClass.class);
for (Document document : indexInfo) {
if (document.get("name").equals("indexName")) {
checkIndex(document);
assertEquals(document.get("default_language"), "en");
assertEquals(document.get("language_override"), "de");
assertEquals(document.get("collation"), new Document().append("locale", "en").append("caseLevel", true).append("caseFirst", "upper").append("strength", 5).append("numericOrdering", true).append("alternate", "shifted").append("maxVariable", "space").append("backwards", true).append("normalization", true).append("version", "57.1"));
}
}
}
use of dev.morphia.mapping.codec.pojo.EntityModel in project morphia by mongodb.
the class IndexHelperTest method findField.
@Test
public void findField() {
getMapper().map(MappedInterface.class, MappedInterfaceImpl.class, AbstractParent.class, IndexedClass.class);
EntityModel model = getMapper().getEntityModel(IndexedClass.class);
IndexOptions options = indexOptionsBuilder().build();
assertEquals(getIndexHelper().findField(model, options, "indexName"), "indexName");
assertEquals(getIndexHelper().findField(model, options, "nested.name"), "nest.name");
assertEquals(getIndexHelper().findField(model, options, "nest.name"), "nest.name");
try {
assertEquals(getIndexHelper().findField(model, options, "nest.whatsit"), "nest.whatsit");
fail("Should have failed on the bad index path");
} catch (ValidationException e) {
// alles ist gut
}
assertEquals(getIndexHelper().findField(model, indexOptionsBuilder().disableValidation(true).build(), "nest.whatsit.nested.more.deeply.than.the.object.model"), "nest.whatsit.nested.more.deeply.than.the.object.model");
}
use of dev.morphia.mapping.codec.pojo.EntityModel in project morphia by mongodb.
the class IndexHelperTest method weightsOnNonTextIndex.
@Test(expectedExceptions = MappingException.class)
public void weightsOnNonTextIndex() {
MongoCollection<Document> indexes = getDatabase().getCollection("indexes");
EntityModel model = getMapper().getEntityModel(IndexedClass.class);
Index index = indexBuilder().fields(fieldBuilder().value("name").weight(10).build()).build();
getIndexHelper().createIndex(indexes, model, index);
}
use of dev.morphia.mapping.codec.pojo.EntityModel in project morphia by mongodb.
the class IndexHelperTest method textPartialFilters.
@Test
public void textPartialFilters() {
MongoCollection<Document> collection = getDatabase().getCollection("indexes");
EntityModel model = getMapper().getEntityModel(IndexedClass.class);
Text text = textBuilder().value(4).options(indexOptionsBuilder().partialFilter("{ name : { $gt : 13 } }").build()).build();
getIndexHelper().createIndex(collection, model, getIndexHelper().convert(text, "text"));
findPartialIndex(Document.parse(text.options().partialFilter()));
}
Aggregations