@Test public void interception() { // TODO: why do we need storage in this test? Maybe simpler Iterable<Bean> as adapter? Injector injector = Guice.createInjector(new M(), new FinderModule()); Storage storage = injector.getInstance(Storage.class); Class<MvelExpressionTest.Bean> t = MvelExpressionTest.Bean.class; storage.register(t); storage .begin() .add(new Update("BEAN-1", "name", "bob")) .add(new Update("BEAN-1", "value", "27")) .add(new Update("BEAN-2", "name", "lou")) .add(new Update("BEAN-2", "value", "23")) .commit(); MyFinder a = injector.getInstance(MyFinder.class); List<MvelExpressionTest.Bean> r = Lists.newArrayList(a.foo("27")); assertThat(Iterables.getOnlyElement(r).name(), equalTo("bob")); assertThat(Iterables.getOnlyElement(r).value(), equalTo("27")); }