public void SerializeDeserializeLogMessage_withNestedException()
        {
            var ser = new BSONSerializer(new BSONTypeResolver(typeof(Message)));

            var msg = new Azos.Log.Message
            {
                Type              = MessageType.DebugGlue,
                UTCTimeStamp      = Ambient.UTCNow,
                Channel           = "MTV",
                From              = "Zhaba",
                Topic             = "App",
                Text              = "Hello text in Chinese: 中原千军逐蒋",
                Source            = 0,
                Parameters        = new string('a', 128000),
                ArchiveDimensions = "a=1 b=2",
                Exception         = WrappedException.ForException(new Exception("It is an error!!!", new Exception("Inside")))
            };

            var doc = ser.Serialize(msg);

            Console.WriteLine(doc.ToJSON(JSONWritingOptions.PrettyPrint));

            var got = ser.Deserialize(doc) as Azos.Log.Message;

            testMsgEquWoError(msg, got);

            Aver.IsTrue(got.Exception is WrappedException);
            Aver.AreEqual(msg.Exception.Message, got.Exception.Message);
            Aver.AreEqual(((WrappedException)msg.Exception).Wrapped.Message, ((WrappedException)got.Exception).Wrapped.Message);
            Aver.IsNotNull(((WrappedException)msg.Exception).Wrapped.InnerException);

            Aver.AreEqual(((WrappedException)msg.Exception).Wrapped.InnerException.Message, ((WrappedException)got.Exception).Wrapped.InnerException.Message);
        }
        public void SerializeDeserializeLogMessage()
        {
            var ser = new BSONSerializer(new BSONTypeResolver(typeof(Message)));

            var msg = new Azos.Log.Message
            {
                Type              = MessageType.DebugGlue,
                UTCTimeStamp      = Ambient.UTCNow,
                Channel           = "MTV",
                From              = "Zhaba",
                Topic             = "App",
                Text              = "Hello text",
                Source            = 12345,
                Parameters        = "aaaaa",
                ArchiveDimensions = "a=1 b=2"
            };

            var doc = ser.Serialize(msg);

            Console.WriteLine(doc.ToJSON(JSONWritingOptions.PrettyPrint));


            Aver.IsTrue(doc.IndexOfName(ser.TypeIDFieldName) >= 0);//field was added

            var got = ser.Deserialize(doc) as Azos.Log.Message;

            testMsgEquWoError(msg, got);
        }
        public void SerializeDeserializeLogMessage_KnownTypes()
        {
            var ser = new BSONSerializer();//notice no resolver

            var msg = new Azos.Log.Message
            {
                Type              = MessageType.DebugGlue,
                UTCTimeStamp      = Ambient.UTCNow,
                Channel           = "MTV",
                From              = "Zhaba",
                Topic             = "App",
                Text              = "Hello text",
                Source            = 12345,
                Parameters        = "aaaaa",
                ArchiveDimensions = "a=1 b=2"
            };

            var doc = ser.Serialize(msg, new BSONParentKnownTypes(typeof(Message)));

            Console.WriteLine(doc.ToJSON(JSONWritingOptions.PrettyPrint));

            Aver.IsFalse(doc.IndexOfName(ser.TypeIDFieldName) >= 0); //field was NOT added as the root type is known

            var got = new Azos.Log.Message();                        //pre-allocate before deserialize, as __t was not emitted

            Aver.IsNotNull(ser.Deserialize(doc, result: got) as Azos.Log.Message);
            testMsgEquWoError(msg, got);
        }
Exemplo n.º 4
0
        public void SerializeDeserializeLogMessage_withException()
        {
            var ser = new BSONSerializer(new BSONTypeResolver(typeof(Message)));

            var msg = new Azos.Log.Message
            {
                Type              = MessageType.DebugGlue,
                UTCTimeStamp      = Ambient.UTCNow,
                Channel           = Atom.Encode("MTV"),
                From              = "Zhaba",
                Topic             = "App",
                Text              = "Hello text",
                Source            = 12345,
                Parameters        = "aaaaa",
                ArchiveDimensions = "a=1 b=2",
                Exception         = WrappedException.ForException(new Exception("It is an error!!!"))
            };

            var doc = ser.Serialize(msg);

            Console.WriteLine(doc.ToJson(JsonWritingOptions.PrettyPrint));

            var got = ser.Deserialize(doc) as Azos.Log.Message;

            testMsgEquWoError(msg, got);

            Aver.IsTrue(got.Exception is WrappedException);
            Aver.AreEqual(msg.Exception.Message, got.Exception.Message);
            Aver.AreEqual(((WrappedException)msg.Exception).Wrapped.Message, ((WrappedException)got.Exception).Wrapped.Message);
        }
        private void testMsgEquWoError(Azos.Log.Message msg, Azos.Log.Message got)
        {
            Aver.IsNotNull(got);
            Aver.AreNotSameRef(msg, got);

            Aver.AreEqual(msg.Guid, got.Guid);
            Aver.AreEqual(msg.RelatedTo, got.RelatedTo);
            Aver.AreEqual(msg.Host, got.Host);
            Aver.AreEqual(msg.UTCTimeStamp, got.UTCTimeStamp);

            Aver.IsTrue(msg.Type == got.Type);
            Aver.AreEqual(msg.Channel, got.Channel);
            Aver.AreEqual(msg.From, got.From);
            Aver.AreEqual(msg.Topic, got.Topic);
            Aver.AreEqual(msg.Text, got.Text);
            Aver.AreEqual(msg.Source, got.Source);
            Aver.AreEqual(msg.Parameters, got.Parameters);
            Aver.AreEqual(msg.ArchiveDimensions, got.ArchiveDimensions);
        }