diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/BindingProject.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/BindingProject.cs
index a30ebf880834..6f431baee16c 100644
--- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/BindingProject.cs
+++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/BindingProject.cs
@@ -24,7 +24,7 @@ public void BuildTest ()
AppBundlePath = mtouchPaths.AppBundlePath;
var dllPath = Path.Combine(mtouchPaths.ProjectBinPath, "bindings-test.dll");
- Engine.GlobalProperties.SetProperty ("Platform", Platform);
+ Engine.ProjectCollection.SetGlobalProperty ("Platform", Platform);
RunTarget (proj, "Build", 0);
Assert.IsTrue (File.Exists (dllPath), "{1} binding dll does not exist: {0} ", dllPath, Platform);
@@ -43,7 +43,7 @@ public void FrameworkTest ()
AppBundlePath = mtouchPaths.AppBundlePath;
var dllPath = Path.Combine(mtouchPaths.ProjectBinPath, "bindings-test.dll");
- Engine.GlobalProperties.SetProperty ("Platform", Platform);
+ Engine.ProjectCollection.SetGlobalProperty ("Platform", Platform);
RunTarget (proj, "Build", 0);
Assert.IsTrue (File.Exists (dllPath), "{1} binding dll does not exist: {0} ", dllPath, Platform);
diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/Bug60536.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/Bug60536.cs
index 4d3cecea167d..8140a93d611b 100644
--- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/Bug60536.cs
+++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/Bug60536.cs
@@ -3,9 +3,9 @@
using System.Linq;
using System.Collections;
-using NUnit.Framework;
+using Microsoft.Build.Evaluation;
-using Microsoft.Build.BuildEngine;
+using NUnit.Framework;
namespace Xamarin.iOS.Tasks
{
@@ -30,8 +30,8 @@ public void TestACToolTaskCatchesJsonException ()
var project = SetupProject (Engine, csproj);
AppBundlePath = mtouchPaths ["app_bundlepath"];
- Engine.GlobalProperties.SetProperty("Platform", platform);
- Engine.GlobalProperties.SetProperty("Configuration", config);
+ Engine.ProjectCollection.SetGlobalProperty("Platform", platform);
+ Engine.ProjectCollection.SetGlobalProperty("Configuration", config);
if (clean) {
RunTarget (project, "Clean");
@@ -56,8 +56,9 @@ public void TestACToolTaskCatchesJsonException ()
}
project = SetupProject (Engine, mtouchPaths.ProjectCSProjPath);
+ var projectInstance = project.CreateProjectInstance ();
- Engine.BuildProject (project, new [] { target }, new Hashtable { {"Platform", "iPhone"} }, BuildSettings.None);
+ Engine.BuildProject (projectInstance, new [] { target }, new Hashtable { {"Platform", "iPhone"} });
if (Engine.Logger.ErrorEvents.Count != 1) {
string messages = string.Empty;
if (Engine.Logger.ErrorEvents.Count > 0)
diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/Extensions/ExtensionTestBase.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/Extensions/ExtensionTestBase.cs
index 289ddbe10280..d638f2505827 100644
--- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/Extensions/ExtensionTestBase.cs
+++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/Extensions/ExtensionTestBase.cs
@@ -35,8 +35,8 @@ public void BuildExtension (string hostAppName, string extensionName, string bun
AppBundlePath = mtouchPaths ["app_bundlepath"];
string extensionPath = Path.Combine(AppBundlePath, "PlugIns", extensionName + ".appex");
- Engine.GlobalProperties.SetProperty ("Platform", platform);
- Engine.GlobalProperties.SetProperty ("Configuration", config);
+ Engine.ProjectCollection.SetGlobalProperty ("Platform", platform);
+ Engine.ProjectCollection.SetGlobalProperty ("Configuration", config);
RunTarget (proj, "Clean");
Assert.IsFalse (Directory.Exists (AppBundlePath), "{1}: App bundle exists after cleanup: {0} ", AppBundlePath, bundlePath);
diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/Extensions/WatchKit.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/Extensions/WatchKit.cs
index 9ed2f5725853..1a2c591aadf6 100644
--- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/Extensions/WatchKit.cs
+++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/Extensions/WatchKit.cs
@@ -38,7 +38,7 @@ public void InvalidBundleIdTest ()
File.WriteAllText (appInfoPath, appInfoContents.Replace ("com.xamarin.MyWatchApp", "com.xamarin.MyWatchAppX"));
var proj = SetupProject (Engine, mtouchPaths.ProjectCSProjPath);
- Engine.GlobalProperties.SetProperty ("Platform", Platform);
+ Engine.ProjectCollection.SetGlobalProperty ("Platform", Platform);
AppBundlePath = mtouchPaths ["app_bundlepath"];
RunTarget (proj, "Build", 2);
Assert.AreEqual ("The App Extension 'WatchExtension' has an invalid CFBundleIdentifier (com.xamarin.MyWatchApp.WatchExtension), it does not begin with the main app bundle's CFBundleIdentifier (com.xamarin.MyWatchAppX).", Engine.Logger.ErrorEvents [0].Message, "#1");
@@ -61,12 +61,12 @@ public void CreateIpa ()
AppBundlePath = mtouchPaths.AppBundlePath;
- Engine.GlobalProperties.SetProperty ("Platform", Platform);
- Engine.GlobalProperties.SetProperty ("BuildIpa", "true");
- Engine.GlobalProperties.SetProperty ("IpaIncludeArtwork", "true");
- Engine.GlobalProperties.SetProperty ("CodesignProvision", "Automatic"); // Provisioning profile
- Engine.GlobalProperties.SetProperty ("CodesignKey", "iPhone Developer");
- Engine.GlobalProperties.SetProperty ("Configuration", configuration);
+ Engine.ProjectCollection.SetGlobalProperty ("Platform", Platform);
+ Engine.ProjectCollection.SetGlobalProperty ("BuildIpa", "true");
+ Engine.ProjectCollection.SetGlobalProperty ("IpaIncludeArtwork", "true");
+ Engine.ProjectCollection.SetGlobalProperty ("CodesignProvision", "Automatic"); // Provisioning profile
+ Engine.ProjectCollection.SetGlobalProperty ("CodesignKey", "iPhone Developer");
+ Engine.ProjectCollection.SetGlobalProperty ("Configuration", configuration);
RunTarget (proj, "Clean");
Assert.IsFalse (Directory.Exists (AppBundlePath), "{1}: App bundle exists after cleanup: {0} ", AppBundlePath, Platform);
@@ -103,7 +103,7 @@ public void CreateIpa ()
string wkPath = "WatchKitSupport/WK";
Assert.Contains (wkPath, lines, wkPath + " does not exist");
- var ipaIncludeArtwork = proj.GetEvaluatedProperty ("IpaIncludeArtwork");
+ var ipaIncludeArtwork = proj.GetPropertyValue ("IpaIncludeArtwork");
Assert.IsTrue (output.Contains ("iTunesMetadata.plist"), string.Format ("The ipa should contain at least one iTunesMetadata.plist file if we are using an AppStore config and IpaIncludeArtwork is true. IpaIncludeArtwork: {0}", ipaIncludeArtwork));
RunTarget (proj, "Clean");
diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/NativeReferences.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/NativeReferences.cs
index c74924a3b190..13dbd4ca404b 100644
--- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/NativeReferences.cs
+++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/NativeReferences.cs
@@ -1,5 +1,6 @@
using System;
using System.IO;
+using System.Linq;
using NUnit.Framework;
namespace Xamarin.iOS.Tasks {
@@ -16,12 +17,12 @@ public void BasicTest ()
{
var mtouchPaths = SetupProjectPaths ("MyTabbedApplication", "../", true, Platform);
- Engine.GlobalProperties.SetProperty ("Platform", Platform);
+ Engine.ProjectCollection.SetGlobalProperty ("Platform", Platform);
var proj = SetupProject (Engine, mtouchPaths.ProjectCSProjPath);
- var nr = proj.AddNewItem ("NativeReference", Path.Combine (".", "..", "..", "..", "tests", "test-libraries", ".libs", "ios", "XTest.framework"));
- nr.SetMetadata ("IsCxx", "False");
- nr.SetMetadata ("Kind", "Framework");
+ var nr = proj.AddItem ("NativeReference", Path.Combine (".", "..", "..", "..", "tests", "test-libraries", ".libs", "ios", "XTest.framework")).First ();
+ nr.SetMetadataValue ("IsCxx", "False");
+ nr.SetMetadataValue ("Kind", "Framework");
AppBundlePath = mtouchPaths.AppBundlePath;
@@ -40,14 +41,14 @@ public void WithIncrementalBuilds ()
var mtouchPaths = SetupProjectPaths ("MyiOSAppWithBinding", "../", true, Platform);
- Engine.GlobalProperties.SetProperty ("Platform", Platform);
+ Engine.ProjectCollection.SetGlobalProperty ("Platform", Platform);
var proj = SetupProject (Engine, mtouchPaths.ProjectCSProjPath);
- proj.GlobalProperties.SetProperty ("MtouchFastDev", "true");
- proj.GlobalProperties.SetProperty ("MtouchExtraArgs", "-vvvv");
- proj.GlobalProperties.SetProperty ("MtouchArch", "ARM64"); // only use ARM64 to speed up the build.
- proj.GlobalProperties.SetProperty ("MtouchLink", "Full"); // also to speed up the build.
+ proj.SetGlobalProperty ("MtouchFastDev", "true");
+ proj.SetGlobalProperty ("MtouchExtraArgs", "-vvvv");
+ proj.SetGlobalProperty ("MtouchArch", "ARM64"); // only use ARM64 to speed up the build.
+ proj.SetGlobalProperty ("MtouchLink", "Full"); // also to speed up the build.
AppBundlePath = mtouchPaths.AppBundlePath;
diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/ProjectTest.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/ProjectTest.cs
index dc401e2840b8..00609a9cc2c2 100644
--- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/ProjectTest.cs
+++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/ProjectsTests/ProjectTest.cs
@@ -42,8 +42,8 @@ public string BuildProject (string appName, string platform, string config, int
var proj = SetupProject (Engine, csproj);
AppBundlePath = mtouchPaths ["app_bundlepath"];
- Engine.GlobalProperties.SetProperty("Platform", platform);
- Engine.GlobalProperties.SetProperty("Configuration", config);
+ Engine.ProjectCollection.SetGlobalProperty("Platform", platform);
+ Engine.ProjectCollection.SetGlobalProperty("Configuration", config);
if (clean) {
RunTarget (proj, "Clean");
diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TargetTests/TargetTests.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TargetTests/TargetTests.cs
index 39cabef0af1e..f22df5697988 100644
--- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TargetTests/TargetTests.cs
+++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TargetTests/TargetTests.cs
@@ -1,3 +1,4 @@
+using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -5,6 +6,7 @@
using Mono.Cecil;
using NUnit.Framework;
using Xamarin.MacDev;
+using Microsoft.Build.Execution;
namespace Xamarin.iOS.Tasks
{
@@ -135,30 +137,30 @@ static bool BundleResourceExists (string path, ref int extra)
[Test]
public void GetReferencedAssemblies_Executable ()
{
- RunTarget (MonoTouchProject, TargetName.ResolveReferences);
- var references = MonoTouchProject.GetEvaluatedItemsByName ("ReferencePath").ToArray ();
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.ResolveReferences);
+ var references = MonoTouchProjectInstance.GetItems ("ReferencePath").ToArray ();
Assert.AreEqual (6, references.Length, "#1");
- Assert.IsTrue (references.Any (t => t.Include.Contains ("MyLibrary")), "#2");
- Assert.IsTrue (references.Any (t => t.Include.Contains ("System")), "#3a");
- Assert.IsTrue (references.Any (t => t.Include.Contains ("System.Xml")), "#3b");
- Assert.IsTrue (references.Any (t => t.Include.Contains ("System.Core")), "#3c");
- Assert.IsTrue (references.Any (t => t.Include.Contains ("mscorlib")), "#3d");
- Assert.IsTrue (references.Any (t => t.Include.Contains ("Xamarin.iOS")), "#3e");
+ Assert.IsTrue (references.Any (t => t.EvaluatedInclude.Contains ("MyLibrary")), "#2");
+ Assert.IsTrue (references.Any (t => t.EvaluatedInclude.Contains ("System")), "#3a");
+ Assert.IsTrue (references.Any (t => t.EvaluatedInclude.Contains ("System.Xml")), "#3b");
+ Assert.IsTrue (references.Any (t => t.EvaluatedInclude.Contains ("System.Core")), "#3c");
+ Assert.IsTrue (references.Any (t => t.EvaluatedInclude.Contains ("mscorlib")), "#3d");
+ Assert.IsTrue (references.Any (t => t.EvaluatedInclude.Contains ("Xamarin.iOS")), "#3e");
}
[Test]
public void GetReferencedAssemblies_Library ()
{
- RunTarget (LibraryProject, TargetName.ResolveReferences);
- var references = LibraryProject.GetEvaluatedItemsByName ("ReferencePath").ToArray ();
+ RunTargetOnInstance (LibraryProjectInstance, TargetName.ResolveReferences);
+ var references = LibraryProjectInstance.GetItems ("ReferencePath").ToArray ();
Assert.AreEqual (5, references.Length, "#1");
- Assert.IsTrue (references.Any (t => t.Include.Contains ("System")), "#2a");
- Assert.IsTrue (references.Any (t => t.Include.Contains ("System.Xml")), "#2b");
- Assert.IsTrue (references.Any (t => t.Include.Contains ("System.Core")), "#2c");
- Assert.IsTrue (references.Any (t => t.Include.Contains ("mscorlib")), "#2d");
- Assert.IsTrue (references.Any (t => t.Include.Contains ("Xamarin.iOS")), "#2e");
+ Assert.IsTrue (references.Any (t => t.EvaluatedInclude.Contains ("System")), "#2a");
+ Assert.IsTrue (references.Any (t => t.EvaluatedInclude.Contains ("System.Xml")), "#2b");
+ Assert.IsTrue (references.Any (t => t.EvaluatedInclude.Contains ("System.Core")), "#2c");
+ Assert.IsTrue (references.Any (t => t.EvaluatedInclude.Contains ("mscorlib")), "#2d");
+ Assert.IsTrue (references.Any (t => t.EvaluatedInclude.Contains ("Xamarin.iOS")), "#2e");
}
[Test]
@@ -167,7 +169,7 @@ public void BuildExecutable ()
var expectedFiles = ExpectedExecutableFiles;
int extra = 0;
- RunTarget (MonoTouchProject, TargetName.Build);
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.Build);
Assert.IsTrue (Directory.Exists (AppBundlePath), "#1");
foreach (var file in expectedFiles)
@@ -187,7 +189,7 @@ public void BuildExecutable ()
[Test]
public void CopyContentToBundle ()
{
- RunTarget (MonoTouchProject, TargetName.CopyResourcesToBundle);
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.CopyResourcesToBundle);
foreach (var v in ExpectedExecutableBundleResources)
Assert.IsTrue (File.Exists (v) || Directory.Exists (v), string.Format ("{0} was not copied to the bundle", Path.GetFullPath (v)));
@@ -196,12 +198,12 @@ public void CopyContentToBundle ()
[Test]
public void CleanExecutable ()
{
- RunTarget (MonoTouchProject, TargetName.Clean);
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.Clean);
Assert.IsFalse (Directory.Exists (MonoTouchProjectBinPath), "#1a");
Assert.IsFalse (Directory.Exists (MonoTouchProjectObjPath), "#1b");
- RunTarget (MonoTouchProject, TargetName.Build);
- RunTarget (MonoTouchProject, TargetName.Clean);
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.Build);
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.Clean);
Assert.IsEmpty (Directory.GetDirectories (MonoTouchProjectBinPath, "*.dSYM", SearchOption.AllDirectories), "#2a");
Assert.IsEmpty (Directory.GetFiles (MonoTouchProjectBinPath, "*.*", SearchOption.AllDirectories), "#2b");
Assert.IsFalse (Directory.Exists (MonoTouchProjectObjPath), "#2c");
@@ -210,12 +212,12 @@ public void CleanExecutable ()
[Test]
public void CleanLibrary ()
{
- RunTarget (LibraryProject, TargetName.Clean);
+ RunTargetOnInstance (LibraryProjectInstance, TargetName.Clean);
Assert.IsFalse (Directory.Exists (LibraryProjectBinPath), "#1a");
Assert.IsFalse (Directory.Exists (LibraryProjectObjPath), "#1b");
- RunTarget (LibraryProject, TargetName.Build);
- RunTarget (LibraryProject, TargetName.Clean);
+ RunTargetOnInstance (LibraryProjectInstance, TargetName.Build);
+ RunTargetOnInstance (LibraryProjectInstance, TargetName.Clean);
Assert.IsEmpty (Directory.GetFiles (LibraryProjectBinPath, "*.*", SearchOption.AllDirectories), "#2a");
Assert.IsFalse (Directory.Exists (LibraryProjectObjPath), "#2b");
}
@@ -223,7 +225,7 @@ public void CleanLibrary ()
[Test]
public void CompileInterfaceDefinitions_Library ()
{
- RunTarget (LibraryProject, TargetName.CompileInterfaceDefinitions);
+ RunTargetOnInstance (LibraryProjectInstance, TargetName.CompileInterfaceDefinitions);
Assert.IsNotEmpty (Directory.GetFiles (LibraryProjectObjPath, "*.*", SearchOption.AllDirectories), "#1");
}
@@ -236,14 +238,14 @@ public void OptimizePngs_DefaultValue ()
[Test]
public void OptimizePngs_True ()
{
- MonoTouchProject.AddNewPropertyGroup (true).AddNewProperty ("OptimizePNGs", "True");
+ MonoTouchProjectInstance.SetProperty ("OptimizePNGs", "True");
OptimizePngs_Core (true);
}
[Test]
public void OptimizePngs_False ()
{
- MonoTouchProject.AddNewPropertyGroup (true).AddNewProperty ("OptimizePNGs", "False");
+ MonoTouchProjectInstance.SetProperty ("OptimizePNGs", "False");
OptimizePngs_Core (false);
}
@@ -252,7 +254,7 @@ void OptimizePngs_Core (bool shouldBeDifferent)
var originalFile = Path.Combine (MonoTouchProjectPath, "Resources", "image.png");
var optimisedFile = Path.Combine (AppBundlePath, "image.png");
- RunTarget (MonoTouchProject, TargetName.Build);
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.Build);
Assert.IsTrue (File.Exists (optimisedFile), "#1");
if (shouldBeDifferent)
@@ -355,8 +357,8 @@ public void BuildLibrary ()
[Test]
public void BuildLibrary_NoInterfaceDefinitions ()
{
- foreach (var item in LibraryProject.GetEvaluatedItemsByName ("InterfaceDefinition"))
- LibraryProject.RemoveItem ((Microsoft.Build.BuildEngine.BuildItem)item);
+ LibraryProject.RemoveItems (LibraryProject.GetItems ("InterfaceDefinition"));
+ LibraryProjectInstance = LibraryProject.CreateProjectInstance ();
BuildLibraryCore (ExpectedLibraryEmbeddedResources.Where (s => !s.Contains ("storyboardc")).ToArray ());
}
@@ -364,9 +366,9 @@ public void BuildLibrary_NoInterfaceDefinitions ()
void BuildLibraryCore (string[] expectedResources)
{
var library = Path.Combine (LibraryProjectBinPath, "MyLibrary.dll");
- RunTarget (LibraryProject, TargetName.Build);
+ RunTargetOnInstance (LibraryProjectInstance, TargetName.Build);
- Assert.IsTrue (string.IsNullOrEmpty (LibraryProject.GetEvaluatedProperty ("AppBundleDir")), "#1");
+ Assert.IsTrue (string.IsNullOrEmpty (LibraryProjectInstance.GetPropertyValue ("AppBundleDir")), "#1");
var entries = Directory.GetFileSystemEntries (LibraryProjectBinPath);
Assert.AreEqual (2, entries.Length, "#1");
Assert.IsTrue (File.Exists (library), "#2");
@@ -384,29 +386,29 @@ void BuildLibraryCore (string[] expectedResources)
public void GenerateBundleName_ExecutableProject ()
{
// Initially the AssemblyName is set and there is no app bundle dir
- Assert.AreEqual ("MySingleView", MonoTouchProject.GetEvaluatedProperty ("AssemblyName"), "#1");
- Assert.IsTrue (string.IsNullOrEmpty (MonoTouchProject.GetEvaluatedProperty ("AppBundleDir")), "#2");
+ Assert.AreEqual ("MySingleView", MonoTouchProjectInstance.GetPropertyValue ("AssemblyName"), "#1");
+ Assert.IsTrue (string.IsNullOrEmpty (MonoTouchProjectInstance.GetPropertyValue ("AppBundleDir")), "#2");
// Now we should have an AppBundleDir
- RunTarget (MonoTouchProject, TargetName.GenerateBundleName);
- Assert.AreEqual ("bin/iPhoneSimulator/Debug/MySingleView.app", MonoTouchProject.GetEvaluatedProperty ("AppBundleDir"), "#3");
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.GenerateBundleName);
+ Assert.AreEqual ("bin/iPhoneSimulator/Debug/MySingleView.app", MonoTouchProjectInstance.GetPropertyValue ("AppBundleDir"), "#3");
}
[Test]
public void PackLibraryResources_ExecutableProject ()
{
- RunTarget (MonoTouchProject, TargetName.PackLibraryResources);
- var embeddedResources = MonoTouchProject.GetEvaluatedItemsByName ("EmbeddedResource").ToArray ();
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.PackLibraryResources);
+ var embeddedResources = MonoTouchProjectInstance.GetItems ("EmbeddedResource").ToArray ();
Assert.AreEqual (2, embeddedResources.Length, "#1");
- Assert.IsTrue (embeddedResources.Any (i => i.FinalItemSpec == "LinkedEmbeddedResource.txt"), "#1");
- Assert.IsTrue (embeddedResources.Any (i => i.FinalItemSpec == Path.Combine ("Folder", "EmbeddedResource.txt")), "#2");
+ Assert.IsTrue (embeddedResources.Any (i => i.EvaluatedInclude == "LinkedEmbeddedResource.txt"), "#1");
+ Assert.IsTrue (embeddedResources.Any (i => i.EvaluatedInclude == Path.Combine ("Folder", "EmbeddedResource.txt")), "#2");
}
[Test]
public void PackLibraryResources_LibraryProject ()
{
- RunTarget (LibraryProject, TargetName.PackLibraryResources);
- var embeddedResources = LibraryProject.GetEvaluatedItemsByName ("EmbeddedResource").ToArray ();
+ RunTargetOnInstance (LibraryProjectInstance, TargetName.PackLibraryResources);
+ var embeddedResources = LibraryProjectInstance.GetItems ("EmbeddedResource").ToArray ();
Assert.AreEqual (13, embeddedResources.Length, "#1");
}
@@ -414,8 +416,8 @@ public void PackLibraryResources_LibraryProject ()
public void UnpackLibraryResources_ExecutableProject ()
{
// We unpack 4 embedded resources from the library project into BundleResources
- RunTarget (MonoTouchProject, TargetName.Build);
- var bundleResources = MonoTouchProject.GetEvaluatedItemsByName ("_BundleResourceWithLogicalName").ToArray ();
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.Build);
+ var bundleResources = MonoTouchProjectInstance.GetItems ("_BundleResourceWithLogicalName").ToArray ();
Assert.IsTrue (bundleResources.Length >= 33, "#1");
}
@@ -423,8 +425,8 @@ public void UnpackLibraryResources_ExecutableProject ()
public void UnpackLibraryResources_LibraryProject ()
{
// We should not unpack any EmbeddedResources into BundleResources
- RunTarget (LibraryProject, TargetName.Build);
- var bundleResources = LibraryProject.GetEvaluatedItemsByName ("_BundleResourceWithLogicalName").ToArray ();
+ RunTargetOnInstance (LibraryProjectInstance, TargetName.Build);
+ var bundleResources = LibraryProjectInstance.GetItems ("_BundleResourceWithLogicalName").ToArray ();
Assert.AreEqual (11, bundleResources.Length, "#1");
}
@@ -439,35 +441,35 @@ public void BundleResources ()
plist.SetMinimumOSVersion ("7.0");
plist.Save (path, true);
- RunTarget (MonoTouchProject, TargetName.CollectBundleResources);
-
- var bundleItems = MonoTouchProject.GetEvaluatedItemsByName ("_BundleResourceWithLogicalName").ToArray ();
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine ("Folder", "BundleResource.txt") && i.GetMetadata ("LogicalName") == "Folder/BundleResource.txt"), "#1");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine ("Folder", "Content.txt") && i.GetMetadata ("LogicalName") == "Folder/Content.txt"), "#2");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == "LinkedBundleResource.txt" && i.GetMetadata ("LogicalName") == "Folder/LinkedBundleResource.txt"), "#3");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == "LinkedContent.txt" && i.GetMetadata ("LogicalName") == "Folder/LinkedContent.txt"), "#4");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (actool, "AppIcons29x29.png") && i.GetMetadata ("LogicalName") == "AppIcons29x29.png"), "#5");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (actool, "AppIcons29x29@2x.png") && i.GetMetadata ("LogicalName") == "AppIcons29x29@2x.png"), "#6");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (actool, "AppIcons40x40@2x.png") && i.GetMetadata ("LogicalName") == "AppIcons40x40@2x.png"), "#7");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (actool, "AppIcons57x57.png") && i.GetMetadata ("LogicalName") == "AppIcons57x57.png"), "#8");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (actool, "AppIcons57x57@2x.png") && i.GetMetadata ("LogicalName") == "AppIcons57x57@2x.png"), "#9");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (actool, "AppIcons60x60@2x.png") && i.GetMetadata ("LogicalName") == "AppIcons60x60@2x.png"), "#10");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (actool, "LaunchImage-568h@2x.png") && i.GetMetadata ("LogicalName") == "LaunchImage-568h@2x.png"), "#11");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (actool, "LaunchImage.png") && i.GetMetadata ("LogicalName") == "LaunchImage.png"), "#12");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (actool, "LaunchImage@2x.png") && i.GetMetadata ("LogicalName") == "LaunchImage@2x.png"), "#13");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (ibtool, "MainStoryboard.storyboardc", "1-view-2.nib") && i.GetMetadata ("LogicalName") == "MainStoryboard.storyboardc/1-view-2.nib"), "#14");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (ibtool, "MainStoryboard.storyboardc", "Info.plist") && i.GetMetadata ("LogicalName") == "MainStoryboard.storyboardc/Info.plist"), "#15");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (ibtool, "MainStoryboard.storyboardc", "UIViewController-1.nib") && i.GetMetadata ("LogicalName") == "MainStoryboard.storyboardc/UIViewController-1.nib"), "#16");
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.CollectBundleResources);
+
+ var bundleItems = MonoTouchProjectInstance.GetItems ("_BundleResourceWithLogicalName").ToArray ();
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine ("Folder", "BundleResource.txt") && i.GetMetadataValue ("LogicalName") == "Folder/BundleResource.txt"), "#1");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine ("Folder", "Content.txt") && i.GetMetadataValue ("LogicalName") == "Folder/Content.txt"), "#2");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == "LinkedBundleResource.txt" && i.GetMetadataValue ("LogicalName") == "Folder/LinkedBundleResource.txt"), "#3");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == "LinkedContent.txt" && i.GetMetadataValue ("LogicalName") == "Folder/LinkedContent.txt"), "#4");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (actool, "AppIcons29x29.png") && i.GetMetadataValue ("LogicalName") == "AppIcons29x29.png"), "#5");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (actool, "AppIcons29x29@2x.png") && i.GetMetadataValue ("LogicalName") == "AppIcons29x29@2x.png"), "#6");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (actool, "AppIcons40x40@2x.png") && i.GetMetadataValue ("LogicalName") == "AppIcons40x40@2x.png"), "#7");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (actool, "AppIcons57x57.png") && i.GetMetadataValue ("LogicalName") == "AppIcons57x57.png"), "#8");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (actool, "AppIcons57x57@2x.png") && i.GetMetadataValue ("LogicalName") == "AppIcons57x57@2x.png"), "#9");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (actool, "AppIcons60x60@2x.png") && i.GetMetadataValue ("LogicalName") == "AppIcons60x60@2x.png"), "#10");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (actool, "LaunchImage-568h@2x.png") && i.GetMetadataValue ("LogicalName") == "LaunchImage-568h@2x.png"), "#11");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (actool, "LaunchImage.png") && i.GetMetadataValue ("LogicalName") == "LaunchImage.png"), "#12");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (actool, "LaunchImage@2x.png") && i.GetMetadataValue ("LogicalName") == "LaunchImage@2x.png"), "#13");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (ibtool, "MainStoryboard.storyboardc", "1-view-2.nib") && i.GetMetadataValue ("LogicalName") == "MainStoryboard.storyboardc/1-view-2.nib"), "#14");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (ibtool, "MainStoryboard.storyboardc", "Info.plist") && i.GetMetadataValue ("LogicalName") == "MainStoryboard.storyboardc/Info.plist"), "#15");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (ibtool, "MainStoryboard.storyboardc", "UIViewController-1.nib") && i.GetMetadataValue ("LogicalName") == "MainStoryboard.storyboardc/UIViewController-1.nib"), "#16");
if (bundleItems.Length > ExpectedExecutableBundleResources.Length) {
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (ibtool, "en.lproj", "TranslatedView.nib", "runtime.nib") && i.GetMetadata ("LogicalName") == "en.lproj/TranslatedView.nib/runtime.nib"), "#17");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (ibtool, "FolderView.nib", "runtime.nib") && i.GetMetadata ("LogicalName") == "FolderView.nib/runtime.nib"), "#18");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (ibtool, "iPhoneView.nib", "runtime.nib") && i.GetMetadata ("LogicalName") == "iPhoneView.nib/runtime.nib"), "#19");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (ibtool, "en.lproj", "TranslatedView.nib", "runtime.nib") && i.GetMetadataValue ("LogicalName") == "en.lproj/TranslatedView.nib/runtime.nib"), "#17");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (ibtool, "FolderView.nib", "runtime.nib") && i.GetMetadataValue ("LogicalName") == "FolderView.nib/runtime.nib"), "#18");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (ibtool, "iPhoneView.nib", "runtime.nib") && i.GetMetadataValue ("LogicalName") == "iPhoneView.nib/runtime.nib"), "#19");
} else {
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (ibtool, "en.lproj", "TranslatedView.nib") && i.GetMetadata ("LogicalName") == "en.lproj/TranslatedView.nib"), "#17");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (ibtool, "FolderView.nib") && i.GetMetadata ("LogicalName") == "FolderView.nib"), "#18");
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine (ibtool, "iPhoneView.nib") && i.GetMetadata ("LogicalName") == "iPhoneView.nib"), "#19");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (ibtool, "en.lproj", "TranslatedView.nib") && i.GetMetadataValue ("LogicalName") == "en.lproj/TranslatedView.nib"), "#17");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (ibtool, "FolderView.nib") && i.GetMetadataValue ("LogicalName") == "FolderView.nib"), "#18");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine (ibtool, "iPhoneView.nib") && i.GetMetadataValue ("LogicalName") == "iPhoneView.nib"), "#19");
}
- Assert.IsTrue (bundleItems.Any (i => i.FinalItemSpec == Path.Combine ("Resources", "image.png") && i.GetMetadata ("LogicalName") == "image.png"), "#20");
+ Assert.IsTrue (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine ("Resources", "image.png") && i.GetMetadataValue ("LogicalName") == "image.png"), "#20");
}
[Test (Description = "Xambug #39137")]
@@ -484,12 +486,14 @@ public void AddAppIcon_NoClean()
plist.SetMinimumOSVersion ("7.0");
plist.Save (path, true);
- RunTarget (project, TargetName.CompileImageAssets);
+ var projectInstance = project.CreateProjectInstance ();
+ RunTargetOnInstance (projectInstance, TargetName.CompileImageAssets, 0);
- var bundleItemsNoAppIcon = project.GetEvaluatedItemsByName ("_BundleResourceWithLogicalName").ToArray ();
- Assert.IsFalse (bundleItemsNoAppIcon.Any (i => i.FinalItemSpec == Path.Combine (actool, "AppIcons60x60@2x.png") && i.GetMetadata ("LogicalName") == "AppIcons60x60@2x.png"), "#1");
+ var bundleItemsNoAppIcon = projectInstance.GetItems ("_BundleResourceWithLogicalName").ToArray ();
+ Assert.IsFalse (bundleItemsNoAppIcon.Any (i => i.EvaluatedInclude == Path.Combine (actool, "AppIcons60x60@2x.png") && i.GetMetadataValue ("LogicalName") == "AppIcons60x60@2x.png"), "#1");
project = SetupProject (Engine, MonoTouchProjectCSProjPath);
+ projectInstance = project.CreateProjectInstance ();
// Put a thread.sleep so that we get noticeable timestamps.
Thread.Sleep (1000);
@@ -499,10 +503,10 @@ public void AddAppIcon_NoClean()
// Re-run the task with app icon set this time and no clean.
// The task should be aware the app icon is now being used.
- RunTarget (project, TargetName.CompileImageAssets);
+ RunTargetOnInstance (projectInstance, TargetName.CompileImageAssets, 0);
- var bundleItemsWithAppIcon = project.GetEvaluatedItemsByName ("_BundleResourceWithLogicalName").ToArray ();
- Assert.IsTrue (bundleItemsWithAppIcon.Any (i => i.FinalItemSpec == Path.Combine (actool, "AppIcons60x60@2x.png") && i.GetMetadata ("LogicalName") == "AppIcons60x60@2x.png"), "#2");
+ var bundleItemsWithAppIcon = projectInstance.GetItems ("_BundleResourceWithLogicalName").ToArray ();
+ Assert.IsTrue (bundleItemsWithAppIcon.Any (i => i.EvaluatedInclude == Path.Combine (actool, "AppIcons60x60@2x.png") && i.GetMetadataValue ("LogicalName") == "AppIcons60x60@2x.png"), "#2");
}
[Test (Description = "Xambug #16331")]
@@ -512,11 +516,11 @@ public void Disappearing_Bundle_Resource ()
string resourceGone = resource + ".disabled";
try {
File.Move (resource, resourceGone);
- RunTarget_WithErrors (MonoTouchProject, "_CollectBundleResources");
- var bundleItems = MonoTouchProject.GetEvaluatedItemsByName ("_BundleResourceWithLogicalName").ToArray ();
+ RunTarget_WithErrors (MonoTouchProjectInstance, "_CollectBundleResources");
+ var bundleItems = MonoTouchProjectInstance.GetItems ("_BundleResourceWithLogicalName").ToArray ();
Assert.IsNotNull (bundleItems, "#1");
Assert.IsTrue (bundleItems.Length >= 17, "#2");
- Assert.IsFalse (bundleItems.Any (i => i.FinalItemSpec == Path.Combine ("Folder", "BundleResource.txt")), "#3");
+ Assert.IsFalse (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine ("Folder", "BundleResource.txt")), "#3");
} finally {
File.Move (resourceGone, resource);
}
@@ -529,11 +533,11 @@ public void Disappearing_Content ()
string resourceGone = resource + ".disabled";
try {
File.Move (resource, resourceGone);
- RunTarget_WithErrors (MonoTouchProject, "_CollectBundleResources");
- var bundleItems = MonoTouchProject.GetEvaluatedItemsByName ("_BundleResourceWithLogicalName").ToArray ();
+ RunTarget_WithErrors (MonoTouchProjectInstance, "_CollectBundleResources");
+ var bundleItems = MonoTouchProjectInstance.GetItems ("_BundleResourceWithLogicalName").ToArray ();
Assert.IsNotNull (bundleItems, "#1");
Assert.IsTrue (bundleItems.Length >= 17, "#2");
- Assert.IsFalse (bundleItems.Any (i => i.FinalItemSpec == Path.Combine ("Folder", "Content.txt")), "#3");
+ Assert.IsFalse (bundleItems.Any (i => i.EvaluatedInclude == Path.Combine ("Folder", "Content.txt")), "#3");
} finally {
File.Move (resourceGone, resource);
}
@@ -542,29 +546,31 @@ public void Disappearing_Content ()
[Test]
public void DetectAppManifest_ExecutableProject ()
{
- RunTarget (MonoTouchProject, TargetName.DetectAppManifest);
- Assert.IsNotNull (MonoTouchProject.GetEvaluatedProperty ("_AppManifest"), "#1");
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.DetectAppManifest);
+ Assert.IsFalse (string.IsNullOrEmpty(MonoTouchProjectInstance.GetPropertyValue ("_AppManifest")), "#1");
}
[Test]
public void DetectAppManifest_ExecutableProject_NoPList ()
{
RemoveItemsByName (MonoTouchProject, "None");
- RunTarget_WithErrors (MonoTouchProject, TargetName.DetectAppManifest);
- Assert.IsNull (MonoTouchProject.GetEvaluatedProperty ("_AppManifest"), "#1");
+ MonoTouchProjectInstance = MonoTouchProject.CreateProjectInstance ();
+
+ RunTarget_WithErrors (MonoTouchProjectInstance, TargetName.DetectAppManifest);
+ Assert.IsNull (MonoTouchProjectInstance.GetPropertyValue ("_AppManifest"), "#1");
}
[Test]
public void DetectAppManifest_ExecutableProject_TwoPLists ()
{
RemoveItemsByName (MonoTouchProject, "None");
+ MonoTouchProjectInstance = MonoTouchProject.CreateProjectInstance ();
- var group = MonoTouchProject.AddNewItemGroup ();
- group.AddNewItem ("None", "Fake/Info.plist");
- group.AddNewItem ("None", "Info.plist");
+ MonoTouchProjectInstance.AddItem ("None", "Fake/Info.plist");
+ MonoTouchProjectInstance.AddItem ("None", "Info.plist");
- RunTarget (MonoTouchProject, TargetName.DetectAppManifest);
- Assert.AreEqual ("Info.plist", MonoTouchProject.GetEvaluatedProperty ("_AppManifest"), "#1");
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.DetectAppManifest);
+ Assert.AreEqual ("Info.plist", MonoTouchProjectInstance.GetPropertyValue ("_AppManifest"), "#1");
}
[Test]
@@ -573,12 +579,13 @@ public void DetectAppManifest_ExecutableProject_LinkedPList ()
string linkedPlist = CreateTempFile (Path.Combine (TempDir, "Linked.plist"));
RemoveItemsByName (MonoTouchProject, "None");
- var group = MonoTouchProject.AddNewItemGroup ();
- group.AddNewItem ("None", linkedPlist);
- group.ToArray ().Last ().SetMetadata ("Link", "Info.plist");
+ MonoTouchProjectInstance = MonoTouchProject.CreateProjectInstance ();
+
+ var item = MonoTouchProjectInstance.AddItem ("None", linkedPlist);
+ item.SetMetadata ("Link", "Info.plist");
- RunTarget (MonoTouchProject, TargetName.DetectAppManifest);
- Assert.AreEqual (linkedPlist, MonoTouchProject.GetEvaluatedProperty ("_AppManifest"), "#1");
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.DetectAppManifest);
+ Assert.AreEqual (linkedPlist, MonoTouchProjectInstance.GetPropertyValue ("_AppManifest"), "#1");
}
[Test]
@@ -587,20 +594,20 @@ public void DetectAppManifest_ExecutableProject_LogicalNamePList ()
string logicalPlist = CreateTempFile (Path.Combine (TempDir, "Logical.plist"));
RemoveItemsByName (MonoTouchProject, "None");
+ MonoTouchProjectInstance = MonoTouchProject.CreateProjectInstance ();
- var group = MonoTouchProject.AddNewItemGroup ();
- group.AddNewItem ("None", logicalPlist);
- group.ToArray ().Last ().SetMetadata ("LogicalName", "Info.plist");
+ var item = MonoTouchProjectInstance.AddItem ("None", logicalPlist);
+ item.SetMetadata ("LogicalName", "Info.plist");
- RunTarget (MonoTouchProject, TargetName.DetectAppManifest);
- Assert.AreEqual (logicalPlist, MonoTouchProject.GetEvaluatedProperty ("_AppManifest"), "#1");
+ RunTargetOnInstance (MonoTouchProjectInstance, TargetName.DetectAppManifest);
+ Assert.AreEqual (logicalPlist, MonoTouchProjectInstance.GetPropertyValue ("_AppManifest"), "#1");
}
[Test]
public void DetectAppManifest_LibraryProject ()
{
- RunTarget (LibraryProject, TargetName.DetectAppManifest);
- Assert.IsNull (LibraryProject.GetEvaluatedProperty ("_AppManifest"), "#1");
+ RunTargetOnInstance (LibraryProjectInstance, TargetName.DetectAppManifest);
+ Assert.IsNullOrEmpty (LibraryProjectInstance.GetPropertyValue ("_AppManifest"), "#1");
}
}
}
diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/Logger.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/Logger.cs
index e6775b2f4116..161f30a7ea61 100644
--- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/Logger.cs
+++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/Logger.cs
@@ -5,7 +5,6 @@
using System.Runtime.Remoting;
using System.Runtime.Serialization.Formatters.Binary;
using System.Threading;
-using Microsoft.Build.BuildEngine;
using Microsoft.Build.Framework;
using NUnit.Framework;
using Microsoft.Build.Utilities;
diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestBase.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestBase.cs
index 6f01f2a3ee34..2983329f76cc 100644
--- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestBase.cs
+++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestBase.cs
@@ -3,7 +3,8 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using Microsoft.Build.BuildEngine;
+using Microsoft.Build.Evaluation;
+using Microsoft.Build.Execution;
using Microsoft.Build.Utilities;
using NUnit.Framework;
using Xamarin.MacDev;
@@ -73,10 +74,18 @@ public Project LibraryProject {
get; private set;
}
+ public ProjectInstance LibraryProjectInstance {
+ get; set;
+ }
+
public Project MonoTouchProject {
get; private set;
}
+ public ProjectInstance MonoTouchProjectInstance {
+ get; set;
+ }
+
public string LibraryProjectBinPath;
public string LibraryProjectObjPath;
public string LibraryProjectPath;
@@ -135,7 +144,9 @@ public virtual void Setup ()
SetupEngine ();
MonoTouchProject = SetupProject (Engine, MonoTouchProjectCSProjPath);
+ MonoTouchProjectInstance = MonoTouchProject.CreateProjectInstance ();
LibraryProject = SetupProject (Engine, LibraryProjectCSProjPath);
+ LibraryProjectInstance = LibraryProject.CreateProjectInstance ();
CleanUp ();
}
@@ -145,12 +156,9 @@ public void SetupEngine ()
Engine = new TestEngine ();
}
- public Project SetupProject (Engine engine, string projectPath)
+ public Project SetupProject (TestEngine engine, string projectPath)
{
- var proj = new Project (engine);
- proj.Load (projectPath);
-
- return proj;
+ return engine.ProjectCollection.LoadProject (projectPath);
}
public virtual string TargetFrameworkIdentifier {
@@ -188,6 +196,9 @@ public void CleanUp () {
File.SetLastWriteTimeUtc (file, DateTime.UtcNow);
foreach (var file in Directory.GetFiles (LibraryProjectPath, "*.*", SearchOption.AllDirectories))
File.SetLastWriteTimeUtc (file, DateTime.UtcNow);
+
+ Engine.UnloadAllProjects ();
+ Engine = new TestEngine ();
}
protected void SafeDelete (string path)
@@ -293,8 +304,7 @@ protected DateTime GetLastModified (string file)
protected void RemoveItemsByName (Project project, string itemName)
{
- foreach (var item in project.GetEvaluatedItemsByName (itemName).ToArray ())
- project.RemoveItem (item);
+ project.RemoveItems (project.GetItems (itemName));
}
protected string SetPListKey (string key, PObject value)
@@ -323,7 +333,12 @@ protected void Touch (string file)
public void RunTarget (Project project, string target, int expectedErrorCount = 0)
{
- Engine.BuildProject (project, new [] { target }, new Hashtable { {"Platform", "iPhone"} }, BuildSettings.None);
+ RunTargetOnInstance (project.CreateProjectInstance (), target, expectedErrorCount);
+ }
+
+ public void RunTargetOnInstance (ProjectInstance instance, string target, int expectedErrorCount = 0)
+ {
+ Engine.BuildProject (instance, new [] { target }, new Hashtable { {"Platform", "iPhone"} });
if (expectedErrorCount != Engine.Logger.ErrorEvents.Count) {
string messages = string.Empty;
if (Engine.Logger.ErrorEvents.Count > 0) {
@@ -335,7 +350,12 @@ public void RunTarget (Project project, string target, int expectedErrorCount =
public void RunTarget_WithErrors (Project project, string target)
{
- Engine.BuildProject (project, new [] { target }, new Hashtable (), BuildSettings.None);
+ RunTarget_WithErrors (project.CreateProjectInstance (), target);
+ }
+
+ public void RunTarget_WithErrors (ProjectInstance instance, string target)
+ {
+ Engine.BuildProject (instance, new [] { target }, new Hashtable ());
Assert.IsTrue (Engine.Logger.ErrorEvents.Count > 0, "#RunTarget-HasExpectedErrors");
}
diff --git a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestEngine.cs b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestEngine.cs
index ddcbf69db26d..a75805752df8 100644
--- a/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestEngine.cs
+++ b/msbuild/tests/Xamarin.iOS.Tasks.Tests/TestHelpers/TestEngine.cs
@@ -5,35 +5,53 @@
using System.Runtime.Remoting;
using System.Runtime.Serialization.Formatters.Binary;
using System.Threading;
-using Microsoft.Build.BuildEngine;
using Microsoft.Build.Framework;
+using Microsoft.Build.Evaluation;
+using Microsoft.Build.Execution;
+using Microsoft.Build.Logging;
using NUnit.Framework;
using Microsoft.Build.Utilities;
namespace Xamarin.iOS.Tasks
{
- public class TestEngine : Engine, IBuildEngine
+ public class TestEngine : IBuildEngine
{
public Logger Logger {
get; set;
}
-
+
public TestEngine ()
{
Logger = new Logger ();
+ ProjectCollection = new ProjectCollection ();
- RegisterLogger (Logger);
+ ProjectCollection.RegisterLogger (Logger);
var printer = new ConsoleReportPrinter ();
var cl = new ConsoleLogger (LoggerVerbosity.Diagnostic, printer.Print, printer.SetForeground, printer.ResetColor);
- RegisterLogger (cl);
+ ProjectCollection.RegisterLogger (cl);
}
- public bool BuildProjectFile (string projectFileName, string[] targetNames, IDictionary globalProperties, IDictionary targetOutputs)
+ public bool BuildProjectFile (string projectFileName, string [] targetNames, IDictionary globalProperties, IDictionary targetOutputs)
{
throw new NotImplementedException ();
}
+
+ public bool BuildProject (ProjectInstance instance, string [] targetNames, IDictionary globalProperties)
+ {
+ if (globalProperties != null) {
+ foreach (DictionaryEntry de in globalProperties) {
+ //Note: trying to set this on the project causes the project to be added to the PC
+ // again, which of course, fails
+ instance.SetProperty ((string)de.Key, (string)de.Value);
+ }
+ }
+
+ //FIXME: assumption that we are still using the same PC!
+ return instance.Build (targetNames, ProjectCollection.Loggers);
+ }
+
public void LogCustomEvent (CustomBuildEventArgs e)
{
Logger.CustomEvents.Add (e);
@@ -51,6 +69,11 @@ public void LogWarningEvent (BuildWarningEventArgs e)
Logger.WarningsEvents.Add (e);
}
+ public void UnloadAllProjects ()
+ {
+ ProjectCollection.UnloadAllProjects ();
+ }
+
public int ColumnNumberOfTaskNode {
get { return 0; }
}
@@ -63,6 +86,8 @@ public int LineNumberOfTaskNode {
public string ProjectFileOfTaskNode {
get { return ""; }
}
+
+ public ProjectCollection ProjectCollection { get; set; }
}
}