public static TestCaseResultDetails DownloadContentIfFromBlob()

in e2etest/GuestProxyAgentTest/Extensions/ModelExtensions.cs [27:78]


        public static TestCaseResultDetails DownloadContentIfFromBlob(this TestCaseResultDetails testCaseResultDetails, Action<string> logger = null!)
        {
            if(!testCaseResultDetails.FromBlob)
            {
                return testCaseResultDetails;
            }
            
            testCaseResultDetails.FromBlob = false;
            var downloadSucceed = true;
            
            if (!string.IsNullOrEmpty(testCaseResultDetails.StdOut))
            {
                var stdOutDownload = TestCommonUtilities.DownloadContentAsString(testCaseResultDetails.StdOut, logger);
                testCaseResultDetails.StdOut = stdOutDownload.Item2;
                if(!stdOutDownload.Item1)
                {
                    downloadSucceed = false;
                }
            }

            if (!string.IsNullOrEmpty(testCaseResultDetails.StdErr))
            {
                var stdErrDownload = TestCommonUtilities.DownloadContentAsString(testCaseResultDetails.StdErr, logger);
                testCaseResultDetails.StdErr = stdErrDownload.Item2;
                if(!stdErrDownload.Item1)
                {
                    downloadSucceed = false;
                }
            }

            if (!string.IsNullOrEmpty(testCaseResultDetails.CustomOut))
            {
                var custOutDownload = TestCommonUtilities.DownloadContentAsString(testCaseResultDetails.CustomOut, logger);
                testCaseResultDetails.CustomOut = custOutDownload.Item2;
                if(!custOutDownload.Item1)
                {
                    downloadSucceed = false;
                }
            }

            if (!downloadSucceed)
            {
                // in case of any download failed, mark the test result as failed and set the std error as combined string from all the download result
                testCaseResultDetails.Succeed = false;
                testCaseResultDetails.StdErr = string.Format("Download content from blob failed: \n stdOut: {0}\n stdError: {1}\n customOut: {2}"
                    , testCaseResultDetails.StdOut
                    , testCaseResultDetails.StdErr
                    , testCaseResultDetails.CustomOut);
            } 

            return testCaseResultDetails;
        }