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)); }
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)); }
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); }