public void DependencyResolver_AllSharedInterfacesShouldBeConstructable() { // Arrange var vsaMock = Mock.Of <IVisualStudioAccess>(); var loggerMock = Mock.Of <ILogger>(); var spMock = Mock.Of <IServiceProvider>(); var cs = new OleMenuCommandService(spMock); var dr = new DependencyResolver(vsaMock, loggerMock, cs); var package = new AsyncPackageTestImplementation(); dr.RegisterPackage(package); var interfacesToConstruct = GetInterfacesToConstruct(); var getMethod = typeof(DependencyResolver).GetMethod("Get"); Assert.IsNotNull(getMethod); var failedConstructions = new List <string>(); // Act foreach (var interfaceToConstruct in interfacesToConstruct) { var getRef = getMethod.MakeGenericMethod(interfaceToConstruct); try { getRef.Invoke(dr, null); } catch { failedConstructions.Add(interfaceToConstruct.FullName); } } // Assert Assert.AreEqual(0, failedConstructions.Count, $"Failed to construct the following interfaces:{Environment.NewLine}{string.Join(Environment.NewLine, failedConstructions)}"); }
public void RegisterPackage_Successfully() { // Arrange var vsaMock = Mock.Of <IVisualStudioAccess>(); var loggerMock = Mock.Of <ILogger>(); var spMock = Mock.Of <IServiceProvider>(); var cs = new OleMenuCommandService(spMock); var dr = new DependencyResolver(vsaMock, loggerMock, cs); var package = new AsyncPackageTestImplementation(); // Act dr.RegisterPackage(package); // Assert var registeredPackage = dr.Get <AsyncPackageTestImplementation>(); Assert.AreSame(package, registeredPackage); }