/// <summary> /// Submit 3 build request where first one has multiple references and last has multiple references. Some of the references are built with different global properties /// </summary> public void BuildMultipleProjectsWithReferencesAndDifferentGlobalProperties() { ProjectPropertyInstance prop1 = ProjectPropertyInstance.Create("prop1", "Value1"); ProjectPropertyInstance prop2 = ProjectPropertyInstance.Create("prop2", "Value2"); PropertyDictionary <ProjectPropertyInstance> group1 = new PropertyDictionary <ProjectPropertyInstance>(); group1.Set(prop1); PropertyDictionary <ProjectPropertyInstance> group2 = new PropertyDictionary <ProjectPropertyInstance>(); group2.Set(prop2); RequestDefinition p1 = CreateNewRequest("1.proj"); RequestDefinition p2 = CreateNewRequest("2.proj"); RequestDefinition p3 = CreateNewRequest("3.proj"); RequestDefinition p4 = CreateNewRequest("4.proj"); RequestDefinition p5 = CreateNewRequest("2.proj", group1); RequestDefinition p6 = CreateNewRequest("6.proj"); RequestDefinition p7 = CreateNewRequest("2.proj", group2); p1.AddChildDefinition(p4); p1.AddChildDefinition(p5); p3.AddChildDefinition(p6); p3.AddChildDefinition(p7); p1.SubmitBuildRequest(); p1.ValidateBuildResult(); p2.SubmitBuildRequest(); p2.ValidateBuildResult(); p3.SubmitBuildRequest(); p3.ValidateBuildResult(); }
/// <summary> /// Submit 1 build request which has 3 reference where 2 are the same /// UNDONE: This test will fail due to a bug where 3.proj is added 2 times in the unresolvedConfigurations list thus causing a hang /// </summary> public void BuildOneProjectWith3ReferenceWhere2AreTheSame() { RequestDefinition p1 = CreateNewRequest("1.proj"); RequestDefinition p2 = CreateNewRequest("2.proj"); RequestDefinition p3 = CreateNewRequest("3.proj"); RequestDefinition p4 = CreateNewRequest("3.proj"); p1.AddChildDefinition(p2); p1.AddChildDefinition(p3); p1.AddChildDefinition(p4); p1.SubmitBuildRequest(); p1.ValidateBuildResult(); }
/// <summary> /// A new build request from the node for a project which was already previously built in that node but for a different global properties /// </summary> public void ReferenceAProjectAlreadyBuiltInTheNodeButWithDifferentGlobalProperties() { ProjectPropertyInstance prop1 = ProjectPropertyInstance.Create("prop1", "Value1"); ProjectPropertyInstance prop2 = ProjectPropertyInstance.Create("prop2", "Value2"); PropertyDictionary <ProjectPropertyInstance> group1 = new PropertyDictionary <ProjectPropertyInstance>(); group1.Set(prop1); PropertyDictionary <ProjectPropertyInstance> group2 = new PropertyDictionary <ProjectPropertyInstance>(); group2.Set(prop2); RequestDefinition p1 = CreateNewRequest("1.proj", "2.0", new string[1] { "t1" }, group1); RequestDefinition p2 = CreateNewRequest("2.proj"); RequestDefinition p3 = CreateNewRequest("1.proj", "2.0", new string[1] { "t1" }, group2); p2.AddChildDefinition(p3); p1.SubmitBuildRequest(); p1.ValidateBuildResult(); p2.SubmitBuildRequest(); p2.ValidateBuildResult(); }
/// <summary> /// Submit 1 build request which has a single reference /// </summary> public void BuildOneProjectWith1Reference() { RequestDefinition p1 = CreateNewRequest("1.proj"); RequestDefinition p2 = CreateNewRequest("2.proj"); p1.AddChildDefinition(p2); p1.SubmitBuildRequest(); p1.ValidateBuildResult(); }
/// <summary> /// Submit 3 build request where first one has multiple references /// </summary> public void BuildMultipleProjectsWhereFirstReferencesMultipleNewProjects() { RequestDefinition p1 = CreateNewRequest("1.proj"); RequestDefinition p2 = CreateNewRequest("2.proj"); RequestDefinition p3 = CreateNewRequest("3.proj"); RequestDefinition p4 = CreateNewRequest("4.proj"); RequestDefinition p5 = CreateNewRequest("5.proj"); RequestDefinition p6 = CreateNewRequest("6.proj"); p1.AddChildDefinition(p4); p1.AddChildDefinition(p5); p1.AddChildDefinition(p6); p1.SubmitBuildRequest(); p1.ValidateBuildResult(); p2.SubmitBuildRequest(); p2.ValidateBuildResult(); p3.SubmitBuildRequest(); p3.ValidateBuildResult(); }
/// <summary> /// A new build request from the node of a project which was already previously built in that node /// </summary> public void ReferenceAProjectAlreadyBuiltInTheNode() { RequestDefinition p1 = CreateNewRequest("1.proj"); RequestDefinition p2 = CreateNewRequest("2.proj"); p2.AddChildDefinition(p1); p1.SubmitBuildRequest(); p1.ValidateBuildResult(); p2.SubmitBuildRequest(); p2.ValidateBuildResult(); }
/// <summary> /// Submit 3 build request where first one has multiple references and last has multiple references. Some of the references are built with different tools version /// </summary> public void BuildMultipleProjectsWithReferencesAndDifferentToolsVersion() { RequestDefinition p1 = CreateNewRequest("1.proj", "2.0"); RequestDefinition p2 = CreateNewRequest("2.proj", "2.0"); RequestDefinition p3 = CreateNewRequest("3.proj", "2.0"); RequestDefinition p4 = CreateNewRequest("4.proj", "2.0"); RequestDefinition p5 = CreateNewRequest("2.proj", "3.5"); RequestDefinition p6 = CreateNewRequest("6.proj", "2.0"); RequestDefinition p7 = CreateNewRequest("3.proj", "3.5"); p1.AddChildDefinition(p4); p1.AddChildDefinition(p5); p3.AddChildDefinition(p6); p3.AddChildDefinition(p7); p1.SubmitBuildRequest(); p1.ValidateBuildResult(); p2.SubmitBuildRequest(); p2.ValidateBuildResult(); p3.SubmitBuildRequest(); p3.ValidateBuildResult(); }
/// <summary> /// Submit 3 build request where first one has multiple references and last has multiple references. Some of the references are already built /// </summary> public void BuildMultipleProjectsWithReferencesWhereSomeReferencesAreAlreadyBuilt() { RequestDefinition p1 = CreateNewRequest("1.proj"); RequestDefinition p2 = CreateNewRequest("2.proj"); RequestDefinition p3 = CreateNewRequest("3.proj"); RequestDefinition p4 = CreateNewRequest("4.proj"); RequestDefinition p5 = CreateNewRequest("2.proj"); RequestDefinition p6 = CreateNewRequest("6.proj"); RequestDefinition p7 = CreateNewRequest("2.proj"); p1.AddChildDefinition(p4); p1.AddChildDefinition(p5); p3.AddChildDefinition(p6); p3.AddChildDefinition(p7); p1.SubmitBuildRequest(); p1.ValidateBuildResult(); p2.SubmitBuildRequest(); p2.ValidateBuildResult(); p3.SubmitBuildRequest(); p3.ValidateBuildResult(); }
/// <summary> /// Submit 3 build request where project 3 has a reference to Project 1 /// </summary> public void Build3ProjectsWhere3HasAReferenceTo1() { RequestDefinition p1 = CreateNewRequest("1.proj", "2.0"); RequestDefinition p2 = CreateNewRequest("2.proj", "2.0"); RequestDefinition p3 = CreateNewRequest("3.proj", "2.0"); p3.AddChildDefinition(p1); p1.SubmitBuildRequest(); p1.ValidateBuildResult(); p2.SubmitBuildRequest(); p2.ValidateBuildResult(); p3.SubmitBuildRequest(); p3.ValidateBuildResult(); }
/// <summary> /// Submit 3 build request where the last one has a project reference /// </summary> public void BuildMultipleProjectsWithTheLastProjectHavingReferenceToANewProject() { RequestDefinition p1 = CreateNewRequest("1.proj"); RequestDefinition p2 = CreateNewRequest("2.proj"); RequestDefinition p3 = CreateNewRequest("3.proj"); RequestDefinition p4 = CreateNewRequest("4.proj"); p3.AddChildDefinition(p4); p1.SubmitBuildRequest(); p1.ValidateBuildResult(); p2.SubmitBuildRequest(); p2.ValidateBuildResult(); p3.SubmitBuildRequest(); p3.ValidateBuildResult(); }
/// <summary> /// A new build request from the node for a project which was already previously built in that node but for a different tools version /// </summary> public void ReferenceAProjectAlreadyBuiltInTheNodeButWithDifferentToolsVersion() { RequestDefinition p1 = CreateNewRequest("1.proj", "2.0", new string[1] { "t1" }, null); RequestDefinition p2 = CreateNewRequest("2.proj"); RequestDefinition p3 = CreateNewRequest("1.proj", "3.5", new string[1] { "t1" }, null); p2.AddChildDefinition(p3); p1.SubmitBuildRequest(); p1.ValidateBuildResult(); p2.SubmitBuildRequest(); p2.ValidateBuildResult(); }