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)); } }
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);