public void ShouldTrace_SingleThread_TwoMethodsOnTheFirstLvl() { Method1(); Method2(); TracerResult tracerResult = tracer.GetTraceResult(); ThreadTracerResult[] threadTracersResults = new ThreadTracerResult[tracer.GetTraceResult().dThreadTracerResults.Count]; tracer.GetTraceResult().dThreadTracerResults.Values.CopyTo(threadTracersResults, 0); Assert.AreEqual(1, threadTracersResults.Length); // should be only one ThreadTracerResult Assert.AreEqual(2, threadTracersResults[0].lFirstLvlMethodTracersResult.Count); // should be two methods on the first lvl // check that the first method on the first lvl is correct string methodNameFromTraceResult1 = threadTracersResults[0].lFirstLvlMethodTracersResult[0].MethodName; string classNameFromTraceResult1 = threadTracersResults[0].lFirstLvlMethodTracersResult[0].ClassName; Assert.AreEqual("Method1", methodNameFromTraceResult1); Assert.AreEqual("TracerTests", classNameFromTraceResult1); // check that the second method on the first lvl is correct string methodNameFromTraceResult2 = threadTracersResults[0].lFirstLvlMethodTracersResult[1].MethodName; string classNameFromTraceResult2 = threadTracersResults[0].lFirstLvlMethodTracersResult[1].ClassName; Assert.AreEqual("Method2", methodNameFromTraceResult2); Assert.AreEqual("TracerTests", classNameFromTraceResult2); }
public void ShouldTrace_SingleThread_SingleMethodOnTheFirstLvl_with_InnerMethodCall() { MethodWithInnerMethodCall(); TracerResult tracerResult = tracer.GetTraceResult(); ThreadTracerResult[] threadTracersResults = new ThreadTracerResult[tracer.GetTraceResult().dThreadTracerResults.Count]; tracer.GetTraceResult().dThreadTracerResults.Values.CopyTo(threadTracersResults, 0); Assert.AreEqual(1, threadTracersResults.Length); // should be only one ThreadTracerResult Assert.AreEqual(1, threadTracersResults[0].lFirstLvlMethodTracersResult.Count); // should be only one method on the first lvl // check that the first method on the first lvl is correct string methodNameFromTraceResult1 = threadTracersResults[0].lFirstLvlMethodTracersResult[0].MethodName; string classNameFromTraceResult1 = threadTracersResults[0].lFirstLvlMethodTracersResult[0].ClassName; Assert.AreEqual("MethodWithInnerMethodCall", methodNameFromTraceResult1); Assert.AreEqual("TracerTests", classNameFromTraceResult1); // check that the first method has one inner method Assert.AreEqual(1, threadTracersResults[0].lFirstLvlMethodTracersResult[0].lInnerMethodTracerResults.Count); // check that the first method has correct inner method Assert.AreEqual("Method1", threadTracersResults[0].lFirstLvlMethodTracersResult[0].lInnerMethodTracerResults[0].MethodName); Assert.AreEqual("TracerTests", threadTracersResults[0].lFirstLvlMethodTracersResult[0].lInnerMethodTracerResults[0].ClassName); }
public void ShouldTrace_TwoThreads_each_with_SingleMethod() { TwoThreadsCallOneMethod(); TracerResult tracerResult = tracer.GetTraceResult(); ThreadTracerResult[] threadTracersResults = new ThreadTracerResult[tracer.GetTraceResult().dThreadTracerResults.Count]; tracer.GetTraceResult().dThreadTracerResults.Values.CopyTo(threadTracersResults, 0); Assert.AreEqual(2, threadTracersResults.Length); // should be two ThreadTracerResult Assert.AreEqual(1, threadTracersResults[0].lFirstLvlMethodTracersResult.Count); // should be only one method on the first lvl in the first ThreadTracerResult Assert.AreEqual(1, threadTracersResults[1].lFirstLvlMethodTracersResult.Count); // should be only one method on the first lvl in the second ThreadTracerResult // check that the first ThreadTraceResult has correct method on the first lvl string methodNameFromTraceResult1 = threadTracersResults[0].lFirstLvlMethodTracersResult[0].MethodName; string classNameFromTraceResult1 = threadTracersResults[0].lFirstLvlMethodTracersResult[0].ClassName; Assert.AreEqual("Method1", methodNameFromTraceResult1); Assert.AreEqual("TracerTests", classNameFromTraceResult1); // check that the second ThreadTraceResult has correct method on the first lvl string methodNameFromTraceResult2 = threadTracersResults[1].lFirstLvlMethodTracersResult[0].MethodName; string classNameFromTraceResult2 = threadTracersResults[1].lFirstLvlMethodTracersResult[0].ClassName; Assert.AreEqual("Method1", methodNameFromTraceResult1); Assert.AreEqual("TracerTests", classNameFromTraceResult1); }
public void SaveToJson() { string pathToSave = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "..\\..\\Save\\JsonTraseResult.json"); FileStream fileStream = new FileStream(pathToSave, FileMode.Create); StreamWriter streamWriter = new StreamWriter(fileStream); TracerResult tracerResult = this.Tracer.GetTraceResult(); JsonSerializer xmlSerializer = new JsonSerializer(); xmlSerializer.SaveTraceResult(streamWriter, tracerResult); xmlSerializer.SaveTraceResult(Console.Out, tracerResult); }