String bundle1Uri = "file:bundle1";
String bundle2Uri = "file:bundle2";
URI uri = createTempRepo(FEATURE_WITH_INVALID_BUNDLE, bundle1Uri, bundle2Uri);
BundleManager bundleManager = EasyMock.createMock(BundleManager.class);
Bundle installedBundle1 = createDummyBundle(12345L, "bundle1", headers());
Bundle installedBundle2 = createDummyBundle(54321L, "bundle2", headers());
expect(bundleManager.getDataFile(EasyMock.<String>anyObject())).andReturn(dataFile).anyTimes();
expect(bundleManager.installBundleIfNeeded(bundle1Uri, 0, null)).andReturn(new BundleInstallerResult(installedBundle1, true));
expect(bundleManager.installBundleIfNeeded(bundle2Uri, 0, null)).andReturn(new BundleInstallerResult(installedBundle2, true));
expect(bundleManager.installBundleIfNeeded("zfs:unknown", 0, null)).andThrow(new MalformedURLException());
bundleManager.uninstall(setOf(installedBundle1));
EasyMock.expectLastCall();
ignoreRefreshes(bundleManager);
replay(bundleManager);
FeaturesServiceImpl svc = new FeaturesServiceImpl(bundleManager);