X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FMicrosoft.Build.Engine%2FTest%2Fvarious%2FProperties.cs;h=795a71230663dc1bc363989138e1b4d6ec189947;hb=8da27c63c37365e4467b2e780e3febcf59c8e0c7;hp=e6940109f3b52bf4d659e7c5a5cf6d7512aee872;hpb=64f85a65b023522d3f34e9932e6a843e0ad8fc3b;p=mono.git
diff --git a/mcs/class/Microsoft.Build.Engine/Test/various/Properties.cs b/mcs/class/Microsoft.Build.Engine/Test/various/Properties.cs
index e6940109f3b..795a7123066 100644
--- a/mcs/class/Microsoft.Build.Engine/Test/various/Properties.cs
+++ b/mcs/class/Microsoft.Build.Engine/Test/various/Properties.cs
@@ -1,8 +1,9 @@
//
// Properties.cs
//
-// Author:
+// Authors:
// Marek Sieradzki (marek.sieradzki@gmail.com)
+// Marek Safar (marek.safar@gmail.com)
//
// (C) 2006 Marek Sieradzki
//
@@ -33,17 +34,26 @@ using NUnit.Framework;
namespace MonoTests.Microsoft.Build.BuildEngine.Various {
[TestFixture]
public class Properties {
- [Test]
- public void TestProperties ()
+
+ Project proj;
+
+ [SetUp]
+ public void Setup ()
{
Engine engine = new Engine (Consts.BinPath);
- Project proj = engine.CreateNewProject ();
+ proj = engine.CreateNewProject ();
+ }
+ [Test]
+ public void PropertyReference ()
+ {
string documentString = @"
debug
$(Config)-$(Config)
+ $(Config) $(Config)
+ $(Config-$(Config)
";
@@ -52,6 +62,167 @@ namespace MonoTests.Microsoft.Build.BuildEngine.Various {
Assert.AreEqual (1, proj.PropertyGroups.Count, "A1");
Assert.AreEqual ("debug", proj.GetEvaluatedProperty ("Config"), "A2");
Assert.AreEqual ("debug-debug", proj.GetEvaluatedProperty ("ExpProp"), "A3");
+ Assert.AreEqual (" debug debug ", proj.GetEvaluatedProperty ("ExpProp2"), "A4");
+ Assert.AreEqual ("$(Config-$(Config)", proj.GetEvaluatedProperty ("InvProp1"), "A5");
+ }
+
+ [Test]
+ [Category ("NotDotNet")]
+ public void PropertyReference2 ()
+ {
+ string documentString = @"
+
+
+
+ A
+ B
+
+
+
+
+
+
+
+
+ ";
+
+ proj.LoadXml (documentString);
+ proj.Build ("Main");
+ Assert.AreEqual (1, proj.GetEvaluatedItemsByName ("Out").Count, "A1");
+ Assert.AreEqual ("AB", proj.GetEvaluatedItemsByName ("Out") [0].Include, "A2");
+ }
+
+ [Test]
+ public void StringInstanceProperties ()
+ {
+ string documentString = @"
+
+
+ debug
+ null
+
+ $(Config.Substring(0,3))
+ $(Config.Length )
+ $(Config.StartsWith ('DE', System.StringComparison.OrdinalIgnoreCase))
+ $(NullValue.StartsWith ('Te', StringComparison.OrdinalIgnoreCase))
+ $(TargetValue.Trim('\\'))
+
+
+ ";
+
+ proj.LoadXml (documentString);
+ Assert.AreEqual ("deb ", proj.GetEvaluatedProperty ("Prop1"), "#1");
+ Assert.AreEqual ("5", proj.GetEvaluatedProperty ("Prop2"), "#2");
+ Assert.AreEqual ("True", proj.GetEvaluatedProperty ("Prop3"), "#3");
+ Assert.AreEqual ("False", proj.GetEvaluatedProperty ("Prop4"), "#4");
+ Assert.AreEqual ("", proj.GetEvaluatedProperty ("Prop5"), "#5");
+ }
+
+ [Test]
+ public void AllowedFrameworkMembers ()
+ {
+ string documentString = @"
+
+
+ $([System.Byte]::MaxValue)
+ $([System.math]::Abs (-4.2) )
+ $([System.DateTime]::Today )
+ $([System.Char]::GetNumericValue('3'))
+ $([System.String]::Compare (Null, nUll))
+ $([System.Environment]::GetLogicalDrives ( ))
+ $([System.String]::Concat (`,`, `n`, `,`))
+
+
+ ";
+
+ proj.LoadXml (documentString);
+ Assert.AreEqual ("255", proj.GetEvaluatedProperty ("Prop1"), "#1");
+ Assert.AreEqual ("4.2", proj.GetEvaluatedProperty ("Prop2"), "#2");
+ Assert.AreEqual (DateTime.Today.ToString (), proj.GetEvaluatedProperty ("Prop3"), "#3");
+ Assert.AreEqual ("3", proj.GetEvaluatedProperty ("Prop4"), "#4");
+ Assert.AreEqual ("0", proj.GetEvaluatedProperty ("Prop5"), "#5");
+ Assert.AreEqual (string.Join (";", Environment.GetLogicalDrives ()), proj.GetEvaluatedProperty ("Prop6"), "#6");
+ Assert.AreEqual (",n,", proj.GetEvaluatedProperty ("Prop7"), "#7");
+ }
+
+ [Test]
+ public void InstanceMethodOnStaticProperty ()
+ {
+ string documentString = @"
+
+
+ $([System.DateTime]::Now.ToString(""yyyy.MM.dd""))
+
+
+ ";
+
+ proj.LoadXml (documentString);
+ Assert.AreEqual (DateTime.Now.ToString ("yyyy.MM.dd"), proj.GetEvaluatedProperty ("Prop1"), "#1");
+ }
+
+ [Test]
+ public void InstanceMemberOnStaticProperty ()
+ {
+ string documentString = @"
+
+
+ $([System.DateTime]::Now.Year)
+
+
+ ";
+
+ proj.LoadXml (documentString);
+ Assert.AreEqual (DateTime.Now.Year.ToString (), proj.GetEvaluatedProperty ("Prop1"), "#1");
+ }
+
+ [Test]
+ public void InstanceMembersOnStaticMethod ()
+ {
+ string documentString = @"
+
+
+ $([System.String]::Concat('a', 'bb', 'c').Length.GetHashCode ())
+
+
+
+ ";
+
+ proj.LoadXml (documentString);
+ Assert.AreEqual (4.GetHashCode ().ToString (), proj.GetEvaluatedProperty ("Prop1"), "#1");
+ }
+
+ [Test]
+ public void MSBuildPropertyFunctions ()
+ {
+ string documentString = @"
+
+
+ 0.6
+ 6
+ $([MSBuild]::Add($(NumberOne), $(NumberTwo)))
+
+
+ ";
+
+ proj.LoadXml (documentString);
+ Assert.AreEqual ("6.6", proj.GetEvaluatedProperty ("Prop1"), "#1");
+ }
+
+ [Test]
+ public void Constructor ()
+ {
+ string documentString = @"
+
+
+ 0.6
+ 6
+ $([System.String]::new('value').EndsWith ('ue'))
+
+
+ ";
+
+ proj.LoadXml (documentString);
+ Assert.AreEqual ("True", proj.GetEvaluatedProperty ("Prop1"), "#1");
}
}
}