private async Task ExecuteAsync(TestInputData testInputData)
        {
            try
            {
                CommonCacheTestUtils.EnsureCacheFileDirectoryExists();

                // The default behavior for the external language execution is for them to write the results file.
                await InternalExecuteAsync(testInputData).ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                File.WriteAllText(testInputData.ResultsFilePath, JsonConvert.SerializeObject(ExecutionContent.CreateFromException(ex)));
            }
        }
        private async Task ExecuteAsync(TestInputData testInputData)
        {
            try
            {
                CommonCacheTestUtils.EnsureCacheFileDirectoryExists();

                var results = await InternalExecuteAsync(testInputData).ConfigureAwait(false);

                WriteResultsFile(testInputData.ResultsFilePath, ExecutionContent.CreateSuccess(results));
            }
            catch (Exception ex)
            {
                WriteResultsFile(testInputData.ResultsFilePath, ExecutionContent.CreateFromException(ex));
            }
        }
예제 #3
0
        public static async Task ExecuteAsync(
            ILanguageExecutor languageExecutor,
            TestInputData testInputData,
            CancellationToken cancellationToken)
        {
            try
            {
                var    v1App    = PreRegisteredApps.CommonCacheTestV1;
                string resource = PreRegisteredApps.MsGraph;
                string scope    = resource + "/user.read";

                var languageTestInputData = new LanguageTestInputData(testInputData)
                {
                    Authority     = v1App.Authority,
                    ClientId      = v1App.ClientId,
                    Scope         = scope,
                    CacheFilePath = CommonCacheTestUtils.MsalV3CacheFilePath
                };

                var    inputDataJson = JsonConvert.SerializeObject(languageTestInputData);
                string inputFilePath = Path.Combine(Path.GetTempPath(), Path.GetTempFileName());
                File.WriteAllText(inputFilePath, inputDataJson);

                var sb = new StringBuilder();
                sb.Append($"--inputPath {inputFilePath.EncloseQuotes()} ");
                string arguments = sb.ToString();

                var processRunResults = await languageExecutor.ExecuteAsync(arguments, cancellationToken).ConfigureAwait(false);

                string stdout = processRunResults.StandardOut;

                Console.WriteLine();
                Console.WriteLine("STDOUT");
                Console.WriteLine(stdout);
                Console.WriteLine();
                Console.WriteLine("STDERR");
                Console.WriteLine(processRunResults.StandardError);
                Console.WriteLine();
            }
            catch (ProcessRunException prex)
            {
                Console.WriteLine(prex.ProcessStandardOutput);
                Console.WriteLine(prex.ProcessStandardError);
                Console.WriteLine(prex.Message);
            }
        }
 protected abstract Task <IEnumerable <CacheExecutorAccountResult> > InternalExecuteAsync(TestInputData testInputData);
 protected abstract Task InternalExecuteAsync(TestInputData testInputData);