コード例 #1
0
        public void ProjectGetInstalledPackages_NullProject_ThrowsArgumentNullException()
        {
            // Act
            VsPackageInstallerServices target = CreateTarget();

            Assert.Throws <ArgumentNullException>(() => target.GetInstalledPackages(null));
        }
コード例 #2
0
        public void IsPackageInstalledEx_InternalException_PostsFault()
        {
            // Arrange
            var expectedException = new ArgumentException("Internal error");

            var solutionManager = new Mock <IVsSolutionManager>();

            solutionManager.SetupGet(s => s.SolutionDirectory)
            .Throws(expectedException);

            var telemetryProvider = new Mock <INuGetTelemetryProvider>();

            var project = new Mock <EnvDTE.Project>();

            // Act
            VsPackageInstallerServices target = CreateTarget(vsSolutionManager: solutionManager.Object, telemetryProvider: telemetryProvider.Object);
            var actualException = Assert.Throws <ArgumentException>(() => target.IsPackageInstalledEx(project.Object, "packageId", "1.2.3"));

            // Assert
            // Both IsPackageInstalled and IsPackageInstalledEx use a private IsPackageInstalled overload, where the fault is reported.
            // The additional compexity of getting this fault to report IsPackageInstalledEx is not considered worthwhile.
            telemetryProvider.Verify(t => t.PostFaultAsync(expectedException, typeof(VsPackageInstallerServices).FullName, nameof(VsPackageInstallerServices.IsPackageInstalled), It.IsAny <IDictionary <string, object> >()));
            telemetryProvider.VerifyNoOtherCalls();
            Assert.Equal(expectedException, actualException);
        }
 void CreatePackageInstallerServices()
 {
     fakeSolution      = MockRepository.GenerateStub <IPackageManagementSolution>();
     installedPackages = new List <IPackage>();
     fakeSolution.Stub(s => s.GetPackages()).Return(installedPackages.AsQueryable());
     installerServices = new VsPackageInstallerServices(fakeSolution);
 }
コード例 #4
0
		void CreatePackageInstallerServices()
		{
			fakeSolution = MockRepository.GenerateStub<IPackageManagementSolution>();
			installedPackages = new List<IPackage>();
			fakeSolution.Stub(s => s.GetPackages()).Return(installedPackages.AsQueryable());
			installerServices = new VsPackageInstallerServices(fakeSolution);
		}
コード例 #5
0
        public void IsPackageInstalled_NullParameters_ThrowsException()
        {
            // Arrange
            var project = new Mock <EnvDTE.Project>();

            // Act & Assert
            VsPackageInstallerServices target = CreateTarget();

            Assert.Throws <ArgumentException>(() => target.IsPackageInstalled(project.Object, null));
            Assert.Throws <ArgumentException>(() => target.IsPackageInstalled(project.Object, string.Empty));
            Assert.Throws <ArgumentNullException>(() => target.IsPackageInstalled(null, "packageId"));
        }
コード例 #6
0
        public void IsPackageInstalledEx_InvalidParameters_ThrowsException()
        {
            // Arrange
            var project   = new Mock <EnvDTE.Project>();
            var packageId = "packagId";
            var version   = "1.2.3";

            // Act & Assert
            VsPackageInstallerServices target = CreateTarget();

            Assert.Throws <ArgumentNullException>(() => target.IsPackageInstalledEx(null, packageId, version));
            Assert.Throws <ArgumentException>(() => target.IsPackageInstalledEx(project.Object, null, version));
            Assert.Throws <ArgumentException>(() => target.IsPackageInstalledEx(project.Object, packageId, string.Empty));
            Assert.Throws <ArgumentException>(() => target.IsPackageInstalledEx(project.Object, packageId, "a.b.c"));
        }
コード例 #7
0
        public void IsPackageInstalled_InternalException_PostsFault()
        {
            // Arrange
            var expectedException = new ArgumentException("Internal error");

            var solutionManager = new Mock <IVsSolutionManager>();

            solutionManager.SetupGet(s => s.SolutionDirectory)
            .Throws(expectedException);

            var telemetryProvider = new Mock <INuGetTelemetryProvider>();

            var project = new Mock <EnvDTE.Project>();

            // Act
            VsPackageInstallerServices target = CreateTarget(vsSolutionManager: solutionManager.Object, telemetryProvider: telemetryProvider.Object);
            var actualException = Assert.Throws <ArgumentException>(() => target.IsPackageInstalled(project.Object, "packageId"));

            // Assert
            telemetryProvider.Verify(t => t.PostFaultAsync(expectedException, typeof(VsPackageInstallerServices).FullName, nameof(VsPackageInstallerServices.IsPackageInstalled), It.IsAny <IDictionary <string, object> >()));
            telemetryProvider.VerifyNoOtherCalls();
            Assert.Equal(expectedException, actualException);
        }
コード例 #8
0
        public void ProjectGetInstalledPackages_InternalError_PostsFault()
        {
            // Arrange
            var expectedException = new ArgumentException("Internal bug");

            var solutionManager   = new Mock <IVsSolutionManager>();
            var telemetryProvider = new Mock <INuGetTelemetryProvider>();

            var assemblyDirectory = Path.GetDirectoryName(typeof(VsPackageInstallerServicesTests).Assembly.Location);

            solutionManager.SetupGet(sm => sm.SolutionDirectory)
            .Throws(expectedException);

            var project = new Mock <EnvDTE.Project>();

            // Act
            VsPackageInstallerServices target = CreateTarget(vsSolutionManager: solutionManager.Object, telemetryProvider: telemetryProvider.Object);
            var actualException = Assert.Throws <ArgumentException>(() => target.GetInstalledPackages(project.Object));

            // Assert
            telemetryProvider.Verify(t => t.PostFault(expectedException, typeof(VsPackageInstallerServices).FullName, nameof(VsPackageInstallerServices.GetInstalledPackages), It.IsAny <IDictionary <string, object> >()));
            Assert.Same(expectedException, actualException);
        }