示例#1
0
        public void UserImmutableThrowsHeader()
        {
            Routable routable = this.CreateMessage();

            routable.SetHeader("&Nope", "Nope");
            Assert.Throws <Kyameru.Core.Exceptions.CoreException>(() => routable.SetHeader("Nope", "yep"));
        }
示例#2
0
        public void UserMutableWorks()
        {
            Routable routable = this.CreateMessage();

            routable.SetHeader("FileType", "txt");
            routable.SetHeader("FileType", "jpg");
            Assert.AreEqual("jpg", routable.Headers["FileType"]);
        }
示例#3
0
        /// <summary>
        /// Process the incoming message.
        /// </summary>
        /// <param name="routable">Routable message.</param>
        public void Process(Routable routable)
        {
            this.OnLog?.Invoke(this, new Log(Microsoft.Extensions.Logging.LogLevel.Debug, Resources.DEBUG_HEADER_DETERMINE));
            switch (this.callbackOption)
            {
            case 0:
                this.OnLog?.Invoke(this, new Log(Microsoft.Extensions.Logging.LogLevel.Debug, Resources.DEBUG_HEADER_RUNNING));
                routable.SetHeader(this.header, this.value);
                break;

            case 1:
                try
                {
                    routable.SetHeader(this.header, this.callback());
                }
                catch (Exception ex)
                {
                    routable.SetInError(this.SetError("Callback", Resources.ERROR_HEADER_CALLBACK));
                    this.OnLog?.Invoke(this, new Log(Microsoft.Extensions.Logging.LogLevel.Error, Resources.ERROR_HEADER_CALLBACK, ex));
                }

                break;

            case 2:
                try
                {
                    routable.SetHeader(this.header, this.callbackTwo(routable));
                }
                catch (Exception ex)
                {
                    routable.SetInError(this.SetError("Callback", Resources.ERROR_HEADER_CALLBACK));
                    this.OnLog?.Invoke(this, new Log(Microsoft.Extensions.Logging.LogLevel.Error, Resources.ERROR_HEADER_CALLBACK, ex));
                }

                break;
            }
        }
示例#4
0
 public void Process(Routable routable)
 {
     this.OnLog?.Invoke(this, new Log(Microsoft.Extensions.Logging.LogLevel.Information, "Setting header"));
     routable.SetHeader("ComponentRan", "Yes");
 }
示例#5
0
        public void CreatedHeaderError()
        {
            Routable routable = this.CreateMessage();

            Assert.Throws <Kyameru.Core.Exceptions.CoreException>(() => routable.SetHeader("Test", "changed"));
        }