コード例 #1
0
        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)}");
        }
コード例 #2
0
        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);
        }