public void Should_support_list_of_projects() { var projectList = new Project[] { new Project("someProject", new ProjectDocument(ProjectType.CSharp)) }; projectList[0].Value.SetOutputPath("something"); projectList[0].Value.SetAssemblyName("Project5.dll"); var optimizer = new BuildOptimizer(_cache, MockRepository.GenerateMock <IConfiguration>()); var runInfos = optimizer.AssembleBuildConfiguration(projectList); runInfos.Length.ShouldEqual(1); runInfos[0].Project.Key.ShouldEqual("someProject"); }
public void SetUp() { // Project dependency graph // // Project2 // / //Project0 Project5 // \ / // Project6 // \ //Project1 Project4 // \ / // Project3 // _projectList = new string[] { string.Format("Proj0{0}Project0.csproj", Path.DirectorySeparatorChar), string.Format("Proj1{0}Project1.csproj", Path.DirectorySeparatorChar), string.Format("Proj2{0}Project2.csproj", Path.DirectorySeparatorChar), string.Format("Proj3{0}Project3.csproj", Path.DirectorySeparatorChar), string.Format("Proj4{0}Project4.csproj", Path.DirectorySeparatorChar), string.Format("Proj5{0}Project5.csproj", Path.DirectorySeparatorChar), string.Format("Proj6{0}Project6.csproj", Path.DirectorySeparatorChar) }; _cache = MockRepository.GenerateMock <ICache>(); var document = new ProjectDocument(ProjectType.CSharp); document.AddReferencedBy(new string[] { _projectList[2], _projectList[6] }); document.SetAssemblyName("Project0.dll"); document.SetOutputPath(string.Format("bin{0}Debug", Path.DirectorySeparatorChar)); _cache.Stub(c => c.Get <Project>(_projectList[0])).Return(new Project(_projectList[0], document)); document = new ProjectDocument(ProjectType.CSharp); document.AddReferencedBy(_projectList[3]); document.SetAssemblyName("Project1.dll"); document.SetOutputPath(string.Format("bin{0}Debug", Path.DirectorySeparatorChar)); document.RebuildOnNextRun(); _cache.Stub(c => c.Get <Project>(_projectList[1])).Return(new Project(_projectList[1], document)); document = new ProjectDocument(ProjectType.CSharp); document.AddReference(_projectList[0]); document.SetAssemblyName("Project2.dll"); document.SetOutputPath(string.Format("bin{0}Debug", Path.DirectorySeparatorChar)); _cache.Stub(c => c.Get <Project>(_projectList[2])).Return(new Project(_projectList[2], document)); document = new ProjectDocument(ProjectType.CSharp); document.AddReference(_projectList[1]); document.AddReferencedBy(_projectList[4]); document.SetAssemblyName("Project3.dll"); document.SetOutputPath(string.Format("bin{0}Debug", Path.DirectorySeparatorChar)); _cache.Stub(c => c.Get <Project>(_projectList[3])).Return(new Project(_projectList[3], document)); document = new ProjectDocument(ProjectType.CSharp); document.AddReference(new string[] { _projectList[6], _projectList[3] }); document.SetAssemblyName("Project4.dll"); document.SetOutputPath(string.Format("bin{0}Debug", Path.DirectorySeparatorChar)); _cache.Stub(c => c.Get <Project>(_projectList[4])).Return(new Project(_projectList[4], document)); document = new ProjectDocument(ProjectType.CSharp); document.AddReference(_projectList[6]); document.SetAssemblyName("Project5.dll"); document.SetOutputPath(string.Format("bin{0}Debug", Path.DirectorySeparatorChar)); document.RebuildOnNextRun(); _cache.Stub(c => c.Get <Project>(_projectList[5])).Return(new Project(_projectList[5], document)); document = new ProjectDocument(ProjectType.CSharp); document.AddReference(_projectList[0]); document.AddReferencedBy(new string[] { _projectList[4], _projectList[5] }); document.SetAssemblyName("Project6.dll"); document.SetOutputPath(string.Format("bin{0}Debug", Path.DirectorySeparatorChar)); _cache.Stub(c => c.Get <Project>(_projectList[6])).Return(new Project(_projectList[6], document)); _optimizer = new BuildOptimizer(_cache, MockRepository.GenerateMock <IConfiguration>()); }