Skip to content

Commit 6528bbe

Browse files
Updated unit tests
1 parent 02b9ef2 commit 6528bbe

File tree

2 files changed

+26
-14
lines changed

2 files changed

+26
-14
lines changed

tracer/test/Datadog.Trace.Tests/LambdaCommonTests.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using System.Net;
1010
using System.Threading.Tasks;
1111
using Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.Lambda;
12+
using Datadog.Trace.ClrProfiler.CallTarget;
1213
using Datadog.Trace.ExtensionMethods;
1314
using Datadog.Trace.TestHelpers;
1415
using Datadog.Trace.TestHelpers.TestTracer;
@@ -140,6 +141,7 @@ public async Task TestSendEndInvocationFailure()
140141
var headers = new WebHeaderCollection { { HttpHeaderNames.TraceId, "1234" }, { HttpHeaderNames.SamplingPriority, "-1" } }.Wrap();
141142
var scope = LambdaCommon.CreatePlaceholderScope(tracer, headers);
142143
var state = "example-aws-request-id";
144+
var stateObject = new CallTargetState(scope, state);
143145

144146
var response = new Mock<HttpWebResponse>(MockBehavior.Loose);
145147
var responseStream = new Mock<Stream>(MockBehavior.Loose);
@@ -149,9 +151,9 @@ public async Task TestSendEndInvocationFailure()
149151
httpRequest.Setup(h => h.GetResponse()).Throws(new WebException());
150152
httpRequest.Setup(h => h.GetRequestStream()).Returns(responseStream.Object);
151153

152-
_lambdaRequestMock.Setup(lr => lr.GetEndInvocationRequest(scope, state, true)).Returns(httpRequest.Object);
154+
_lambdaRequestMock.Setup(lr => lr.GetEndInvocationRequest(stateObject, true)).Returns(httpRequest.Object);
153155

154-
Assert.Throws<WebException>(() => LambdaCommon.SendEndInvocation(_lambdaRequestMock.Object, scope, state, true, "{}"));
156+
Assert.Throws<WebException>(() => LambdaCommon.SendEndInvocation(_lambdaRequestMock.Object, stateObject, true, "{}"));
155157
}
156158

157159
[Fact]
@@ -162,6 +164,7 @@ public async Task TestSendEndInvocationSuccess()
162164
var headers = new WebHeaderCollection { { HttpHeaderNames.TraceId, "1234" }, { HttpHeaderNames.SamplingPriority, "-1" } }.Wrap();
163165
var scope = LambdaCommon.CreatePlaceholderScope(tracer, headers);
164166
var state = "example-aws-request-id";
167+
var stateObject = new CallTargetState(scope, state);
165168

166169
var response = new Mock<HttpWebResponse>(MockBehavior.Loose);
167170
var responseStream = new Mock<Stream>(MockBehavior.Loose);
@@ -171,10 +174,10 @@ public async Task TestSendEndInvocationSuccess()
171174
httpRequest.Setup(h => h.GetResponse()).Returns(response.Object);
172175
httpRequest.Setup(h => h.GetRequestStream()).Returns(responseStream.Object);
173176

174-
_lambdaRequestMock.Setup(lr => lr.GetEndInvocationRequest(scope, state, true)).Returns(httpRequest.Object);
177+
_lambdaRequestMock.Setup(lr => lr.GetEndInvocationRequest(stateObject, true)).Returns(httpRequest.Object);
175178
var output = new StringWriter();
176179
Console.SetOut(output);
177-
LambdaCommon.SendEndInvocation(_lambdaRequestMock.Object, scope, state, true, "{}");
180+
LambdaCommon.SendEndInvocation(_lambdaRequestMock.Object, stateObject, true, "{}");
178181
httpRequest.Verify(r => r.GetResponse(), Times.Once);
179182
Assert.Empty(output.ToString());
180183
}
@@ -187,6 +190,7 @@ public async Task TestSendEndInvocationFalse()
187190
var headers = new WebHeaderCollection { { HttpHeaderNames.TraceId, "1234" }, { HttpHeaderNames.SamplingPriority, "-1" } }.Wrap();
188191
var scope = LambdaCommon.CreatePlaceholderScope(tracer, headers);
189192
var state = "example-aws-request-id";
193+
var stateObject = new CallTargetState(scope, state);
190194

191195
var response = new Mock<HttpWebResponse>(MockBehavior.Loose);
192196
var responseStream = new Mock<Stream>(MockBehavior.Loose);
@@ -196,10 +200,10 @@ public async Task TestSendEndInvocationFalse()
196200
httpRequest.Setup(h => h.GetResponse()).Returns(response.Object);
197201
httpRequest.Setup(h => h.GetRequestStream()).Returns(responseStream.Object);
198202

199-
_lambdaRequestMock.Setup(lr => lr.GetEndInvocationRequest(scope, state, true)).Returns(httpRequest.Object);
203+
_lambdaRequestMock.Setup(lr => lr.GetEndInvocationRequest(stateObject, true)).Returns(httpRequest.Object);
200204
var output = new StringWriter();
201205
Console.SetOut(output);
202-
LambdaCommon.SendEndInvocation(_lambdaRequestMock.Object, scope, state, true, "{}");
206+
LambdaCommon.SendEndInvocation(_lambdaRequestMock.Object, stateObject, true, "{}");
203207
httpRequest.Verify(r => r.GetResponse(), Times.Once);
204208
Assert.Contains("Extension does not send a status 200 OK", output.ToString());
205209
}

tracer/test/Datadog.Trace.Tests/LambdaRequestBuilderTests.cs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using System.Net;
88
using System.Threading.Tasks;
99
using Datadog.Trace.ClrProfiler.AutoInstrumentation.AWS.Lambda;
10+
using Datadog.Trace.ClrProfiler.CallTarget;
1011
using Datadog.Trace.ExtensionMethods;
1112
using Datadog.Trace.TestHelpers.TestTracer;
1213
using FluentAssertions;
@@ -25,10 +26,10 @@ public async Task TestGetEndInvocationRequestWithError()
2526
var headers = new WebHeaderCollection().Wrap();
2627
var scope = LambdaCommon.CreatePlaceholderScope(tracer, headers);
2728
var state = "example-aws-request-id";
29+
var stateObject = new CallTargetState(scope, state);
2830

2931
ILambdaExtensionRequest requestBuilder = new LambdaRequestBuilder();
30-
var request = requestBuilder.GetEndInvocationRequest(scope, state, isError: true);
31-
request.Headers.Get("x-datadog-invocation-error").Should().Be("true");
32+
var request = requestBuilder.GetEndInvocationRequest(stateObject, true);
3233
request.Headers.Get("x-datadog-tracing-enabled").Should().Be("false");
3334
request.Headers.Get("x-datadog-sampling-priority").Should().Be("1");
3435
request.Headers.Get("x-datadog-trace-id").Should().NotBeNull();
@@ -43,9 +44,10 @@ public async Task TestGetEndInvocationRequestWithoutError()
4344
var headers = new WebHeaderCollection().Wrap();
4445
var scope = LambdaCommon.CreatePlaceholderScope(tracer, headers);
4546
var state = "example-aws-request-id";
47+
var stateObject = new CallTargetState(scope, state);
4648

4749
ILambdaExtensionRequest requestBuilder = new LambdaRequestBuilder();
48-
var request = requestBuilder.GetEndInvocationRequest(scope, state, isError: false);
50+
var request = requestBuilder.GetEndInvocationRequest(stateObject, isError: false);
4951
request.Headers.Get("x-datadog-invocation-error").Should().BeNull();
5052
request.Headers.Get("x-datadog-tracing-enabled").Should().Be("false");
5153
request.Headers.Get("x-datadog-sampling-priority").Should().Be("1");
@@ -61,9 +63,10 @@ public async Task TestGetEndInvocationRequestWithScope()
6163
var headers = new WebHeaderCollection { { HttpHeaderNames.TraceId, "1234" } }.Wrap();
6264
var scope = LambdaCommon.CreatePlaceholderScope(tracer, headers);
6365
var state = "example-aws-request-id";
66+
var stateObject = new CallTargetState(scope, state);
6467

6568
ILambdaExtensionRequest requestBuilder = new LambdaRequestBuilder();
66-
var request = requestBuilder.GetEndInvocationRequest(scope, state, isError: false);
69+
var request = requestBuilder.GetEndInvocationRequest(stateObject, isError: false);
6770
request.Headers.Get("x-datadog-invocation-error").Should().BeNull();
6871
request.Headers.Get("x-datadog-tracing-enabled").Should().Be("false");
6972
request.Headers.Get("x-datadog-sampling-priority").Should().Be("1");
@@ -77,7 +80,9 @@ public void TestGetEndInvocationRequestWithoutScope()
7780
{
7881
ILambdaExtensionRequest requestBuilder = new LambdaRequestBuilder();
7982
var state = "example-aws-request-id";
80-
var request = requestBuilder.GetEndInvocationRequest(scope: null, state, isError: false);
83+
var stateObject = new CallTargetState(scope: null, state);
84+
85+
var request = requestBuilder.GetEndInvocationRequest(stateObject, isError: false);
8186
request.Headers.Get("x-datadog-invocation-error").Should().BeNull();
8287
request.Headers.Get("x-datadog-tracing-enabled").Should().Be("false");
8388
request.Headers.Get("x-datadog-sampling-priority").Should().BeNull();
@@ -92,9 +97,10 @@ public async Task TestGetEndInvocationRequestWithoutState()
9297
await using var tracer = TracerHelper.CreateWithFakeAgent();
9398
var headers = new WebHeaderCollection { { HttpHeaderNames.TraceId, "1234" } }.Wrap();
9499
var scope = LambdaCommon.CreatePlaceholderScope(tracer, headers);
100+
var stateObject = new CallTargetState(scope, state: null);
95101

96102
ILambdaExtensionRequest requestBuilder = new LambdaRequestBuilder();
97-
var request = requestBuilder.GetEndInvocationRequest(scope, state: null, isError: false);
103+
var request = requestBuilder.GetEndInvocationRequest(stateObject, isError: false);
98104
request.Headers.Get("x-datadog-invocation-error").Should().BeNull();
99105
request.Headers.Get("x-datadog-tracing-enabled").Should().Be("false");
100106
request.Headers.Get("x-datadog-sampling-priority").Should().Be("1");
@@ -110,6 +116,7 @@ public async Task TestGetEndInvocationRequestWithErrorTags()
110116
var headers = new WebHeaderCollection().Wrap();
111117
var scope = LambdaCommon.CreatePlaceholderScope(tracer, headers);
112118
var state = "example-aws-request-id";
119+
var stateObject = new CallTargetState(scope, state);
113120

114121
var errorMsg = "Exception";
115122
var errorType = "Exception";
@@ -123,7 +130,7 @@ public async Task TestGetEndInvocationRequestWithErrorTags()
123130
var expectedErrorStack = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(errorStack));
124131

125132
ILambdaExtensionRequest requestBuilder = new LambdaRequestBuilder();
126-
var request = requestBuilder.GetEndInvocationRequest(scope, state, true);
133+
var request = requestBuilder.GetEndInvocationRequest(stateObject, true);
127134
request.Headers.Get("x-datadog-invocation-error").Should().NotBeNull();
128135
request.Headers.Get("x-datadog-invocation-error-msg").Should().Be(expectedErrorMsg);
129136
request.Headers.Get("x-datadog-invocation-error-type").Should().Be(expectedErrorType);
@@ -142,9 +149,10 @@ public async Task TestGetEndInvocationRequestWithoutErrorTags()
142149
var headers = new WebHeaderCollection().Wrap();
143150
var scope = LambdaCommon.CreatePlaceholderScope(tracer, headers);
144151
var state = "example-aws-request-id";
152+
var stateObject = new CallTargetState(scope, state);
145153

146154
ILambdaExtensionRequest requestBuilder = new LambdaRequestBuilder();
147-
var request = requestBuilder.GetEndInvocationRequest(scope, state, true);
155+
var request = requestBuilder.GetEndInvocationRequest(stateObject, true);
148156
request.Headers.Get("x-datadog-invocation-error").Should().NotBeNull();
149157
request.Headers.Get("x-datadog-invocation-error-msg").Should().BeNull();
150158
request.Headers.Get("x-datadog-invocation-error-type").Should().BeNull();

0 commit comments

Comments
 (0)