public void AreDependenciesValid_PackageSameAsItsDependency_True() { // Arrange var dependencies = new Dictionary <PackageDetails, IList <PackageDetails> > { { _package, new List <PackageDetails> { _package } } }; var packageInformation = new ApplicationPackageInformation(new[] { _package }, dependencies); // Act var result = _unitUnderTest.AreDependenciesValid(packageInformation); // Assert Assert.IsTrue(result); }
public void AreDependenciesValid_RedundantDependencies_True() { // Arrange var redundantDependency = new PackageDetails("not-used", "not-used"); var dependencies = new Dictionary <PackageDetails, IList <PackageDetails> > { { _package, new List <PackageDetails> { _dependency } }, { redundantDependency, new List <PackageDetails> { _package, _dependency } } }; var packageInformation = new ApplicationPackageInformation(new[] { _package }, dependencies); // Act var result = _unitUnderTest.AreDependenciesValid(packageInformation); // Assert Assert.IsTrue(result); }
public void AreDependenciesValid_MultiplePackagesWithTheSameDependency_True() { // Arrange var somePackage = new PackageDetails("some-package", "some-package"); var dependencies = new Dictionary <PackageDetails, IList <PackageDetails> > { { _package, new List <PackageDetails> { _dependency } }, { somePackage, new List <PackageDetails> { _package, _dependency } } }; var packageInformation = new ApplicationPackageInformation(new[] { _package }, dependencies); // Act var result = _unitUnderTest.AreDependenciesValid(packageInformation); // Assert Assert.IsTrue(result); }
/// <inheritdoc/> public bool AreDependenciesValid(ApplicationPackageInformation packageInformation) { var packagesToInstall = packageInformation.PackagesToInstall.Distinct().ToList(); var distinctPackages = new Dictionary <string, string>(); for (var i = 0; i < packagesToInstall.Count; i++) { var packageToInstall = packagesToInstall.ElementAt(i); if (!distinctPackages.ContainsKey(packageToInstall.Name)) { distinctPackages.Add(packageToInstall.Name, packageToInstall.Version); } else { var existingVersion = distinctPackages[packageToInstall.Name]; if (existingVersion != packageToInstall.Version) { return(false); } } if (!packageInformation.PackageDependencies.ContainsKey(packageToInstall)) { continue; } var dependencies = packageInformation.PackageDependencies[packageToInstall]; foreach (var dependency in dependencies) { if (packagesToInstall.Contains(dependency)) { continue; } packagesToInstall.Add(dependency); } } return(true); }
public void Ctor_NullDependenciesCollection_ArgumentNullException() { // Act _ = new ApplicationPackageInformation(_packages, null); }