public void Record_ProcessExecutionError()
        {
            Assert.Throws <DeployException>(
                delegate
            {
                actionRecorder.RecordToolAction(MetricActionType,
                                                delegate {
                    try
                    {
                        throw new ProcessExecutionException("test", 1);
                    }
                    catch (ProcessExecutionException e)
                    {
                        throw new DeployException("test wrapped", e);
                    }
                });
            });
            var externalToolError =
                new DeveloperLogEvent.Types.ExternalToolError {
                ExitCode = 1
            };

            logEvent.StatusCode        = DeveloperEventStatus.Types.Code.ExternalToolFailure;
            logEvent.ExternalToolError = externalToolError;
            metrics.Received(1).RecordEvent(EventType, logEvent);
            AssertTimerUsedCorrectly();
        }
Beispiel #2
0
        static DeveloperLogEvent RecordProcessException(ProcessException e)
        {
            var logEvent = new DeveloperLogEvent();

            if (e is ProcessExecutionException)
            {
                logEvent.StatusCode = DeveloperEventStatus.Types.Code.ExternalToolFailure;
                var externalError =
                    new DeveloperLogEvent.Types.ExternalToolError
                {
                    ExitCode = ((ProcessExecutionException)e).ExitCode
                };
                logEvent.ExternalToolError = externalError;
            }
            else
            {
                logEvent.StatusCode = DeveloperEventStatus.Types.Code.ExternalToolUnavailable;
            }
            return(logEvent);
        }