public void DiscoverMetadataProperties(PackageMetadata discoveredMetadata, string discoveryRoot) { discoveredMetadata.Id = "Package"; discoveredMetadata.Version = new SemanticVersion(0, 0, 0, 0); discoveredMetadata.Description = "Package description"; discoveredMetadata.Authors.Add("Author"); }
public void VersionInMetaData_MapsToPackage() { var metaData = new PackageMetadata { Version = new SemanticVersion(9,8,7,6) }; var packageBuilt = _pc.BuildPackage(_files, metaData); Assert.That(packageBuilt.Version, Is.EqualTo(new SemanticVersion(9, 8, 7, 6))); }
public void IdInMetaData_MapsToPackage() { var metaData = new PackageMetadata { Id = "something" }; var packageBuilt = _pc.BuildPackage(_files, metaData); Assert.That(packageBuilt.Id, Is.EqualTo("something")); }
public void DescriptionInMetaData_MapsToPackage() { var metaData = new PackageMetadata { Description = "my huge package" }; var packageBuilt = _pc.BuildPackage(_files, metaData); Assert.That(packageBuilt.Description, Is.EqualTo("my huge package")); }
public void AuthorsInMetaData_MapsToPackage() { var metaData = new PackageMetadata { Authors = new List<string> {"SomeAuthor"} }; var packageBuilt = _pc.BuildPackage(_files, metaData); Assert.That(packageBuilt.Authors.First(), Is.EqualTo("SomeAuthor")); }
public void PackageMetadata_WhenNoExesFoundButManyDllsExist_FindsDllMatchingUpperDirectoryName() { var meta = new PackageMetadata(); _dllFilesOnDisk.Add(_rootDir + "\\file.dll"); _ipdfsfe.DiscoverMetadataProperties(meta, _rootDir); _mapper.Verify(x => x.MapAssemblyInfoToPackage(_rootDir + "\\file.dll", It.IsAny<PackageMetadata>())); }
public void OnePackageManifestPresent_LoadsPackageSettingsFile() { var meta = new PackageMetadata(); _packageManifests.Add(SettingsFilename); _settingsLoader.Setup(x => x.Load(SettingsFilename)).Returns(new ConventionsSettingsFile()); _heuristic.DiscoverMetadataProperties(meta, _discoveryRoot); _settingsLoader.Verify(x => x.Load(SettingsFilename), Times.Once()); }
public void MoreThanOnePackageManifestPresent_ThrowsException() { var meta = new PackageMetadata(); _packageManifests.Add(SettingsFilename); _packageManifests.Add("settings2.deployd-package"); var ex = Assert.Throws<InvalidOperationException>(() => _heuristic.DiscoverMetadataProperties(meta, _discoveryRoot)); Assert.That(ex.Message, Is.EqualTo("More than one packing convention file found in source directory.")); }
public void PackageMetadata_WhenMoreThanOneExeIsFound_MapperNotCalled() { var meta = new PackageMetadata(); _exeFilesOnDisk.Add(_rootDir + "\\one.exe"); _exeFilesOnDisk.Add(_rootDir + "\\two.exe"); _ipdfsfe.DiscoverMetadataProperties(meta, _rootDir); _mapper.Verify(x => x.MapAssemblyInfoToPackage(It.IsAny<string>(), It.IsAny<PackageMetadata>()), Times.Never()); }
public void FileInList_AddedToPackage() { var metaData = new PackageMetadata(); var file = new PhysicalPackageFile(); _files.Add(file); var packageBuilt = _pc.BuildPackage(_files, metaData); Assert.That(packageBuilt.Files[0], Is.EqualTo(file)); }
public void PackageMetadata_WhenNoExesFoundButSingleDll_CallsMapperToMapFromThatDll() { var meta = new PackageMetadata(); _dllFilesOnDisk.Add(_rootDir + "\\bin\\something-else.dll"); _dllFilesOnDisk.Add(_rootDir + "\\bin\\package-source-dir.dll"); _ipdfsfe.DiscoverMetadataProperties(meta, _rootDir); _mapper.Verify(x => x.MapAssemblyInfoToPackage(_rootDir + "\\bin\\package-source-dir.dll", It.IsAny<PackageMetadata>())); }
public void PackageMetadata_WhenOneSingleExeIsFound_CallsMapperToMapFromThatExe() { var meta = new PackageMetadata(); _exeFilesOnDisk.Add(_rootDir + "\\one.exe"); _ipdfsfe.DiscoverMetadataProperties(meta, _rootDir); _mapper.Verify(); Assert.That(meta.Description, Is.EqualTo("Updated")); }
public void PackageMetadata_WhenMultipleExesFound_DllsArentCheckedAsTheyAreLessImportant() { var meta = new PackageMetadata(); _exeFilesOnDisk.Add(_rootDir + "\\one.exe"); _exeFilesOnDisk.Add(_rootDir + "\\two.exe"); _dllFilesOnDisk.Add(_rootDir + "\\file.dll"); _ipdfsfe.DiscoverMetadataProperties(meta, _rootDir); _mapper.Verify(x => x.MapAssemblyInfoToPackage(_rootDir + "\\file.dll", It.IsAny<PackageMetadata>()), Times.Never()); }
public void DiscoverPackageMetadata_MetadataGeneratedHasSensibleDefaults() { var meta = new PackageMetadata(); _disc.DiscoverMetadataProperties(meta, string.Empty); Assert.That(meta.Authors[0], Is.EqualTo("Author")); Assert.That(meta.Description, Is.EqualTo("Package description")); Assert.That(meta.Id, Is.EqualTo("Package")); Assert.That(meta.Version, Is.EqualTo(new SemanticVersion(0, 0, 0, 0))); Assert.That(meta.PackageFilename, Is.EqualTo("Package-0.0.0.0.nupkg")); }
public void DiscoverMetadataProperties(PackageMetadata discoveredMetadata, string discoveryRoot) { var matchingFiles = _fs.Directory.GetFiles(discoveryRoot, "*.deployd-package", System.IO.SearchOption.AllDirectories).ToList(); if (matchingFiles.Count == 0) { return; } if (matchingFiles.Count > 1) { throw new InvalidOperationException("More than one packing convention file found in source directory."); } var conventionsFile = _settingsFileLoader.Load(matchingFiles[0]); }
public void DiscoverMetadataProperties(PackageMetadata discoveredMetadata, string discoveryRoot) { var exesFound = _fs.Directory.GetFiles(discoveryRoot, "*.exe", System.IO.SearchOption.AllDirectories).ToList(); exesFound.RemoveAll(x => x.Contains(".vshost")); if (exesFound.Count == 1) { _log.Info("Infering metadata from " + exesFound[0]); _fromAssemblyMapper.MapAssemblyInfoToPackage(exesFound[0], discoveredMetadata); return; } if (exesFound.Count > 1) { return; } var dllsFound = _fs.Directory.GetFiles(discoveryRoot, "*.dll", System.IO.SearchOption.AllDirectories).ToList(); if (dllsFound.Count == 1) { _log.Info("Infering metadata from " + dllsFound[0]); _fromAssemblyMapper.MapAssemblyInfoToPackage(dllsFound[0], discoveredMetadata); } foreach (var dll in dllsFound) { var captures = Regex.Matches(dll, @"(.*?)\\bin\\(.*?).dll"); if (captures.Count == 0 || captures[0].Groups.Count < 3) { continue; } var directoryStub = captures[0].Groups[1].Value; var dllName = captures[0].Groups[2].Value; if (directoryStub.EndsWith(dllName)) { _log.Info("Infering metadata from " + dll); _fromAssemblyMapper.MapAssemblyInfoToPackage(dll, discoveredMetadata); break; } } }
public void MapAssemblyInfoToPackage(string assembly, PackageMetadata package) { _log.Info("Loading assembly metadata... "); var versionInfo = FileVersionInfo.GetVersionInfo(assembly); _log.Info("Product Name: " + versionInfo.ProductName); _log.Info("File Description: " + versionInfo.FileDescription); package.Id = versionInfo.ProductName; package.Description = versionInfo.FileDescription; package.Version = new SemanticVersion(versionInfo.FileMajorPart, versionInfo.FileMinorPart, versionInfo.FileBuildPart, versionInfo.FilePrivatePart); if (!string.IsNullOrWhiteSpace(versionInfo.CompanyName)) { package.Authors.Clear(); package.Authors.Add(versionInfo.CompanyName); } }
public PackageBuilder BuildPackage(IEnumerable<IPackageFile> packageFiles, PackageMetadata metaData) { var package = new PackageBuilder { Id = metaData.Id, Version = metaData.Version, Description = metaData.Description }; foreach (var item in metaData.Authors) { package.Authors.Add(item); } foreach (var file in packageFiles) { package.Files.Add(file); } return package; }
public void DiscoverMetadataProperties(PackageMetadata discoveredMetadata, string discoveryRoot) { Executed = true; }