BuildParameters ongoing_build_parameters;
BuildSubmission ongoing_build_submission;
+
+ internal BuildParameters OngoingBuildParameters {
+ get { return ongoing_build_parameters; }
+ }
public void BeginBuild (BuildParameters parameters)
{
public BuildSubmission PendBuildRequest (BuildRequestData requestData)
{
+ if (ongoing_build_parameters == null)
+ throw new InvalidOperationException ("This method cannot be called before calling BeginBuild method.");
var sub = new BuildSubmission (this, requestData);
submissions.Add (sub);
return sub;
[TestFixture]
public class BuildManagerTest
{
- [Test]
- [ExpectedException (typeof (ArgumentNullException))]
- public void GetProjectInstanceForBuildNullFullPath ()
+ Project GetDummyProject ()
{
string empty_project_xml = "<Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003' />";
var path = "file://localhost/foo.xml";
var xml = XmlReader.Create (new StringReader (empty_project_xml), null, path);
var root = ProjectRootElement.Create (xml);
- var proj = new Project (root);
+ return new Project (root);
+ }
+
+ [Test]
+ [ExpectedException (typeof (ArgumentNullException))]
+ public void GetProjectInstanceForBuildNullFullPath ()
+ {
var manager = new BuildManager ();
- manager.GetProjectInstanceForBuild (proj);
+ manager.GetProjectInstanceForBuild (GetDummyProject ());
}
[Test]
[ExpectedException (typeof (ArgumentException))]
public void GetProjectInstanceForBuildEmptyFullPath ()
{
- string empty_project_xml = "<Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003' />";
- var path = "file://localhost/foo.xml";
- var xml = XmlReader.Create (new StringReader (empty_project_xml), null, path);
- var root = ProjectRootElement.Create (xml);
- var proj = new Project (root);
+ var proj = GetDummyProject ();
proj.FullPath = "";
var manager = new BuildManager ();
manager.GetProjectInstanceForBuild (proj);
var inst = manager.GetProjectInstanceForBuild (proj);
Assert.AreEqual (inst, manager.GetProjectInstanceForBuild (proj), "#1");
}
+
+ [Test]
+ [ExpectedException (typeof (InvalidOperationException))]
+ public void PendBuildRequestBeforeBeginBuild ()
+ {
+ string empty_project_xml = "<Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003' />";
+ var path = "file://localhost/foo.xml";
+ var xml = XmlReader.Create (new StringReader (empty_project_xml), null, path);
+ var root = ProjectRootElement.Create (xml);
+ var proj = new ProjectInstance (root);
+ new BuildManager ().PendBuildRequest (new BuildRequestData (proj, new string [0]));
+ }
}
}