Пример #1
0
        public void ShouldSerializeHeaderWell()
        {
            //Arrange
            var options = new SyslogLoggerOptions
            {
                Hostname = "host",
                AppName  = "app",
                ProcId   = "proc"
            };

            var logTime = new DateTime(2001, 1, 1, 1, 1, 1, 1, DateTimeKind.Local)
                          .AddTicks(10);

            var serializer = new SyslogMessageSerializer(options)
            {
                Level   = LogLevel.Debug,
                EventId = new EventId(0),
                LogTime = logTime
            };

            //Act
            var strMsg = serializer.Serialize("foo");

            //Assert
            Assert.Equal("<191>1 2001-01-01T01:01:01.001001+03:00 host app proc foo", strMsg);
        }
        public void TestSerializerCtrNullStream()
        {
            var syslogSerializer = new SyslogMessageSerializer();

            Assert.Throws <ArgumentNullException>(() => syslogSerializer.Serialize(new SyslogMessage
            {
                Facility  = SyslogFacility.ClockDaemon1,
                Severity  = SyslogSeverity.Alert,
                Timestamp = DateTimeOffset.UtcNow
            }, null));
        }
        public void TestSerializerData(SyslogFacility facility, SyslogSeverity severity, string dateTime, string hostName, string appName, string procId, string msgId, string structuredData, string message, string result)
        {
            var syslogSerializer = new SyslogMessageSerializer();

            var syslogMsg = new SyslogMessage
            {
                Facility  = facility,
                Severity  = severity,
                Timestamp = string.IsNullOrEmpty(dateTime) ? (DateTimeOffset?)null : DateTimeOffset.ParseExact(dateTime, @"MM/dd/yyyy H:mm zzz", CultureInfo.InvariantCulture),
                HostName  = hostName,
                AppName   = appName,
                ProcId    = procId,
                MsgId     = msgId,
                Message   = message
            };

            IEnumerable <SyslogSdElement> structuredDataList = DecodeStructuredData(structuredData);

            if (structuredDataList != null)
            {
                foreach (SyslogSdElement sd in structuredDataList)
                {
                    syslogMsg.StructuredDataElements.Add(sd);
                }
            }


            using (var stream = new MemoryStream())
            {
                // Serialize a message to a memory stream
                syslogSerializer.Serialize(syslogMsg, stream);

                stream.Position = 0;

                // Get the message as a string and compare
                using (var reader = new StreamReader(stream))
                {
                    Assert.AreEqual(result, reader.ReadToEnd(), "The serialized messages is invalid.");
                }
            }
        }
        public void TestSerializerCtrNullMessage()
        {
            var syslogSerializer = new SyslogMessageSerializer();

            Assert.Throws <ArgumentNullException>(() => syslogSerializer.Serialize(null, new MemoryStream()));
        }