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"); } } }