package org.jooby.mongodb;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.isA;
import org.jongo.Jongo;
import org.jongo.Mapper;
import org.jooby.Env;
import org.jooby.internal.mongodb.JongoFactoryImpl;
import org.jooby.test.MockUnit;
import org.jooby.test.MockUnit.Block;
import org.junit.Test;
import com.google.inject.Binder;
import com.google.inject.binder.AnnotatedBindingBuilder;
import com.typesafe.config.Config;
public class JongobyTest {
@SuppressWarnings("unchecked")
private Block mapper = unit -> {
AnnotatedBindingBuilder<Mapper> abbM = unit.mock(AnnotatedBindingBuilder.class);
abbM.toInstance(isA(Mapper.class));
Binder binder = unit.get(Binder.class);
expect(binder.bind(Mapper.class)).andReturn(abbM);
};
@SuppressWarnings("unchecked")
private Block jongo = unit -> {
AnnotatedBindingBuilder<Jongo> abbj = unit.mock(AnnotatedBindingBuilder.class);
expect(abbj.toProvider(JongoFactoryImpl.class)).andReturn(null);
Binder binder = unit.get(Binder.class);
expect(binder.bind(Jongo.class)).andReturn(abbj);
};
@SuppressWarnings("unchecked")
private Block jongoFactory = unit -> {
AnnotatedBindingBuilder<JongoFactory> abbj = unit.mock(AnnotatedBindingBuilder.class);
expect(abbj.to(JongoFactoryImpl.class)).andReturn(null);
Binder binder = unit.get(Binder.class);
expect(binder.bind(JongoFactory.class)).andReturn(abbj);
};
@Test
public void defaults() throws Exception {
new MockUnit(Env.class, Config.class, Binder.class)
.expect(mapper)
.expect(jongo)
.expect(jongoFactory)
.run(unit -> {
new Jongoby()
.configure(unit.get(Env.class), unit.get(Config.class), unit.get(Binder.class));
});
}
}