mongodb - Apply default mapping to mock Mongo domains in Grails unit test -
i've started using new mocking back upwards in grails-datastore-gorm-mongodb. app defaults domain mappings utilize references when persisting relationships mongodb. need find way mocked mongo same thing. how apply same default mapping in unit test?
in config.groovy, looks this:
// configure mongo utilize dbrefs: grails.mongo.default.mapping = { '*'(reference: true) } here's sample of code use:
import spock.lang.* import grails.test.mixin.mongodb.mongodbtestmixin import com.github.fakemongo.fongo @mixin([mongodbtestmixin]) class myspec extends specification { def setup() { mongodomain(new fongo("test").mongo, [ mydomain ]) new mydomain(name: 'domain').save(validate: false, flush: true) } } how apply config test code?
i'm using grails 2.3.9 , mongodb 3.0.1 plugin.
looks mongodbtestmixin offers few flavors of mongodomain method:
mongodomain(mongo mongo, collection<class> persistentclasses) - sets gorm mongodb domain given mongo instance , domain classes mongodomain(map config, collection<class> persistentclasses) - sets gorm mongodb domain given configuration , domain classes the 2nd alternative allows pass configuration map allows configure mongo utilize dbrefs (otherwise empty configuration used, see mongodbdatastorespringinitializer ). method not allow pass fongo instance.
can seek to:
ask grails team add together method combines both options (pull request?) extend mongodbtestmixin or create own mixin mongodb unit-testing grails groovy gorm
No comments:
Post a Comment