public void Add(string key, TestResult value) { if (string.IsNullOrEmpty(value.ResultsFileContent) || value.ResultsFileContent.Length > SizeLimit) { throw new Exception("Data too big"); } var blob = TestResultsContainer.GetBlockBlobReference(key); var obj = new TestResultJson() { ExitCode = value.ExitCode, OutputStandard = value.OutputStandard, OutputError = value.OutputError, ResultsFileName = value.ResultsFileName, ResultsFileContent = value.ResultsFileContent, ElapsedSeconds = value.Elapsed.TotalSeconds, Passed = value.UnitTestData.Passed, Failed = value.UnitTestData.Failed, Skipped = value.UnitTestData.Skipped }; var str = JsonConvert.SerializeObject(obj); blob.UploadText(str); }
public void PutTestCache(string id, [FromBody] TestCacheData testCacheData) { var testResultData = testCacheData.TestResultData; var seconds = testResultData.ElapsedSeconds; var testResult = new TestResult( testResultData.ExitCode, testResultData.OutputStandard, testResultData.OutputError, testResultData.ResultsFileName, testResultData.ResultsFileContent, new UnitTestData( passed: testResultData.TestPassed, failed: testResultData.TestFailed, skipped: testResultData.TestSkipped), TimeSpan.FromSeconds(seconds)); var buildSource = testCacheData.TestSourceData != null ? new BuildSource(testCacheData.TestSourceData.MachineName, testCacheData.TestSourceData.EnlistmentRoot) : (BuildSource?)null; var isJenkins = testCacheData.TestSourceData?.IsJenkins ?? false; _storage.Add(id, testResult); _statsUtil.AddStore(isJenkins); }
public bool TryGetValue(string key, out TestResult testResult) { var blob = TestResultsContainer.GetBlockBlobReference(key); if (!blob.Exists()) { testResult = default(TestResult); return false; } var str = blob.DownloadText(); var obj = (TestResultJson)JsonConvert.DeserializeObject(str, typeof(TestResultJson)); testResult = new TestResult( exitCode: obj.ExitCode, outputStandard: obj.OutputStandard, outputError: obj.OutputError, resultsFileName: obj.ResultsFileName, resultsFileContent: obj.ResultsFileContent, unitTestData: new UnitTestData( passed: obj.Passed, failed: obj.Failed, skipped: obj.Skipped), elapsed: TimeSpan.FromSeconds(obj.ElapsedSeconds)); return true; }