### Question:
Framework implements FrameworkMBean { public void updateBundleFromURL(long bundleIdentifier, String url) throws IOException { Bundle bundle = FrameworkUtils.resolveBundle(context, bundleIdentifier); InputStream inputStream = null; try { inputStream = createStream(url); bundle.update(inputStream); } catch (Exception be) { IOException ioex = new IOException("Update of bundle with id " + bundleIdentifier + " from url " + url + " failed with message: " + be.getMessage()); ioex.initCause(be); throw ioex; } finally { if (inputStream != null) { try { inputStream.close(); } catch (IOException ioe) { } } } } Framework(BundleContext context, StartLevel startLevel, PackageAdmin packageAdmin); long[] getDependencyClosure(long[] bundles); int getFrameworkStartLevel(); int getInitialBundleStartLevel(); String getProperty(String key); long[] getRemovalPendingBundles(); long installBundle(String location); long installBundleFromURL(String location, String url); InputStream createStream(String url); CompositeData installBundles(String[] locations); CompositeData installBundlesFromURL(String[] locations, String[] urls); void refreshBundle(long bundleIdentifier); boolean refreshBundleAndWait(long bundleIdentifier); void refreshBundles(long[] bundleIdentifiers); CompositeData refreshBundlesAndWait(long[] bundleIdentifiers); boolean resolveBundle(long bundleIdentifier); boolean resolveBundles(long[] bundleIdentifiers); CompositeData resolve(long[] bundleIdentifiers); void restartFramework(); void setBundleStartLevel(long bundleIdentifier, int newlevel); CompositeData setBundleStartLevels(long[] bundleIdentifiers, int[] newlevels); void setFrameworkStartLevel(int newlevel); void setInitialBundleStartLevel(int newlevel); void shutdownFramework(); void startBundle(long bundleIdentifier); CompositeData startBundles(long[] bundleIdentifiers); void stopBundle(long bundleIdentifier); CompositeData stopBundles(long[] bundleIdentifiers); void uninstallBundle(long bundleIdentifier); CompositeData uninstallBundles(long[] bundleIdentifiers); void updateBundle(long bundleIdentifier); void updateBundleFromURL(long bundleIdentifier, String url); CompositeData updateBundles(long[] bundleIdentifiers); CompositeData updateBundlesFromURL(long[] bundleIdentifiers, String[] urls); void updateFramework();  }### Answer:
@Test public void testUpdateBundleFromUrl() throws Exception { Framework spiedMBean = Mockito.spy(mbean); InputStream stream = Mockito.mock(InputStream.class); Mockito.doReturn(stream).when(spiedMBean).createStream(Mockito.anyString()); Bundle bundle = Mockito.mock(Bundle.class); Mockito.when(context.getBundle(5)).thenReturn(bundle); spiedMBean.updateBundleFromURL(5, "file:test.jar"); Mockito.verify(bundle).update(stream); }