use of org.qi4j.bootstrap.SingletonAssembler in project qi4j-sdk by Qi4j.
the class OperatorsTest method testOperators.
@Test
public void testOperators() throws UnitOfWorkCompletionException, ActivationException, AssemblyException {
SingletonAssembler assembler = new SingletonAssembler() {
@Override
public void assemble(ModuleAssembly module) throws AssemblyException {
new EntityTestAssembler().assemble(module);
module.entities(TestEntity.class);
module.values(TestValue.class);
module.forMixin(TestEntity.class).declareDefaults().foo().set("Bar");
module.forMixin(TestValue.class).declareDefaults().bar().set("Xyz");
}
};
UnitOfWork uow = assembler.module().newUnitOfWork();
try {
EntityBuilder<TestEntity> entityBuilder = uow.newEntityBuilder(TestEntity.class, "123");
entityBuilder.instance().value().set(assembler.module().newValue(TestValue.class));
TestEntity testEntity = entityBuilder.newInstance();
uow.complete();
uow = assembler.module().newUnitOfWork();
Iterable<TestEntity> entities = Iterables.iterable(testEntity = uow.get(testEntity));
QueryBuilder<TestEntity> builder = assembler.module().newQueryBuilder(TestEntity.class);
{
Specification<Composite> where = QueryExpressions.eq(QueryExpressions.templateFor(TestEntity.class).foo(), "Bar");
Assert.assertTrue(where.satisfiedBy(testEntity));
System.out.println(where);
}
{
Specification<Composite> where = QueryExpressions.eq(QueryExpressions.templateFor(TestEntity.class).value().get().bar(), "Xyz");
Assert.assertTrue(where.satisfiedBy(testEntity));
System.out.println(where);
Assert.assertTrue(builder.where(where).newQuery(entities).find().equals(testEntity));
}
} finally {
uow.discard();
}
}
use of org.qi4j.bootstrap.SingletonAssembler in project qi4j-sdk by Qi4j.
the class ApplicationActivationTest method testApplicationActivator.
@Test
public void testApplicationActivator() throws Exception {
SingletonAssembler assembly = new SingletonAssembler() {
public void assemble(ModuleAssembly module) throws AssemblyException {
module.layer().application().withActivators(TestedActivator.class);
}
};
// Activate
Application application = assembly.application();
// Assert activated
Assert.assertEquals("Activation Level", 2, activationLevel);
// Passivate
application.passivate();
// Assert passivated
Assert.assertEquals("Passivation Level", 2, passivationLevel);
}
use of org.qi4j.bootstrap.SingletonAssembler in project qi4j-sdk by Qi4j.
the class ImportedServiceActivationTest method testServiceImporterImportedServiceActivators.
@Test
public void testServiceImporterImportedServiceActivators() throws Exception {
SingletonAssembler assembler = new SingletonAssembler() {
public void assemble(ModuleAssembly module) throws AssemblyException {
module.importedServices(TestedService.class).importedBy(ImportedServiceDeclaration.SERVICE_IMPORTER).setMetaInfo("testimporter").withActivators(TestedActivator.class).importOnStartup();
module.services(TestedServiceImporterService.class).identifiedBy("testimporter");
}
};
Application application = assembler.application();
assertEquals("Activation Level", 2, activationLevel);
application.passivate();
assertEquals("Passivation Level", 2, passivationLevel);
}
use of org.qi4j.bootstrap.SingletonAssembler in project qi4j-sdk by Qi4j.
the class InvocationInjectionTest method whenInvocationInjectionWithMethodWhenInjectedThenInjectMethod.
@Test
public void whenInvocationInjectionWithMethodWhenInjectedThenInjectMethod() throws Exception {
SingletonAssembler assembly = new SingletonAssembler() {
public void assemble(ModuleAssembly module) throws AssemblyException {
module.transients(MyComposite.class);
}
};
MyComposite composite = assembly.module().newTransient(MyComposite.class);
composite.doStuff();
composite.doStuff();
composite.doStuff2();
composite.doStuff3();
}
use of org.qi4j.bootstrap.SingletonAssembler in project qi4j-sdk by Qi4j.
the class ServiceInjectionTest method testInjectService.
@Test
public void testInjectService() throws Exception {
SingletonAssembler assembly = new SingletonAssembler() {
public void assemble(ModuleAssembly module) throws AssemblyException {
module.services(MyServiceComposite.class).identifiedBy("Foo").setMetaInfo(new ServiceName("Foo"));
module.services(MyServiceComposite2.class).identifiedBy("Bar").setMetaInfo(new ServiceName("Bar"));
module.services(StringService.class, LongService.class);
module.objects(ServiceUser.class);
}
};
testInjection(assembly);
}
Aggregations