2006-12-07 Marek Sieradzki <marek.sieradzki@gmail.com>
[mono.git] / mcs / class / Microsoft.Build.Engine / Test / Microsoft.Build.BuildEngine / BuildTaskTest.cs
index addcb482fd069d65ae2a3c52c1f1f4822a50e174..37044d95ee25c4f8b43e4296ebe06f5a051b4b1c 100644 (file)
@@ -285,5 +285,125 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                        bt [0].ContinueOnError = false;
                        Assert.IsFalse (bt [0].ContinueOnError, "A4");
                }
+
+               [Test]
+               public void TestAddOutputItem1 ()
+               {
+                       Engine engine;
+                       Project project;
+
+                       string documentString = @"
+                               <Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
+                                       <Target Name='T'>
+                                               <Message />
+                                       </Target>
+                               </Project>
+                       ";
+
+                       engine = new Engine (Consts.BinPath);
+                       project = engine.CreateNewProject ();
+                       project.LoadXml (documentString);
+
+                       Target [] t = new Target [1];
+                       BuildTask [] bt;
+                       project.Targets.CopyTo (t, 0);
+                       bt = GetTasks (t [0]);
+
+                       bt [0].AddOutputItem (null, null);
+               }
+
+               [Test]
+               public void TestAddOutputItem2 ()
+               {
+                       Engine engine;
+                       Project project;
+
+                       string documentString = @"
+                               <Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
+                                       <UsingTask
+                                               AssemblyFile='Test\resources\TestTasks.dll'
+                                               TaskName='OutputTestTask'
+                                       />
+                                       <Target Name='T'>
+                                               <OutputTestTask />
+                                       </Target>
+                               </Project>
+                       ";
+
+                       engine = new Engine (Consts.BinPath);
+                       project = engine.CreateNewProject ();
+                       project.LoadXml (documentString);
+
+                       Target [] t = new Target [1];
+                       BuildTask [] bt;
+                       project.Targets.CopyTo (t, 0);
+                       bt = GetTasks (t [0]);
+
+                       bt [0].AddOutputItem ("Property", "ItemName");
+                       project.Build ("T");
+
+                       Assert.AreEqual ("ItemName", project.EvaluatedItems [0].Name, "A1");
+                       Assert.AreEqual ("some_text", project.EvaluatedItems [0].FinalItemSpec, "A2");
+               }
+
+               [Test]
+               public void TestAddOutputProperty1 ()
+               {
+                       Engine engine;
+                       Project project;
+
+                       string documentString = @"
+                               <Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
+                                       <Target Name='T'>
+                                               <Message />
+                                       </Target>
+                               </Project>
+                       ";
+
+                       engine = new Engine (Consts.BinPath);
+                       project = engine.CreateNewProject ();
+                       project.LoadXml (documentString);
+
+                       Target [] t = new Target [1];
+                       BuildTask [] bt;
+                       project.Targets.CopyTo (t, 0);
+                       bt = GetTasks (t [0]);
+
+                       bt [0].AddOutputProperty (null, null);
+               }
+
+               [Test]
+               public void TestAddOutputProperty2 ()
+               {
+                       Engine engine;
+                       Project project;
+
+                       string documentString = @"
+                               <Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
+                                       <UsingTask
+                                               AssemblyFile='Test\resources\TestTasks.dll'
+                                               TaskName='OutputTestTask'
+                                       />
+                                       <Target Name='T'>
+                                               <OutputTestTask />
+                                       </Target>
+                               </Project>
+                       ";
+
+                       engine = new Engine (Consts.BinPath);
+                       project = engine.CreateNewProject ();
+                       project.LoadXml (documentString);
+
+                       Target [] t = new Target [1];
+                       BuildTask [] bt;
+                       project.Targets.CopyTo (t, 0);
+                       bt = GetTasks (t [0]);
+
+                       bt [0].AddOutputProperty ("Property", "PropertyName");
+                       project.Build ("T");
+
+                       Assert.AreEqual ("some_text", project.EvaluatedProperties ["PropertyName"].Value, "A1");
+                       Assert.AreEqual ("some_text", project.EvaluatedProperties ["PropertyName"].FinalValue, "A1");
+               }
        }
 }