public void TerminateWithUnixCodeEventArgs() { // Arrage var environment = new TestEnvironment(OSPlatform.Linux); var builder = TerminatorBuilder.CreateBuilder(ValidationLevel.None); string exitMessage = null; builder.TerminateEventHandler += (object sender, TerminateEventArgs args) => { exitMessage = args.ExitMessage; }; var terminator = builder.Build(); // Replace environment replaceEnvironment(terminator, environment); // Act var tea = new TerminateEventArgs(UnixCode.CONFIG, "Test 11"); var teaToString = tea.ToString(); terminator.Terminate(tea); // Assert Assert.Equal(78, environment.ExitCode); Assert.Equal("Test 11", exitMessage); Assert.Equal("78: Test 11", teaToString); }
private void OnTerminate(string id, IntPtr bundle, WidgetTerminateType widgetTerminateType) { TerminateEventArgs e = new TerminateEventArgs(); e.ID = id; if (bundle != null) { e.Bundle = new SWIGTYPE_p_bundle(bundle, false); } e.WidgetTerminateType = widgetTerminateType; _terminateEventHandler?.Invoke(this, e); }
/// <summary> /// Performs checks on an individual termination event /// </summary> /// <param name="validationLevel">Validation level</param> /// <param name="terminateEventArgs">Termination event</param> internal static void Validate(ValidationLevel validationLevel, TerminateEventArgs terminateEventArgs) { if (validationLevel.HasFlag(ValidationLevel.ExitCodeWithBoundaries)) { if (terminateEventArgs.ExitCode > TerminatorBuilder.MaxErrorExitCode) { throw new ArgumentOutOfRangeException($"{nameof(terminateEventArgs.ExitCode)} cannot be greater than {nameof(TerminatorBuilder.MaxErrorExitCode)}: {TerminatorBuilder.MaxErrorExitCode}"); } else if (terminateEventArgs.ExitCode < 0) { throw new ArgumentOutOfRangeException($"{nameof(terminateEventArgs.ExitCode)} cannot be less than 0."); } } if (validationLevel.HasFlag(ValidationLevel.ExitCodeNotInReservedSpace)) { if (Enum.IsDefined(typeof(UnixCode), terminateEventArgs.ExitCode)) { var linuxExitCode = (UnixCode)terminateEventArgs.ExitCode; throw new ArgumentException($"Exit code {terminateEventArgs.ExitCode} is already defined by {nameof(UnixCode)}: {linuxExitCode}"); } } }
static void waiter_TerminateEvent(object sender, TerminateEventArgs args) { Console.WriteLine(""); Console.WriteLine("Got a kill signal ("+args.Signal+"). Will now terminate"); Environment.Exit(0); }
/// <summary> /// Event method that is called before this app exits /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void Exit_Terminating(object?sender, TerminateEventArgs e) { Console.WriteLine($"Exiting: {e}"); }
static void waiter_TerminateEvent(object sender, TerminateEventArgs args) { Console.WriteLine(""); Console.WriteLine("Got a kill signal (" + args.Signal + "). Will now terminate"); Environment.Exit(0); }
/// <summary> /// Initializes a new instance of the <see cref="TerminationToken"/> class. /// </summary> /// <param name="token">Cancellation token to attach to</param> /// <param name="terminateEventArgs">Terminate event args</param> internal TerminationToken(CancellationToken token, TerminateEventArgs terminateEventArgs) { this.Token = token; this.TerminateEvent = terminateEventArgs; }
public void Terminate(TerminateEventArgs exitEventArgs) { throw new NotImplementedException(); }