+ [Test]
+ public void TestBuild2 ()
+ {
+ Engine engine;
+ Project project;
+
+ string documentString = @"
+ <Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
+ <Target Name='T' Inputs='Test\resources\TestTasks.cs' Outputs='Test\resources\TestTasks.dll'>
+ <Message Text='text' />
+ </Target>
+ </Project>
+ ";
+
+ engine = new Engine (Consts.BinPath);
+ TestLogger tl = new TestLogger ();
+ engine.RegisterLogger (tl);
+ project = engine.CreateNewProject ();
+ project.LoadXml (documentString);
+
+ project.Build ("T");
+ project.Build ("T");
+
+ Assert.AreEqual (2, tl.TargetStartedEvents, "A1");
+ Assert.AreEqual (2, tl.TargetFinishedEvents, "A1");
+ }
+
+ [Test]
+ public void TestBuild3 ()
+ {
+ Engine engine;
+ Project project;
+
+ string documentString = @"
+ <Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
+ <Target Name='T' Inputs='Test\resources\TestTasks.cs' Outputs='Test\resources\TestTasks.dll'>
+ <Message Text='text' />
+ </Target>
+ </Project>
+ ";
+
+ engine = new Engine (Consts.BinPath);
+ TestLogger tl = new TestLogger ();
+ engine.RegisterLogger (tl);
+ project = engine.CreateNewProject ();
+ project.LoadXml (documentString);
+
+ project.Build (new string [1] { "T" }, null, BuildSettings.None);
+ project.Build (new string [1] { "T" }, null, BuildSettings.None);
+
+ Assert.AreEqual (2, tl.TargetStartedEvents, "A1");
+ Assert.AreEqual (2, tl.TargetFinishedEvents, "A1");
+ }
+
+ [Test]
+ [Category ("NotWorking")]
+ public void TestBuild4 ()
+ {
+ Engine engine;
+ Project project;
+
+ string documentString = @"
+ <Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
+ <Target Name='T' Inputs='Test\resources\TestTasks.cs' Outputs='Test\resources\TestTasks.dll'>
+ <Message Text='text' />
+ </Target>
+ </Project>
+ ";
+
+ engine = new Engine (Consts.BinPath);
+ TestLogger tl = new TestLogger ();
+ engine.RegisterLogger (tl);
+ project = engine.CreateNewProject ();
+ project.LoadXml (documentString);
+
+ project.Build (new string [1] { "T" }, null, BuildSettings.DoNotResetPreviouslyBuiltTargets);
+ project.Build (new string [1] { "T" }, null, BuildSettings.DoNotResetPreviouslyBuiltTargets);
+
+ Assert.AreEqual (1, tl.TargetStartedEvents, "A1");
+ Assert.AreEqual (1, tl.TargetFinishedEvents, "A1");
+ }
+
+ [Test]
+ [Category ("NotWorking")]
+ public void TestGetConditionedPropertyValues ()
+ {
+ Engine engine;
+ Project project;
+
+ string documentString = @"
+ <Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
+ <PropertyGroup Condition='true'>
+ <A>A</A>
+ <B Condition='true'>A</B>
+ </PropertyGroup>
+ <PropertyGroup>
+ <C Condition='true'>A</C>
+ <C Condition='false'>B</C>
+ <C Condition='!false'>C</C>
+ <D>A</D>
+ <E Condition="" '$(C)' == 'A' "">E</E>
+ </PropertyGroup>
+ </Project>
+ ";
+
+ engine = new Engine (Consts.BinPath);
+ project = engine.CreateNewProject ();
+ project.LoadXml (documentString);
+
+ Assert.AreEqual (0, project.GetConditionedPropertyValues ("A").Length, "A1");
+ Assert.AreEqual (0, project.GetConditionedPropertyValues ("B").Length, "A2");
+ Assert.AreEqual (1, project.GetConditionedPropertyValues ("C").Length, "A3");
+ Assert.AreEqual (0, project.GetConditionedPropertyValues ("D").Length, "A4");
+ Assert.AreEqual (0, project.GetConditionedPropertyValues ("E").Length, "A5");
+ Assert.AreEqual ("A", project.GetConditionedPropertyValues ("C") [0], "A6");
+ }
+
+ [Test]
+ public void TestGetProjectExtensions ()
+ {
+ Engine engine;
+ Project project;
+
+ string documentString = @"
+ <Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
+ <ProjectExtensions>
+ <Node>Text</Node>
+ </ProjectExtensions>
+ </Project>
+ ";
+
+ engine = new Engine (Consts.BinPath);
+ project = engine.CreateNewProject ();
+ project.LoadXml (documentString);
+
+ Assert.AreEqual (String.Empty, project.GetProjectExtensions (null), "A1");
+ Assert.AreEqual (String.Empty, project.GetProjectExtensions (String.Empty), "A2");
+ Assert.AreEqual (String.Empty, project.GetProjectExtensions ("something"), "A3");
+ Assert.AreEqual ("Text", project.GetProjectExtensions ("Node"), "A4");
+ }
+