protected override void Because() { rootBuildMetaData = CreateStub<IBuildMetaData>(); dependencyBuildMetaData = CreateStub<IBuildMetaData>(); var simpleDependency = new Dependency("simpleDependency", "simpleDependency.boo"); var rootDependency = new Dependency("root", "root.boo"); rootBuildMetaData.BuildEngine = new BuildEngine(new BuildToolStub(), "root.boo", Horn.Core.Utils.Framework.FrameworkVersion.FrameworkVersion35, CreateStub<IDependencyDispatcher>()); rootBuildMetaData.BuildEngine.Dependencies.Add(simpleDependency); dependencyBuildMetaData.BuildEngine = new BuildEngine(new BuildToolStub(), "simpleDependency.boo", Utils.Framework.FrameworkVersion.FrameworkVersion35, CreateStub<IDependencyDispatcher>()); dependencyBuildMetaData.BuildEngine.Dependencies.Add(rootDependency); packageTree = CreateStub<IPackageTree>(); packageTree.Stub(x => x.Name).Return("root"); packageTree.Stub(x => x.GetBuildMetaData("root")).Return(rootBuildMetaData); dependentTree = CreateStub<IPackageTree>(); dependentTree.Stub(x => x.Name).Return("simpleDependency"); dependentTree.Stub(x => x.GetBuildMetaData("simpleDependency")).Return(dependencyBuildMetaData); packageTree.Stub(x => x.RetrievePackage(simpleDependency)).Return(dependentTree); packageTree.Stub(x => x.RetrievePackage(rootDependency)).Return(packageTree); dependentTree.Stub(x => x.RetrievePackage(simpleDependency)).Return(dependentTree); dependentTree.Stub(x => x.RetrievePackage(rootDependency)).Return(packageTree); }
private IPackageTree GetComponentTree(out IBuildMetaData buildMetaData) { var baseConfigReader = CreateStub <BooConfigReader>(); baseConfigReader.BuildMetaData.InstallName = "horn"; var componentTree = CreateStub <IPackageTree>(); var tempDirectory = new DirectoryInfo(DirectoryHelper.GetTempDirectoryName()); componentTree.Stub(x => x.WorkingDirectory).Return(tempDirectory).Repeat.Any(); componentTree.Stub(x => x.GetRevisionData()).Return(new RevisionData("3")); buildMetaData = GetBuildMetaData(baseConfigReader); componentTree.Stub(x => x.GetBuildMetaData("horn")).Return(buildMetaData); componentTree.Stub(x => x.Name).Return("log4net"); componentTree.Stub(x => x.Result).Return(new DirectoryInfo(@"C:\somewhere\build_root_dir")); componentTree.Stub(x => x.GetBuildMetaData("log4net")) .Return(buildMetaData).IgnoreArguments().Repeat.Any(); return(componentTree); }
protected override void Because() { rootBuildMetaData = CreateStub <IBuildMetaData>(); dependencyBuildMetaData = CreateStub <IBuildMetaData>(); var simpleDependency = new Dependency("simpleDependency", "simpleDependency.boo"); var rootDependency = new Dependency("root", "root.boo"); rootBuildMetaData.BuildEngine = new BuildEngine(new BuildToolStub(), "root.boo", Horn.Core.Utils.Framework.FrameworkVersion.FrameworkVersion35, CreateStub <IDependencyDispatcher>()); rootBuildMetaData.BuildEngine.Dependencies.Add(simpleDependency); dependencyBuildMetaData.BuildEngine = new BuildEngine(new BuildToolStub(), "simpleDependency.boo", Utils.Framework.FrameworkVersion.FrameworkVersion35, CreateStub <IDependencyDispatcher>()); dependencyBuildMetaData.BuildEngine.Dependencies.Add(rootDependency); packageTree = CreateStub <IPackageTree>(); packageTree.Stub(x => x.Name).Return("root"); packageTree.Stub(x => x.GetBuildMetaData("root")).Return(rootBuildMetaData); dependentTree = CreateStub <IPackageTree>(); dependentTree.Stub(x => x.Name).Return("simpleDependency"); dependentTree.Stub(x => x.GetBuildMetaData("simpleDependency")).Return(dependencyBuildMetaData); packageTree.Stub(x => x.RetrievePackage(simpleDependency)).Return(dependentTree); packageTree.Stub(x => x.RetrievePackage(rootDependency)).Return(packageTree); dependentTree.Stub(x => x.RetrievePackage(simpleDependency)).Return(dependentTree); dependentTree.Stub(x => x.RetrievePackage(rootDependency)).Return(packageTree); }
public PackageTreeStub(IBuildMetaData buildMetaData, string name, bool useInternalDictionary) { this.buildMetaData = buildMetaData; this.name = name; this.useInternalDictionary = useInternalDictionary; BaseDirectory = AppDomain.CurrentDomain.BaseDirectory; }
protected virtual void ExecuteRepositoryElementList(IBuildMetaData buildMetaData, IPackageTree componentTree) { if (!buildMetaData.RepositoryElementList.HasElements()) { return; } foreach (var repositoryElement in buildMetaData.RepositoryElementList) { repositoryElement.PrepareRepository(componentTree, get).Export(); } }
public override void before_each_spec() { var dependencyResolver = MockRepository.GenerateStub <IDependencyResolver>(); fileSystemProvider = MockRepository.GenerateStub <IFileSystemProvider>(); packageBuilder = MockRepository.GenerateStub <IPackageCommand>(); rootPackageTree = MockRepository.GenerateStub <IPackageTree>(); buildMetaData = MockRepository.GenerateStub <IBuildMetaData>(); commandArgs = new CommandArgs("horn", false, null, false, null); dependencyResolver.Stub(x => x.HasComponent <ICommandArgs>()).Return(true); dependencyResolver.Stub(x => x.Resolve <ICommandArgs>()).Return(commandArgs); dependencyResolver.Stub(x => x.Resolve <IPackageCommand>("install") ).Return(packageBuilder); IoC.InitializeWith(dependencyResolver); rootPackageTree.Stub(x => x.Result).Return(new DirectoryInfo(@"z:\horn")); buildMetaData.ProjectInfo = new Dictionary <string, object>(); rootPackageTree.Stub(x => x.GetAllPackageMetaData()).Return(new List <IBuildMetaData> { buildMetaData }); rootPackageTree.Stub(x => x.Name).Return("horn"); var category = new Category(null, rootPackageTree); fileSystemProvider.Stub(x => x.GetFiles(Arg <DirectoryInfo> .Is.TypeOf, Arg <string> .Is.TypeOf)).Return( new List <FileInfo> { new FileInfo(string.Format("horn-{0}.zip", new DateTime(2009, 10, 30).ToString(FileSystemProvider.FileDateFormat))), new FileInfo(string.Format("horn-{0}.zip", new DateTime(2009, 10, 29).ToString(FileSystemProvider.FileDateFormat))), new FileInfo(string.Format("horn-{0}.zip", new DateTime(2009, 10, 31).ToString(FileSystemProvider.FileDateFormat))) }.ToArray()); package = new PackageDouble(category, buildMetaData); string zipFileName = string.Format("{0}-{1}.zip", package.Name, DateTime.Now.ToString(FileSystemProvider.FileDateFormat)); fileSystemProvider.Stub( x => x.ZipFolder(Arg <DirectoryInfo> .Is.TypeOf, Arg <DirectoryInfo> .Is.TypeOf, Arg <string> .Is.TypeOf)). Return(new FileInfo(zipFileName)); }
protected virtual void ExecutePrebuildCommands(IBuildMetaData metaData, IPackageTree packageTree) { packageTree.PatchPackage(); if (!metaData.PrebuildCommandList.HasElements()) { return; } foreach (var command in metaData.PrebuildCommandList) { processFactory.ExcuteCommand(command, packageTree.WorkingDirectory.FullName); } }
protected override void establish_context() { var horn = new Category(null, "orm"); nhibernate = new Category(horn, "nhibernate"); buildMetaData = TreeHelper.GetPackageTreeParts(new List <Dependency>()); buildMetaData.InstallName = "nhibernate"; buildMetaData.Version = "trunk"; buildMetaData.ProjectInfo.Add("forum", "http://groups.google.co.uk/group/nhusers?hl=en"); }
protected override void establish_context() { var horn = new Category(null, "orm"); nhibernate = new Category(horn, "nhibernate"); buildMetaData = TreeHelper.GetPackageTreeParts(new List<Dependency>()); buildMetaData.InstallName = "nhibernate"; buildMetaData.Version = "trunk"; buildMetaData.ProjectInfo.Add("forum", "http://groups.google.co.uk/group/nhusers?hl=en"); }
protected virtual void RetrieveSourceCode(IBuildMetaData buildMetaData, IPackageTree componentTree) { ExecuteRepositoryElementList(buildMetaData, componentTree); ExecuteExportList(buildMetaData, componentTree); if (buildMetaData.SourceControl == null) { return; } log.InfoFormat("\nHorn is fetching {0}.\n\n".ToUpper(), buildMetaData.SourceControl.Url); get.From(buildMetaData.SourceControl).ExportTo(componentTree); }
public override void before_each_spec() { var dependencyResolver = MockRepository.GenerateStub<IDependencyResolver>(); fileSystemProvider = MockRepository.GenerateStub<IFileSystemProvider>(); packageBuilder = MockRepository.GenerateStub<IPackageCommand>(); rootPackageTree = MockRepository.GenerateStub<IPackageTree>(); buildMetaData = MockRepository.GenerateStub<IBuildMetaData>(); commandArgs = new CommandArgs("horn", false, null, false, null); dependencyResolver.Stub(x => x.HasComponent<ICommandArgs>()).Return(true); dependencyResolver.Stub(x => x.Resolve<ICommandArgs>()).Return(commandArgs); dependencyResolver.Stub(x => x.Resolve<IPackageCommand>("install") ).Return(packageBuilder); IoC.InitializeWith(dependencyResolver); rootPackageTree.Stub(x => x.Result).Return(new DirectoryInfo(@"z:\horn")); buildMetaData.ProjectInfo= new Dictionary<string, object>(); rootPackageTree.Stub(x => x.GetAllPackageMetaData()).Return(new List<IBuildMetaData> {buildMetaData}); rootPackageTree.Stub(x => x.Name).Return("horn"); var category = new Category(null, rootPackageTree); fileSystemProvider.Stub(x => x.GetFiles(Arg<DirectoryInfo>.Is.TypeOf, Arg<string>.Is.TypeOf)).Return( new List<FileInfo> { new FileInfo(string.Format("horn-{0}.zip", new DateTime(2009, 10, 30).ToString(FileSystemProvider.FileDateFormat))), new FileInfo(string.Format("horn-{0}.zip", new DateTime(2009, 10, 29).ToString(FileSystemProvider.FileDateFormat))), new FileInfo(string.Format("horn-{0}.zip", new DateTime(2009, 10, 31).ToString(FileSystemProvider.FileDateFormat))) }.ToArray()); package = new PackageDouble(category, buildMetaData); string zipFileName = string.Format("{0}-{1}.zip", package.Name, DateTime.Now.ToString(FileSystemProvider.FileDateFormat)); fileSystemProvider.Stub( x => x.ZipFolder(Arg<DirectoryInfo>.Is.TypeOf, Arg<DirectoryInfo>.Is.TypeOf, Arg<string>.Is.TypeOf)). Return(new FileInfo(zipFileName)); }
protected virtual void ExecuteExportList(IBuildMetaData buildMetaData, IPackageTree componentTree) { if (!buildMetaData.ExportList.HasElements()) return; var initialise = true; foreach (var sourceControl in buildMetaData.ExportList) { log.InfoFormat("\nHorn is fetching {0}.\n\n".ToUpper(), sourceControl.Url); get.From(sourceControl).ExportTo(componentTree, sourceControl.ExportPath, initialise); initialise = false; } }
protected virtual void BuildDependencyTree(IPackageTree packageTree, IDependencyTree dependencyTree) { foreach (var nextTree in dependencyTree) { IBuildMetaData nextMetaData = GetBuildMetaData(nextTree); if (!commandArgs.RebuildOnly) { RetrieveSourceCode(nextMetaData, nextTree); } ExecutePrebuildCommands(nextMetaData, nextTree); BuildSource(nextTree, nextMetaData); } }
public Package(Category parent, IBuildMetaData buildMetaData) { Contents = new List <PackageFile>(); Name = parent.Name; Version = buildMetaData.Version; MetaData = new List <MetaData>(); Parent = parent; foreach (var projectInfo in buildMetaData.ProjectInfo) { MetaData.Add(new MetaData(projectInfo.Key, projectInfo.Value.ToString())); } }
public Package(Category parent, IBuildMetaData buildMetaData) { Contents = new List<PackageFile>(); Name = parent.Name; Version = buildMetaData.Version; MetaData = new List<MetaData>(); Parent = parent; foreach (var projectInfo in buildMetaData.ProjectInfo) { MetaData.Add(new MetaData(projectInfo.Key, projectInfo.Value.ToString())); } }
public static void AssertBuildMetaDataValues(IBuildMetaData metaData) { Assert.IsAssignableFrom<SVNSourceControl>(metaData.SourceControl); Assert.Equal(SvnUrl, metaData.SourceControl.Url); Assert.IsAssignableFrom<MSBuildBuildTool>(metaData.BuildEngine.BuildTool); //TODO: Uncomment. The metadata is currently not being parsed from the BooConfigReader //Assert.Equal(MetaData.Count, metaData.ProjectInfo.Count); //MetaData.ForEach(x => Assert.Contains(x, metaData.ProjectInfo)); Assert.Equal(BuildFile, metaData.BuildEngine.BuildFile); Assert.Equal(OutputDirectory, metaData.BuildEngine.BuildRootDirectory); Assert.Equal(".", metaData.BuildEngine.SharedLibrary); }
protected virtual void ExecuteExportList(IBuildMetaData buildMetaData, IPackageTree componentTree) { if (!buildMetaData.ExportList.HasElements()) { return; } var initialise = true; foreach (var sourceControl in buildMetaData.ExportList) { log.InfoFormat("\nHorn is fetching {0}.\n\n".ToUpper(), sourceControl.Url); get.From(sourceControl).ExportTo(componentTree, sourceControl.ExportPath, initialise); initialise = false; } }
public static void AssertBuildMetaDataValues(IBuildMetaData metaData) { Assert.IsAssignableFrom <SVNSourceControl>(metaData.SourceControl); Assert.Equal(SvnUrl, metaData.SourceControl.Url); Assert.IsAssignableFrom <MSBuildBuildTool>(metaData.BuildEngine.BuildTool); //TODO: Uncomment. The metadata is currently not being parsed from the BooConfigReader //Assert.Equal(MetaData.Count, metaData.ProjectInfo.Count); //MetaData.ForEach(x => Assert.Contains(x, metaData.ProjectInfo)); Assert.Equal(BuildFile, metaData.BuildEngine.BuildFile); Assert.Equal(OutputDirectory, metaData.BuildEngine.BuildRootDirectory); Assert.Equal(".", metaData.BuildEngine.SharedLibrary); }
public PackageBuilderWithOnlyPrebuildStub(IGet get, IProcessFactory processFactory, ICommandArgs commandArgs, IBuildMetaData buildMetaData) : base(get, processFactory, commandArgs) { this.buildMetaData = buildMetaData; }
protected virtual void BuildSource(IPackageTree nextTree, IBuildMetaData nextMetaData) { log.InfoFormat("\nHorn is building {0}.\n\n".ToUpper(), nextMetaData.InstallName); nextMetaData.BuildEngine.Build( processFactory, nextTree, commandArgs.Mode ); }
protected virtual void RetrieveSourceCode(IBuildMetaData buildMetaData, IPackageTree componentTree) { ExecuteRepositoryElementList(buildMetaData, componentTree); ExecuteExportList(buildMetaData, componentTree); if (buildMetaData.SourceControl == null) return; log.InfoFormat("\nHorn is fetching {0}.\n\n".ToUpper(), buildMetaData.SourceControl.Url); get.From(buildMetaData.SourceControl).ExportTo(componentTree); }
protected virtual void ExecuteRepositoryElementList(IBuildMetaData buildMetaData, IPackageTree componentTree) { if (!buildMetaData.RepositoryElementList.HasElements()) return; foreach (var repositoryElement in buildMetaData.RepositoryElementList) { repositoryElement.PrepareRepository(componentTree, get).Export(); } }
protected virtual void ExecutePrebuildCommands(IBuildMetaData metaData, IPackageTree packageTree) { packageTree.PatchPackage(); if (!metaData.PrebuildCommandList.HasElements()) return; foreach (var command in metaData.PrebuildCommandList) { processFactory.ExcuteCommand(command, packageTree.WorkingDirectory.FullName); } }
public PackageDouble(Category parent, IBuildMetaData buildMetaData) : base(parent, buildMetaData) { }
protected override void Because() { buildMetaData = GetBuildMetaDataInstance(); }
protected BooConfigReader() { buildMetaData = new BuildMetaData(); Global.package.PackageInfo.Clear(); }
protected override void BuildSource(IPackageTree nextTree, IBuildMetaData nextMetaData) { Console.WriteLine(string.Format("Building {0}", nextMetaData.InstallName)); }
private IPackageTree GetComponentTree(out IBuildMetaData buildMetaData) { var baseConfigReader = CreateStub<BooConfigReader>(); baseConfigReader.BuildMetaData.InstallName = "horn"; var componentTree = CreateStub<IPackageTree>(); var tempDirectory = new DirectoryInfo(DirectoryHelper.GetTempDirectoryName()); componentTree.Stub(x => x.WorkingDirectory).Return(tempDirectory).Repeat.Any(); componentTree.Stub(x => x.GetRevisionData()).Return(new RevisionData("3")); buildMetaData = GetBuildMetaData(baseConfigReader); componentTree.Stub(x => x.GetBuildMetaData("horn")).Return(buildMetaData); componentTree.Stub(x => x.Name).Return("log4net"); componentTree.Stub(x => x.Result).Return(new DirectoryInfo(@"C:\somewhere\build_root_dir")); componentTree.Stub(x => x.GetBuildMetaData("log4net")) .Return(buildMetaData).IgnoreArguments().Repeat.Any(); return componentTree; }
protected virtual void BuildSource(IPackageTree nextTree, IBuildMetaData nextMetaData) { log.InfoFormat("\nHorn is building {0}.\n\n".ToUpper(), nextMetaData.InstallName); nextMetaData.BuildEngine.Build(processFactory, nextTree, commandArgs.Mode); }