Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,34 +17,6 @@ public async void Can_hit_endpoint()
Assert.That(status.ServerTime.Day, Is.EqualTo(DateTime.Now.Day));
}

[Test]
public async void Can_see_default_traceId_as_guid_parseable_string()
{
var status = await Api<Status>.Create.Response();

var traceId = status.OriginalRequest.TraceId;
Assert.That(traceId, Is.Not.Null);
Assert.DoesNotThrow(() => Guid.Parse(traceId));
}

[Test]
public async void Two_separate_requests_get_different_traceIds()
{
var fluentApi = Api<Status>.Create;
var status = await fluentApi.Response();
var status2 = await fluentApi.Response();

var traceId = status.OriginalRequest.TraceId;
var traceId2 = status2.OriginalRequest.TraceId;
Assert.That(status.OriginalRequest.TraceId, Is.Not.Null);
Assert.DoesNotThrow(() => Guid.Parse(traceId));

Assert.That(status.OriginalRequest.TraceId, Is.Not.Null);
Assert.DoesNotThrow(() => Guid.Parse(traceId2));

Assert.That(traceId, Is.Not.EqualTo(traceId2));
}

[Test]
public async void Can_see_custom_traceId()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
using System;
using System.Collections.Generic;
using System.Net.Http;
using FakeItEasy;
using FakeItEasy;
using NUnit.Framework;
using SevenDigital.Api.Wrapper.Environment;
using SevenDigital.Api.Wrapper.Requests;
using System.Collections.Generic;
using System.Net.Http;

namespace SevenDigital.Api.Wrapper.Unit.Tests.Requests
{
[TestFixture]
public class RequestBuilderTests
{
private const string API_URL = "http://api.7digital.com/1.2";
private const string TRACE_ID_HEADER_KEY = "x-7d-traceid";
private RequestBuilder _requestBuilder;

[SetUp]
Expand Down Expand Up @@ -231,9 +231,8 @@ public void Adds_traceId_header_as_a_valid_guid()
};
var request = _requestBuilder.BuildRequest(requestData);

var traceIdHeader = request.Headers["x-7d-traceid"];
Assert.That(traceIdHeader, Is.Not.Null);
Assert.DoesNotThrow(() => Guid.Parse(traceIdHeader));
var hasTraceIdHeader = request.Headers.Keys.Contains(TRACE_ID_HEADER_KEY);
Assert.That(hasTraceIdHeader, Is.False);
}

[Test]
Expand All @@ -255,7 +254,7 @@ public void Allows_a_custom_traceId_to_be_specified()
};
var request = _requestBuilder.BuildRequest(requestData);

var traceIdHeader = request.Headers["x-7d-traceid"];
var traceIdHeader = request.Headers[TRACE_ID_HEADER_KEY];
Assert.That(traceIdHeader, Is.Not.Null);
Assert.That(traceIdHeader, Is.EqualTo(customTraceId));
}
Expand Down
15 changes: 8 additions & 7 deletions src/SevenDigital.Api.Wrapper/Requests/RequestBuilder.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
using System;
using OAuth;
using SevenDigital.Api.Wrapper.Http;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using OAuth;
using SevenDigital.Api.Wrapper.Http;

namespace SevenDigital.Api.Wrapper.Requests
{
Expand Down Expand Up @@ -42,8 +41,10 @@ public Request BuildRequest(RequestData requestData)
headers.Add("Authorization", oauthHeader);
headers.Add("Accept", requestData.Accept);

var traceId = requestData.TraceId ?? Guid.NewGuid().ToString();
headers.Add("x-7d-traceid", traceId);
if (requestData.TraceId != null)
{
headers.Add("x-7d-traceid", requestData.TraceId);
}

var queryParams = requestData.HttpMethod.ShouldHaveRequestBody()
? GetAllowedQueryStringParams(apiRequest.Parameters)
Expand All @@ -54,7 +55,7 @@ public Request BuildRequest(RequestData requestData)
fullUrl += "?" + queryParams.ToQueryString();
}

return new Request(requestData.HttpMethod, fullUrl, headers, requestBody, traceId);
return new Request(requestData.HttpMethod, fullUrl, headers, requestBody, requestData.TraceId);
}

private static RequestPayload CheckForRequestPayload(RequestData requestData, IDictionary<string,string> requestParameters)
Expand Down Expand Up @@ -121,4 +122,4 @@ private static bool ShouldReadParamsFromBody(IDictionary<string, string> querySt
(queryStringParameters.Count == 0);
}
}
}
}