-
Notifications
You must be signed in to change notification settings - Fork 536
/
Copy pathDebuggingTasksTests.cs
75 lines (69 loc) · 3.42 KB
/
DebuggingTasksTests.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
using Microsoft.Build.Framework;
using NUnit.Framework;
using System.Collections.Generic;
using System;
using System.IO;
using System.Linq;
using Xamarin.Android.Build;
using Xamarin.Android.Tasks;
using Xamarin.ProjectTools;
namespace Xamarin.Android.Build.Tests
{
[Category ("Node-2")]
[TestFixture, NonParallelizable]
public class DebuggingTasksTests : BaseTest
{
[OneTimeSetUp]
public void SetUp ()
{
AssertCommercialBuild ();
}
// https://github.com/xamarin/monodroid/blob/63bbeb076d809c74811a8001d38bf2e9e8672627/tests/msbuild/nunit/Xamarin.Android.Build.Tests/Xamarin.Android.Build.Tests/ResolveXamarinAndroidToolsTests.cs
[Test]
[Repeat (10)]
public void TestResolveToolsExists ()
{
List<BuildErrorEventArgs> errors = new List<BuildErrorEventArgs>();
List<BuildMessageEventArgs> messages = new List<BuildMessageEventArgs>();
var path = Path.Combine ("temp", TestName);
if (Directory.Exists (Path.Combine (Root, path)))
Directory.Delete (Path.Combine (Root, path), recursive: true);
var engine = new MockBuildEngine (TestContext.Out, errors: errors, messages: messages);
var frameworksPath = Path.Combine (TestEnvironment.MonoAndroidFrameworkDirectory, "v1.0");
var androidSdk = CreateFauxAndroidSdkDirectory (Path.Combine (path, "Sdk"), "24.0.1", new[]
{
new ApiInfo { Id = "23", Level = 23, Name = "Marshmallow", FrameworkVersion = "v6.0", Stable = true },
new ApiInfo { Id = "26", Level = 26, Name = "Oreo", FrameworkVersion = "v8.0", Stable = true },
new ApiInfo { Id = "27", Level = 27, Name = "Oreo", FrameworkVersion = "v8.1", Stable = true },
new ApiInfo { Id = "28", Level = 28, Name = "Pie", FrameworkVersion = "v9.0", Stable = true },
});
//var androidNdk = CreateFauxAndroidNdkDirectory (Path.Combine (path, "Ndk"));
var javaSdk = CreateFauxJavaSdkDirectory (Path.Combine(path, "Java"), "1.8.0", out string javaExe, out string javacExe);
var task = new ResolveXamarinAndroidTools () {
BuildEngine = engine,
AndroidNdkPath = null,
AndroidSdkPath = androidSdk,
JavaSdkPath = javaSdk,
MonoAndroidToolsPath = TestEnvironment.AndroidMSBuildDirectory,
ReferenceAssemblyPaths = new string[] {
frameworksPath,
},
};
Assert.True (task.Execute (), "Task should have completed successfully.");
Assert.AreEqual (0, errors.Count, "No Errors should have been raised");
var expected = $" Found FrameworkPath at {Path.GetFullPath (frameworksPath)}";
var firstTaskExecMessages = messages.Select (x => x.Message)?.ToList ();
Assert.IsNotNull (firstTaskExecMessages, "First execution did not contain any messages!");
CollectionAssert.Contains (firstTaskExecMessages, expected);
CollectionAssert.DoesNotContain (firstTaskExecMessages, " Using cached AndroidSdk values");
CollectionAssert.DoesNotContain (firstTaskExecMessages, " Using cached MonoDroidSdk values");
Assert.True (task.Execute (), "Task should have completed successfully.");
Assert.AreEqual (0, errors.Count, "No Errors should have been raised");
var secondTaskExecMessages = messages.Select (x => x.Message)?.ToList ();
Assert.IsNotNull (secondTaskExecMessages, "Second execution did not contain any messages!");
CollectionAssert.Contains (secondTaskExecMessages, expected);
CollectionAssert.Contains (secondTaskExecMessages, " Using cached AndroidSdk values");
CollectionAssert.Contains (secondTaskExecMessages, " Using cached MonoDroidSdk values");
}
}
}