public void CustomProviderFactory_HasSameProvidersAsDefault_ExceptHttpHandlerResourceProvider() { bool customHttpHandlerResourceV3Provider = false; var customProviderItems = new List <string> (); var defaultProviderItems = new List <string> (); // Touch the MonoDevelopNuGetResourceProviderFactory so it initializes the NuGet Respository.Provider. // The NuGet addin uses MonoDevelopNuGetResourceProviderFactory directly some parts of NuGet create // new SourceRepository instances using Repository.Provider directory. var _ = MonoDevelopNuGetResourceProviderFactory.GetProviders(); foreach (Lazy <INuGetResourceProvider> item in Repository.Provider.GetCoreV3()) { Type type = item.Value.GetType(); if (type == typeof(MonoDevelopHttpHandlerResourceV3Provider)) { type = typeof(HttpHandlerResourceV3Provider); customHttpHandlerResourceV3Provider = true; } customProviderItems.Add(type.Name); } var defaultProviderFactory = new Repository.ProviderFactory(); foreach (Lazy <INuGetResourceProvider> item in defaultProviderFactory.GetCoreV3()) { Type type = item.Value.GetType(); defaultProviderItems.Add(type.Name); } Assert.AreEqual(defaultProviderItems, customProviderItems); Assert.IsTrue(customHttpHandlerResourceV3Provider, "Custom MonoDevelopHttpHandlerResourceV3Provider not used"); }
public static IEnumerable <Lazy <INuGetResourceProvider> > GetCoreV3(this Repository.ProviderFactory factory) { if (factory == null) { throw new ArgumentNullException(nameof(factory)); } return(factory.GetCoreV3()); }