public void Wrapped()
        {
            MockMessageBroker  broker = new MockMessageBroker();
            MockExecutionTimer timer  = new MockExecutionTimer();

            MemoryTraceWriter innerWriter = new MemoryTraceWriter();

            GlimpseTraceWriter writer = new GlimpseTraceWriter(broker, () => timer, innerWriter);

            writer.Trace(TraceLevel.Verbose, "Random text", null);
            writer.Trace(TraceLevel.Error, "More random text", null);
            Assert.AreEqual(2, writer.TraceMessages.Count);

            Assert.AreEqual(2, innerWriter.GetTraceMessages().Count());

            Assert.AreEqual("Verbose Random text", innerWriter.GetTraceMessages().ElementAt(0).Substring(24));
            Assert.AreEqual("Error More random text", innerWriter.GetTraceMessages().ElementAt(1).Substring(24));

            innerWriter.LevelFilter = TraceLevel.Warning;
            writer.Trace(TraceLevel.Verbose, "Random text", null);
            writer.Trace(TraceLevel.Warning, "More random text", null);
            writer.Trace(TraceLevel.Error, "More random text", null);
            Assert.AreEqual(4, innerWriter.GetTraceMessages().Count());

            Assert.AreEqual(TraceLevel.Verbose, writer.LevelFilter);
        }
示例#2
0
        public void Example()
        {
            #region Usage
            string json =
                @"{
              'FullName': 'Dan Deleted',
              'Deleted': true,
              'DeletedDate': '2013-01-20T00:00:00'
            }";

            MemoryTraceWriter traceWriter = new MemoryTraceWriter();

            Account account = JsonConvert.DeserializeObject <Account>(
                json,
                new JsonSerializerSettings {
                TraceWriter = traceWriter
            }
                );

            Console.WriteLine(traceWriter.ToString());
            // 2013-01-21T01:36:24.422 Info Started deserializing Newtonsoft.Json.Tests.Documentation.Examples.TraceWriter+Account. Path 'FullName', line 2, position 20.
            // 2013-01-21T01:36:24.442 Verbose Could not find member 'DeletedDate' on Newtonsoft.Json.Tests.Documentation.Examples.TraceWriter+Account. Path 'DeletedDate', line 4, position 23.
            // 2013-01-21T01:36:24.447 Info Finished deserializing Newtonsoft.Json.Tests.Documentation.Examples.TraceWriter+Account. Path '', line 5, position 8.
            // 2013-01-21T01:36:24.450 Verbose Deserialized JSON:
            // {
            //   "FullName": "Dan Deleted",
            //   "Deleted": true,
            //   "DeletedDate": "2013-01-20T00:00:00"
            // }
            #endregion

            Assert.AreEqual(4, traceWriter.GetTraceMessages().Count());
        }
示例#3
0
        public void ShouldDeserialize_False()
        {
            string json = @"{'HasName':false,'Name':'Name!'}";

            MemoryTraceWriter          traceWriter = new MemoryTraceWriter();
            ShouldDeserializeTestClass c           =
                JsonConvert.DeserializeObject <ShouldDeserializeTestClass>(
                    json,
                    new JsonSerializerSettings
            {
                ContractResolver = ShouldDeserializeContractResolver.Instance,
                TraceWriter      = traceWriter
            }
                    );

            Assert.AreEqual(1, c.ExtensionData.Count);
            Assert.AreEqual("Name!", (string)c.ExtensionData["Name"]);
            Assert.AreEqual(false, c.HasName);
            Assert.AreEqual(null, c.Name);

            Assert.IsTrue(
                traceWriter
                .GetTraceMessages()
                .Any(
                    m =>
                    m.EndsWith(
                        "Verbose ShouldDeserialize result for property 'Name' on Newtonsoft.Json.Tests.Serialization.ShouldDeserializeTestClass: False. Path 'Name'."
                        )
                    )
                );
        }
        public void MemoryTraceWriterTest()
        {
            #region MemoryTraceWriterExample
            Staff staff = new Staff();
            staff.Name  = "Arnie Admin";
            staff.Roles = new List <string> {
                "Administrator"
            };
            staff.StartDate = DateTime.Now;

            ITraceWriter traceWriter = new MemoryTraceWriter();

            JsonConvert.SerializeObject(
                staff,
                new JsonSerializerSettings {
                TraceWriter = traceWriter, Converters = { new JavaScriptDateTimeConverter() }
            });

            Console.WriteLine(traceWriter);
            // 2012-11-11T12:08:42.761 Info Started serializing Newtonsoft.Json.Tests.Serialization.Staff. Path ''.
            // 2012-11-11T12:08:42.785 Info Started serializing System.DateTime with converter Newtonsoft.Json.Converters.JavaScriptDateTimeConverter. Path 'StartDate'.
            // 2012-11-11T12:08:42.791 Info Finished serializing System.DateTime with converter Newtonsoft.Json.Converters.JavaScriptDateTimeConverter. Path 'StartDate'.
            // 2012-11-11T12:08:42.797 Info Started serializing System.Collections.Generic.List`1[System.String]. Path 'Roles'.
            // 2012-11-11T12:08:42.798 Info Finished serializing System.Collections.Generic.List`1[System.String]. Path 'Roles'.
            // 2012-11-11T12:08:42.799 Info Finished serializing Newtonsoft.Json.Tests.Serialization.Staff. Path ''.
            #endregion

            MemoryTraceWriter memoryTraceWriter = (MemoryTraceWriter)traceWriter;

            Assert.AreEqual(743, memoryTraceWriter.ToString().Length);
            Assert.AreEqual(6, memoryTraceWriter.GetTraceMessages().Count());
        }
        public void MemoryTraceWriterDeserializeTest()
        {
            string json = @"{
  ""Name"": ""Arnie Admin"",
  ""StartDate"": new Date(
    976623132000
  ),
  ""Roles"": [
    ""Administrator""
  ]
}";

            Staff staff = new Staff();

            staff.Name  = "Arnie Admin";
            staff.Roles = new List <string> {
                "Administrator"
            };
            staff.StartDate = new DateTime(2000, 12, 12, 12, 12, 12, DateTimeKind.Utc);

            ITraceWriter traceWriter = new MemoryTraceWriter();

            JsonConvert.DeserializeObject <Staff>(
                json,
                new JsonSerializerSettings
            {
                TraceWriter = traceWriter,
                Converters  = { new JavaScriptDateTimeConverter() },
                MetadataPropertyHandling = MetadataPropertyHandling.Default
            });

            Console.WriteLine(traceWriter);
            // 2012-11-11T12:08:42.761 Info Started serializing Newtonsoft.Json.Tests.Serialization.Staff. Path ''.
            // 2012-11-11T12:08:42.785 Info Started serializing System.DateTime with converter Newtonsoft.Json.Converters.JavaScriptDateTimeConverter. Path 'StartDate'.
            // 2012-11-11T12:08:42.791 Info Finished serializing System.DateTime with converter Newtonsoft.Json.Converters.JavaScriptDateTimeConverter. Path 'StartDate'.
            // 2012-11-11T12:08:42.797 Info Started serializing System.Collections.Generic.List`1[System.String]. Path 'Roles'.
            // 2012-11-11T12:08:42.798 Info Finished serializing System.Collections.Generic.List`1[System.String]. Path 'Roles'.
            // 2012-11-11T12:08:42.799 Info Finished serializing Newtonsoft.Json.Tests.Serialization.Staff. Path ''.
            // 2013-05-19T00:07:24.360 Verbose Deserialized JSON:
            // {
            //   "Name": "Arnie Admin",
            //   "StartDate": new Date(
            //     976623132000
            //   ),
            //   "Roles": [
            //     "Administrator"
            //   ]
            // }

            MemoryTraceWriter memoryTraceWriter = (MemoryTraceWriter)traceWriter;
            string            output            = memoryTraceWriter.ToString();

            Assert.AreEqual(1059, output.Length);
            Assert.AreEqual(7, memoryTraceWriter.GetTraceMessages().Count());

            json   = StringAssert.Normalize(json);
            output = StringAssert.Normalize(output);

            Assert.IsTrue(output.Contains(json));
        }
示例#6
0
        private JobLogEntry ParseEntry(string line)
        {
            var writer = new MemoryTraceWriter();
            var old    = _serializerSettings.TraceWriter;

            _serializerSettings.TraceWriter = writer;
            var result = JsonConvert.DeserializeObject <JobLogEntry>(line.Trim(), _serializerSettings);

            _serializerSettings.TraceWriter = old;
            foreach (var message in writer.GetTraceMessages())
            {
                Console.WriteLine(message);
            }
            return(result);
        }
        public void MemoryTraceWriterSerializeTest()
        {
            Staff staff = new Staff();

            staff.Name  = "Arnie Admin";
            staff.Roles = new List <string> {
                "Administrator"
            };
            staff.StartDate = new DateTime(2000, 12, 12, 12, 12, 12, DateTimeKind.Utc);

            ITraceWriter traceWriter = new MemoryTraceWriter();

            JsonConvert.SerializeObject(
                staff,
                new JsonSerializerSettings {
                TraceWriter = traceWriter, Converters = { new JavaScriptDateTimeConverter() }
            });

            Console.WriteLine(traceWriter);
            // 2012-11-11T12:08:42.761 Info Started serializing Newtonsoft.Json.Tests.Serialization.Staff. Path ''.
            // 2012-11-11T12:08:42.785 Info Started serializing System.DateTime with converter Newtonsoft.Json.Converters.JavaScriptDateTimeConverter. Path 'StartDate'.
            // 2012-11-11T12:08:42.791 Info Finished serializing System.DateTime with converter Newtonsoft.Json.Converters.JavaScriptDateTimeConverter. Path 'StartDate'.
            // 2012-11-11T12:08:42.797 Info Started serializing System.Collections.Generic.List`1[System.String]. Path 'Roles'.
            // 2012-11-11T12:08:42.798 Info Finished serializing System.Collections.Generic.List`1[System.String]. Path 'Roles'.
            // 2012-11-11T12:08:42.799 Info Finished serializing Newtonsoft.Json.Tests.Serialization.Staff. Path ''.

            MemoryTraceWriter memoryTraceWriter = (MemoryTraceWriter)traceWriter;
            string            output            = memoryTraceWriter.ToString();

            Assert.AreEqual(916, output.Length);
            Assert.AreEqual(7, memoryTraceWriter.GetTraceMessages().Count());

            string json = @"Serialized JSON: 
{
  ""Name"": ""Arnie Admin"",
  ""StartDate"": new Date(
    976623132000
  ),
  ""Roles"": [
    ""Administrator""
  ]
}";

            json   = StringAssert.Normalize(json);
            output = StringAssert.Normalize(output);

            Assert.IsTrue(output.Contains(json));
        }
示例#8
0
        public void MemoryTraceWriterLimitTest()
        {
            MemoryTraceWriter traceWriter = new MemoryTraceWriter();

            for (int i = 0; i < 1005; i++)
            {
                traceWriter.Trace(TraceLevel.Verbose, (i + 1).ToString(CultureInfo.InvariantCulture), null);
            }

            IList <string> traceMessages = traceWriter.GetTraceMessages().ToList();

            Assert.AreEqual(1000, traceMessages.Count);

            Assert.IsTrue(traceMessages.First().EndsWith(" 6"));
            Assert.IsTrue(traceMessages.Last().EndsWith(" 1005"));
        }
示例#9
0
        public void Test()
        {
            string            json        = "{'Value':'hi'}";
            MemoryTraceWriter traceWriter = new MemoryTraceWriter {
                LevelFilter = TraceLevel.Info
            };
            PrivateSetterTestClass o = JsonConvert.DeserializeObject <PrivateSetterTestClass>(json, new JsonSerializerSettings
            {
                TraceWriter = traceWriter
            });
            List <string> messages = traceWriter.GetTraceMessages().ToList();

            bool hasMessage = messages.Any(message => message.Contains("Info Unable to deserialize value to non-writable property 'Value' on Newtonsoft.Json.Tests.Issues.Issue0573+PrivateSetterTestClass. Path 'Value', line 1, position 13."));

            Assert.IsTrue(hasMessage);
        }
示例#10
0
        public void Should_SetValueProvider_For_Each_BuildableBaseMember()
        {
            // Arrange
            var sut = new Response(100);

            sut.Headers.Add("Content-Type", "application/json");


            // Act
            var jo = sut.AsJObject();

            Output.Dump(jo);
            TraceWriter.GetTraceMessages().ToList().ForEach(m => Output.Dump(m));

            // Assert
            jo.Should().NotBeNull();
        }
示例#11
0
        public void MemoryTraceWriterTest()
        {
            #region MemoryTraceWriterExample
            Staff staff = new Staff();
            staff.Name  = "Arnie Admin";
            staff.Roles = new List <string> {
                "Administrator"
            };
            staff.StartDate = new DateTime(2000, 12, 12, 12, 12, 12, DateTimeKind.Utc);

            ITraceWriter traceWriter = new MemoryTraceWriter();

            JsonConvert.SerializeObject(
                staff,
                new JsonSerializerSettings
            {
                TraceWriter = traceWriter,
                Converters  = { new JavaScriptDateTimeConverter() }
            }
                );

            Console.WriteLine(traceWriter);
            // 2012-11-11T12:08:42.761 Info Started serializing Newtonsoft.Json.Tests.Serialization.Staff. Path ''.
            // 2012-11-11T12:08:42.785 Info Started serializing System.DateTime with converter Newtonsoft.Json.Converters.JavaScriptDateTimeConverter. Path 'StartDate'.
            // 2012-11-11T12:08:42.791 Info Finished serializing System.DateTime with converter Newtonsoft.Json.Converters.JavaScriptDateTimeConverter. Path 'StartDate'.
            // 2012-11-11T12:08:42.797 Info Started serializing System.Collections.Generic.List`1[System.String]. Path 'Roles'.
            // 2012-11-11T12:08:42.798 Info Finished serializing System.Collections.Generic.List`1[System.String]. Path 'Roles'.
            // 2012-11-11T12:08:42.799 Info Finished serializing Newtonsoft.Json.Tests.Serialization.Staff. Path ''.
            // 2013-05-18T21:38:11.255 Verbose Serialized JSON:
            // {
            //   "Name": "Arnie Admin",
            //   "StartDate": new Date(
            //     976623132000
            //   ),
            //   "Roles": [
            //     "Administrator"
            //   ]
            // }
            #endregion

            MemoryTraceWriter memoryTraceWriter = (MemoryTraceWriter)traceWriter;

            Assert.AreEqual(916, memoryTraceWriter.ToString().Length);
            Assert.AreEqual(7, memoryTraceWriter.GetTraceMessages().Count());
        }