コード例 #1
0
        public void InstallPackageWithDependenciesCountEqualsOne_WhenPerformOperationIsCalledWithInstallOption()
        {
            // Arrange
            var downloaderMock        = new Mock <IDownloader>();
            var projectMock           = new Mock <IProject>();
            var packageMock           = new Mock <IPackage>();
            var packageDependencyMock = new Mock <IPackage>();

            projectMock.Setup(x => x.PackageRepository.GetAll()).Returns(new List <IPackage>());

            packageDependencyMock.SetupGet(x => x.Dependencies).Returns(new List <IPackage>());

            packageMock.Setup(x => x.Dependencies).Returns(new List <IPackage>()
            {
                packageDependencyMock.Object
            });

            var installer = new PackageInstaller(downloaderMock.Object, projectMock.Object);

            installer.Operation = InstallerOperation.Install;

            // Act
            installer.PerformOperation(packageMock.Object);

            // Assert
            downloaderMock.Verify(x => x.Remove(It.IsAny <string>()), Times.Exactly(2));
            downloaderMock.Verify(x => x.Download(It.IsAny <string>()), Times.Exactly(4));
        }
        public void CallTwoTimesRemoveOfDownloader_WhenThereIsOnlyOnePackageToRestoreWithOneDependencyOnTheChain()
        {
            // arrange
            var downloaderStub = new Mock <IDownloader>();
            var projectStub    = new Mock <IProject>();

            downloaderStub.Setup(x => x.Remove(It.IsAny <string>()));

            var packageStub = new Mock <IPackage>();

            var dependencyPackage        = new Mock <IPackage>();
            var dependenciesOfDependency = new List <IPackage>();

            dependencyPackage.Setup(x => x.Dependencies).Returns(dependenciesOfDependency);

            var dependenciesList = new List <IPackage>()
            {
                dependencyPackage.Object
            };

            packageStub.Setup(x => x.Dependencies).Returns(dependenciesList);

            projectStub.Setup(x => x.PackageRepository.GetAll()).Returns(new List <IPackage>());

            var installer = new PackageInstaller(downloaderStub.Object, projectStub.Object);

            installer.Operation = InstallerOperation.Install;

            // act
            installer.PerformOperation(packageStub.Object);

            // assert
            downloaderStub.Verify(x => x.Remove(It.IsAny <string>()), Times.Exactly(2));
        }
コード例 #3
0
        public void CallDownloadFourTimesAndRemoveTwoTimes_WithOneDependencyInTheList()
        {
            // Arrange
            var downloaderMock        = new Mock <IDownloader>();
            var projectMock           = new Mock <IProject>();
            var packageMock           = new Mock <IPackage>();
            var packageDependencyMock = new Mock <IPackage>();

            projectMock.Setup(p => p.PackageRepository.GetAll()).Returns(new List <IPackage>());
            packageDependencyMock.Setup(p => p.Dependencies).Returns(new List <IPackage>());
            packageMock.Setup(p => p.Dependencies).Returns(new List <IPackage>()
            {
                packageDependencyMock.Object
            });

            PackageInstaller packageInstaller = new PackageInstaller(downloaderMock.Object, projectMock.Object);

            packageInstaller.Operation = InstallerOperation.Install;

            // Act
            packageInstaller.PerformOperation(packageMock.Object);

            // Assert
            downloaderMock.Verify(d => d.Download(It.IsAny <string>()), Times.Exactly(4));
            downloaderMock.Verify(d => d.Remove(It.IsAny <string>()), Times.Exactly(2));
        }
コード例 #4
0
        public void PerformOperation_ShouldMultiplyBy2DownloadAndRemoveCallTimes_WhenInstallPassedAndDependenciesListIsNotEmpty()
        {
            var downloaderMock = new Mock <IDownloader>();
            var projectMock    = new Mock <IProject>();

            var packageMock           = new Mock <IPackage>();
            var packageDependencyMock = new Mock <IPackage>();

            projectMock.Setup(x => x.PackageRepository.GetAll()).Returns(new List <IPackage>());

            packageDependencyMock.Setup(x => x.Dependencies).Returns(new List <IPackage>());

            packageMock.Setup(x => x.Dependencies).Returns(new List <IPackage>()
            {
                packageDependencyMock.Object
            });

            var installer = new PackageInstaller(downloaderMock.Object, projectMock.Object);

            installer.Operation = Enums.InstallerOperation.Install;

            //Act
            installer.PerformOperation(packageMock.Object);

            //Assert

            downloaderMock.Verify(x => x.Remove(It.IsAny <string>()), Times.Exactly(2));
            downloaderMock.Verify(x => x.Download(It.IsAny <string>()), Times.Exactly(4));
        }
        public void CallOneTimeRemoveOfDownloader_WhenThereIsOnlyOnePackageToRestoreWithEmptyDependenciesList()
        {
            // arrange
            var downloaderStub = new Mock <IDownloader>();
            var projectStub    = new Mock <IProject>();

            downloaderStub.Setup(x => x.Remove(It.IsAny <string>()));

            var packageStub      = new Mock <IPackage>();
            var dependenciesList = new List <IPackage>();

            packageStub.Setup(x => x.Dependencies).Returns(dependenciesList);

            projectStub.Setup(x => x.PackageRepository.GetAll()).Returns(new List <IPackage>());

            var installer = new PackageInstaller(downloaderStub.Object, projectStub.Object);

            // act
            installer.PerformOperation(packageStub.Object);

            // assert
            downloaderStub.Verify(x => x.Remove(It.IsAny <string>()), Times.Once);
        }