public void TracingDataShouldContainAdditionaProperties() { TracingData tData = new TracingData { ParentSpanID = "ParentSpanID1", SpanID = "SpanID1" }; JObject jObject = JObject.FromObject(tData); TracingData tDataResult = DeserializeObject <TracingData>(jObject); tDataResult.ParentSpanID.ShouldBe("ParentSpanID1"); tDataResult.SpanID.ShouldBe("SpanID1"); tDataResult.AdditionalProperties.ShouldBeNull(); jObject.Add("TracingData", "AdditionalData1"); tDataResult = DeserializeObject <TracingData>(jObject); tDataResult.ParentSpanID.ShouldBe("ParentSpanID1"); tDataResult.SpanID.ShouldBe("SpanID1"); tDataResult.AdditionalProperties.ShouldContainKeyAndValue("TracingData", "AdditionalData1"); }
public void HttpServiceRequestShouldContainAdditionaPropertiesRecursively() { TracingData tData = new TracingData { ParentSpanID = "ParentSpanID1", SpanID = "SpanID1" }; RequestOverrides requestOverrides = new RequestOverrides { Hosts = new[] { new HostOverride { ServiceName = "Service1", Host = "HostNameOverride" } }.ToList(), SuppressCaching = CacheSuppress.RecursiveAllDownstreamServices }; InvocationTarget invocationTarget = new InvocationTarget { MethodName = "MethodName1" }; HttpServiceRequest serviceRequest = new HttpServiceRequest { TracingData = tData, Overrides = requestOverrides, Target = invocationTarget }; dynamic jObject = JObject.FromObject(serviceRequest); HttpServiceRequest serviceRequestResult = DeserializeObject <HttpServiceRequest>(jObject); AssertShouldBeNull(serviceRequestResult); jObject.Add("ServiceRequestData", "ServiceRequestData1"); jObject["TracingData"].Add("TracingData", "TracingData1"); jObject["Overrides"].Add("OverridesData", "OverridesData1"); jObject["Overrides"]["Hosts"][0].Add("HostOverrideData", "HostOverrideData1"); jObject["Target"].Add("TargetData", "TargetData1"); serviceRequestResult = DeserializeObject <HttpServiceRequest>(jObject); AssertShouldNotBeNull(serviceRequestResult); }
/// <summary> /// POST Verb /// Request for Patterns calculation. /// If Token found - returns Token ID with 202, otherwise no Toke with 204. /// </summary> /// <param name="Token">Token ID</param> /// <param name="inData">Input tracing data</param> /// <returns>TokenID</returns> public Session CalculatePatterns(String Token, TracingData inData) { var guidHndlr = GUIDHandler.Init(); var curGuid = new Guid(Token); bool bExist = guidHndlr.FindGuid(curGuid); if (!bExist) { WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.NotFound; Logger.WriteLogEntry(TraceEventType.Error, "Patterns Add On Service, Patterns Service, Calculate Patterns", "GUID not found"); return(new Session() { TokenId = String.Empty }); } var session = guidHndlr.GetSession(curGuid); if (session == null) { WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.NoContent; Logger.WriteLogEntry(TraceEventType.Error, "Patterns Add On Service, Patterns Service, Calculate Patterns", "Couldn't find session"); return(new Session() { TokenId = curGuid.ToString() }); } // Check that results aren't stored for more than half an hour after last results request. var resultsLength = DateTime.Now - session.LastResultRequest; //System.Diagnostics.Trace.WriteLine("Last result request: " + resultsLength.TotalMinutes.ToString() + " ago"); if (resultsLength.TotalMinutes > Settings_MaxAmountOfResults) { WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.NotAcceptable; Logger.WriteLogEntry(TraceEventType.Critical, "Patterns Add On Service, Patterns Service, Calculate Patterns", "Maximum size of results exceeded"); return(new Session() { TokenId = curGuid.ToString() }); } Logger.WriteLogEntry(TraceEventType.Verbose, "Patterns Add On Service, Patterns Service, Calculate Patterns", "Session found for GUID: " + curGuid.ToString()); if (!session.AppendRequest(inData)) { WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.NoContent; Logger.WriteLogEntry(TraceEventType.Critical, "Patterns Add On Service, Patterns Service, Calculate Patterns", "Input slice length exceeded"); return(new Session() { TokenId = curGuid.ToString() }); } Logger.WriteLogEntry(TraceEventType.Information, "Patterns Add On Service, Patterns Service, Calculate Patterns", "Tracings accepted"); WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.Accepted; return(new Session() { TokenId = curGuid.ToString() }); }