Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        /// <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}");
                }
            }
        }
Exemplo n.º 4
0
 static void waiter_TerminateEvent(object sender, TerminateEventArgs args)
 {
     Console.WriteLine("");
     Console.WriteLine("Got a kill signal ("+args.Signal+"). Will now terminate");
     Environment.Exit(0);
 }
Exemplo n.º 5
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}");
 }
Exemplo n.º 6
0
 static void waiter_TerminateEvent(object sender, TerminateEventArgs args)
 {
     Console.WriteLine("");
     Console.WriteLine("Got a kill signal (" + args.Signal + "). Will now terminate");
     Environment.Exit(0);
 }
Exemplo n.º 7
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;
 }
Exemplo n.º 8
0
 public void Terminate(TerminateEventArgs exitEventArgs)
 {
     throw new NotImplementedException();
 }