Container implements IContainer { @Override @SuppressWarnings("unchecked") public <T> T resolve(final IKey key, final Object... args) throws ResolutionException { if (key == null) { throw new ResolutionException("Key can't be null"); } IResolveDependencyStrategy strategy = storage.get(key); if (strategy == null) { throw new ResolutionException("Strategy for key " + key + " not found"); } try { return (T) strategy.resolve(args); } catch (Exception e) { throw new ResolutionException("Resolution of dependency failed for key " + key, e); } } Container(); @Override IKey getIocKey(); @Override IKey getKeyForKeyStorage(); @Override @SuppressWarnings("unchecked") T resolve(final IKey key, final Object... args); @Override void register(final IKey key, final IResolveDependencyStrategy strategy); @Override void remove(final IKey key);  }
@Test (expected = ResolutionException.class) public void checkResolutionException() throws Exception { IContainer container = new Container(); container.resolve(null, null); fail(); }