public async Task <List <Capability> > GetCapabilitiesAsync(AgentSettings settings, CancellationToken cancellationToken)
        {
            Trace.Entering();

            // Check the cache.
            if (_capabilities != null)
            {
                Trace.Info("Found in cached.");
                return(_capabilities);
            }

            // Build the list of capabilities.
            var builder = new CapabilitiesBuilder(HostContext, cancellationToken);

            builder.Check(
                name: "AndroidSDK",
                fileName: "android",
                filePaths: new[]
            {
                Path.Combine(Environment.GetEnvironmentVariable("ANDROID_STUDIO") ?? string.Empty, "tools/android"),
                Path.Combine(Environment.GetEnvironmentVariable("HOME") ?? string.Empty, "Library/Developer/Xamarin/android-sdk-macosx/tools/android"),
            });
            builder.Check(name: "ant");
            builder.Check(name: "bundler", fileName: "bundle");
            builder.Check(name: "clang");
            builder.Check(name: "cmake");
            builder.Check(name: "curl");
            builder.Check(name: "git");
            builder.Check(name: "gulp");
            builder.Check(name: "java");
            builder.Check(name: "JDK", fileName: "javac");
            builder.Check(name: "make");
            builder.Check(name: "maven", fileName: "mvn");
            builder.Check(name: "MSBuild", fileName: "xbuild");
            builder.Check(name: "node.js", fileName: "node");
            builder.Check(name: "node.js", fileName: "nodejs");
            builder.Check(name: "npm");
            builder.Check(name: "python");
            builder.Check(name: "python3");
            builder.Check(name: "sh");
            builder.Check(name: "subversion", fileName: "svn");
            builder.Check(name: "ruby");
            builder.Check(name: "rake");
            builder.Check(
                name: "Xamarin.iOS",
                fileName: "mdtool",
                filePaths: new string[] { "/Applications/Xamarin Studio.app/Contents/MacOS/mdtool" });
            builder.Check(
                name: "Xamarin.Android",
                fileName: "mandroid",
                filePaths: new string[] { "/Library/Frameworks/Xamarin.Android.framework/Commands/mandroid" });
            await builder.CheckToolOutputAsync(
                name : "xcode",
                fileName : "xcode-select",
                arguments : "-p");

            // Cache and return the values.
            _capabilities = builder.ToList();
            return(_capabilities);
        }
        public async Task<List<Capability>> GetCapabilitiesAsync(AgentSettings settings, CancellationToken cancellationToken)
        {
            Trace.Entering();

            // Check the cache.
            if (_capabilities != null)
            {
                Trace.Info("Found in cached.");
                return _capabilities;
            }

            // Build the list of capabilities.
            var builder = new CapabilitiesBuilder(HostContext, cancellationToken);
            builder.Check(
                name: "AndroidSDK",
                fileName: "android",
                filePaths: new[]
                {
                    Path.Combine(Environment.GetEnvironmentVariable("ANDROID_STUDIO") ?? string.Empty, "tools/android"),
                    Path.Combine(Environment.GetEnvironmentVariable("HOME") ?? string.Empty, "Library/Developer/Xamarin/android-sdk-macosx/tools/android"),
                });
            builder.Check(name: "ant");
            builder.Check(name: "bundler", fileName: "bundle");
            builder.Check(name: "clang");
            builder.Check(name: "cmake");
            builder.Check(name: "curl");
            builder.Check(name: "git");
            builder.Check(name: "gulp");
            builder.Check(name: "java");
            builder.Check(name: "JDK", fileName: "javac");
            builder.Check(name: "make");
            builder.Check(name: "maven", fileName: "mvn");
            builder.Check(name: "MSBuild", fileName: "xbuild");
            builder.Check(name: "node.js", fileName: "node");
            builder.Check(name: "node.js", fileName: "nodejs");
            builder.Check(name: "npm");
            builder.Check(name: "python");
            builder.Check(name: "python3");
            builder.Check(name: "sh");
            builder.Check(name: "subversion", fileName: "svn");
            builder.Check(name: "ruby");
            builder.Check(name: "rake");
            builder.Check(
                name: "Xamarin.iOS",
                fileName: "mdtool",
                filePaths: new string[] { "/Applications/Xamarin Studio.app/Contents/MacOS/mdtool" });
            builder.Check(
                name: "Xamarin.Android",
                fileName: "mandroid",
                filePaths: new string[] { "/Library/Frameworks/Xamarin.Android.framework/Commands/mandroid" });
            await builder.CheckToolOutputAsync(
                name: "xcode",
                fileName: "xcode-select",
                arguments: "-p");

            // Cache and return the values.
            _capabilities = builder.ToList();
            return _capabilities;
        }
Exemplo n.º 3
0
        public void Build_ShouldAddCapabilitiesFromConfiguration()
        {
            // Arrange
            var additionalCapabilities = new Dictionary <string, object>
            {
                { "someCapability", "doSomething" },
                { "anotherCapability", "doSomethingElse" }
            };

            _configuration.Capabilities.Returns(additionalCapabilities);
            var sut = new CapabilitiesBuilder(_configuration);

            // Act
            var result = ((DesiredCapabilities)sut.Build()).ToDictionary();

            // Assert
            result.Should().Contain(additionalCapabilities);
        }
Exemplo n.º 4
0
 public void SetUp()
 {
     _configuration = Substitute.For <IConfigurationProvider>();
     _sut           = new CapabilitiesBuilder(_configuration);
 }