2009-03-26 Jonathan Chambers <joncham@gmail.com>
[mono.git] / mcs / class / Microsoft.Build.Engine / Test / resources / TestTasks.cs
index 0f0fca5cf7203d0106461a46793e18e70b47d1dd..46b032fe559e64176d88d870744a9bd2adcc730c 100644 (file)
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
+using System;
 using Microsoft.Build.Framework;
 using Microsoft.Build.Utilities;
 
-public class SimpleTask : Task {
+namespace Foo
+{
+    public class NamespacedOutputTestTask : Task
+    {
+        public override bool Execute()
+        {
+            return true;
+        }
+
+        [Output]
+        public string Property
+        {
+            get { return "some_text"; }
+        }
+    }
+}
+
+public class OutputTestTask : Task {
+       public override bool Execute ()
+       {
+               return true;
+       }
+
+       [Output]
+       public string Property {
+               get { return "some_text"; }
+       }
+}
+
+public class RequiredTestTask_TaskItems : Task {
+       string output;
+       public override bool Execute ()
+       {
+               output = items == null ? "null" : "count: " + items.Length.ToString ();
+               return true;
+       }
+
+       ITaskItem [] items;
+       [Required]
+       public ITaskItem[] Property {
+               set { items = value; }
+       }
+
+       [Output]
+       public string Output
+       {
+               get { return output; }
+       }
+}
+
+public class RequiredTestTask_TaskItem : Task
+{
+       string output;
+       public override bool Execute ()
+       {
+               output = item == null ? "null" : "not null: " + item.ItemSpec;
+               return true;
+       }
+
+       ITaskItem item;
+       [Required]
+       public ITaskItem Property
+       {
+               set { item = value; }
+       }
+
+       [Output]
+       public string Output
+       {
+               get { return output; }
+       }
+}
+
+public class RequiredTestTask_String : Task
+{
+       string output;
+       public override bool Execute ()
+       {
+               output = property == null ? "null" : property.Length.ToString ();
+               return true;
+       }
+
+       string property;
+       [Required]
+       public string Property
+       {
+               set { property = value; }
+       }
+
+       [Output]
+       public string Output
+       {
+               get { return output; }
+       }
+}
+
+public class RequiredTestTask_IntArray: Task
+{
+       string output;
+       public override bool Execute ()
+       {
+               output = items == null ? "null" : "count: " + items.Length.ToString ();
+               return true;
+       }
+
+       int[] items;
+       [Required]
+       public int[] Property
+       {
+               set { items = value; }
+       }
+
+       [Output]
+       public string Output
+       {
+               get { return output; }
+       }
+}
+
+
+public class TrueTestTask : Task {
        public override bool Execute ()
        {
                return true;
        }
 }
 
-public class OutputTestTast : Task {
+public class FalseTestTask : Task {
+       public override bool Execute ()
+       {
+               return false;
+       }
+}
+
+public class StringTestTask : Task {
        public override bool Execute ()
        {
                return true;
        }
 
+       string property;
+       string[] array;
+
        [Output]
        public string Property {
-               get { return "some_text"; }
+               get { return property; }
+               set { property = value; }
        }
+
+       [Output]
+       public string[] Array {
+               get { return array; }
+               set { array = value; }
+       }       
 }
+
+public class PublishTestTask : Task {
+       public override bool Execute ()
+       {
+               return true;
+       }
+
+       [Output]
+       public bool True {
+               get { return true; }
+       }
+
+       [Output]
+       public bool False {
+               get { return false; }
+       }
+
+       [Output]
+       public char Char {
+               get { return 'A'; }
+       }
+
+       [Output]
+       public int Int {
+               get { return -100; }
+       }
+
+       [Output]
+       public uint Uint {
+               get { return 100; }
+       }
+
+       [Output]
+       public float Float {
+               get { return 0.5f; }
+       }
+
+       [Output]
+       public double Double {
+               get { return 0.5; }
+       }
+
+       [Output]
+       public DateTime DateTimeNow {
+               get { return DateTime.Now; }
+       }
+}
+
+public class BatchingTestTask : Task
+{
+       ITaskItem [] sources;
+       string [] output;
+       string[] strings;
+       string single_string;
+
+       public override bool Execute ()
+       {
+               return true;
+       }
+
+       public ITaskItem [] Sources
+       {
+               set {
+                       sources = value;
+                       output = new string [sources.Length];
+                       for (int i = 0; i < sources.Length; i++)
+                               output [i] = sources [i].ItemSpec; 
+               }
+       }
+
+       public string [] Strings
+       {
+               set { strings = value; }
+       }
+
+       public ITaskItem SingleTaskItem
+       {
+               set { single_string = value.ItemSpec; }
+       }
+
+       public string SingleString
+       {
+               set { single_string = value; }
+       }
+
+       [Output]
+       public string SingleStringOutput
+       {
+               get { return single_string; }
+       }
+
+       [Output]
+       public string [] Output
+       {
+               get { return output; }
+       }
+
+       [Output]
+       public string [] StringsOutput
+       {
+               get { return strings; }
+       }
+
+       [Output]
+       public ITaskItem [] TaskItemsOutput
+       {
+               get { return sources; }
+               set { sources = value; }
+       }
+}
+
+namespace Another
+{
+       public class SameTask : Task
+       {
+               string output;
+               public override bool Execute ()
+               {
+                       output = "Another.SameTask";
+                       return true;
+               }
+
+               [Output]
+               public string OutputString
+               {
+                       get { return output; }
+               }
+       }
+}
+
+namespace Other
+{
+       public class SameTask : Task
+       {
+               string output;
+               public override bool Execute ()
+               {
+                       output = "Other.SameTask";
+                       return true;
+               }
+
+               [Output]
+               public string OutputString
+               {
+                       get { return output; }
+               }
+       }
+}
+