コード例 #1
0
        public async void ExecuteScript_OnFinallyTest_Sucesfull()
        {
            var token = await Client.GetTokenAsync(new GetTokenRequest { Username = "******", Password = "******" });

            Client.Token = token.Token;

            await Client.UploadScriptAsync(new UploadScriptRequest
            {
                FilePath = "SimpleScript.cs"
            });

            if (File.Exists("Finally.txt"))
            {
                File.Delete("Finally.txt");
            }

            var req = new ExecuteScriptRequest
            {
                ScriptFileName  = "SimpleScript.cs",
                TargetToExecute = "FinallyTarget",
                ScriptArguments = new Dictionary <string, string>()
            };

            await Client.ExecuteScriptAsync(req);

            Assert.True(File.Exists("Finally.txt"));
        }
コード例 #2
0
        public async Task <ExecuteScriptResponse> Evaluate(ExecuteScriptRequest request)
        {
            var result = new ExecuteScriptResponse();

            try
            {
                var response = await Evaluate(request.Script ?? string.Empty);

                result.Result = response != null?SerializeObject(response, 2) : "Ok";
            }
            catch (Exception ex)
            {
                result.Exception = ex.ToString();
            }

            return(result);
        }
コード例 #3
0
        private void PrepareCommandArguments(ExecuteScriptRequest request)
        {
            _commandArguments.MainCommands = new List <string>();
            var scriptFullPath = Path.Combine(_hostingEnvironment.ContentRootPath, "Scripts", request.ScriptFileName);

            _commandArguments.MainCommands.Add(request.TargetToExecute);
            _commandArguments.Script = scriptFullPath;
            if (request.ScriptArguments != null && request.ScriptArguments.Count > 0)
            {
                _commandArguments.ScriptArguments = new DictionaryWithDefault <string, string>(null, StringComparer.OrdinalIgnoreCase);
                foreach (var scriptArgument in request.ScriptArguments)
                {
                    _commandArguments.ScriptArguments.Add(scriptArgument.Key, scriptArgument.Value);
                }
            }

            _commandArguments.RethrowOnException = true;
        }
コード例 #4
0
        public async void ExecuteScript_ScriptNotFound_ThrowsBadRequest()
        {
            var token = await Client.GetToken(new GetTokenRequest { Username = "******", Password = "******" });

            Client.Token = token.Token;
            var req = new ExecuteScriptRequest
            {
                ScriptFileName  = "SimpleScript.cs",
                TargetToExecute = "SuccesfullTarget",
                ScriptArguments = new Dictionary <string, string>()
            };

            req.ScriptArguments.Add("FileName", "test.txt");
            var exception = await Assert.ThrowsAsync <WebApiException>(async() => await Client.ExecuteScriptAsync(req));

            Assert.Equal(HttpStatusCode.BadRequest, exception.StatusCode);
            Assert.Equal(ErrorCodes.ScriptNotFound, exception.ErrorCode);
        }
コード例 #5
0
        public async void ExecuteScript_WhenTest_Sucesfull()
        {
            var token = await Client.GetToken(new GetTokenRequest { Username = "******", Password = "******" });

            Client.Token = token.Token;

            await Client.UploadScriptAsync(new UploadScriptRequest
            {
                FilePath = "SimpleScript.cs"
            });

            if (File.Exists("file.txt"))
            {
                File.Delete("file.txt");
            }

            if (File.Exists("file2.txt"))
            {
                File.Delete("file2.txt");
            }

            if (File.Exists("file3.txt"))
            {
                File.Delete("file3.txt");
            }

            Assert.False(File.Exists("file.txt"));
            Assert.False(File.Exists("file2.txt"));
            Assert.False(File.Exists("file3.txt"));

            var req = new ExecuteScriptRequest
            {
                ScriptFileName  = "SimpleScript.cs",
                TargetToExecute = "WhenTarget",
                ScriptArguments = new Dictionary <string, string>()
            };

            req.ScriptArguments.Add("FileName", "test.txt");
            var response = await Client.ExecuteScriptAsync(req);

            Assert.False(File.Exists("file.txt"));
            Assert.True(File.Exists("file2.txt"));
            Assert.True(File.Exists("file3.txt"));
        }
コード例 #6
0
        public async void ExecuteScript_RequiresTest_Sucesfull()
        {
            var token = await Client.GetTokenAsync(new GetTokenRequest { Username = "******", Password = "******" });

            Client.Token = token.Token;

            await Client.UploadScriptAsync(new UploadScriptRequest
            {
                FilePath = "SimpleScript.cs"
            });

            var req = new ExecuteScriptRequest
            {
                ScriptFileName  = "SimpleScript.cs",
                TargetToExecute = "RequiredTarget",
                ScriptArguments = new Dictionary <string, string>()
            };

            var ex = await Assert.ThrowsAsync <WebApiException>(async() => await Client.ExecuteScriptAsync(req));

            Assert.Equal("Target 'RequiredTarget' requires build script member 'RequiredParam' not to be null.", ex.ErrorMessage);
        }
コード例 #7
0
 public async Task ExecuteScriptAsync(ExecuteScriptRequest request)
 {
     await SendAsync(request);
 }
コード例 #8
0
 public override Task <ExecuteScriptResponse> ExecuteScript(ExecuteScriptRequest request, ServerCallContext context) => _provider.GetService <ScriptService>(_accessor).Evaluate(request);
コード例 #9
0
 public async Task <ExecuteScriptResponse> ExecuteScriptAsync(ExecuteScriptRequest request)
 {
     return(await SendAsync <ExecuteScriptResponse>(request));
 }