Skip to content

Commit fc0cebc

Browse files
Unit tests
1 parent a491075 commit fc0cebc

File tree

1 file changed

+20
-18
lines changed

1 file changed

+20
-18
lines changed
Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
using Sentry.Protocol.Spans;
1+
namespace Sentry.Tests.Protocol;
22

3-
namespace Sentry.Tests.Protocol.Envelopes;
4-
5-
public class SpanV2EnvelopeTests
3+
public class SpanV2Tests
64
{
75
[Fact]
8-
public async Task EnvelopeItem_FromSpanV2_SerializesHeaderWithContentTypeAndItemCount()
6+
public async Task EnvelopeItem_FromSpans_SerializesHeaderWithContentTypeAndItemCount()
97
{
108
var span = new SpanV2(SentryId.Parse("0123456789abcdef0123456789abcdef"), SpanId.Parse("0123456789abcdef"), "db", DateTimeOffset.Parse("2020-01-01T00:00:00Z"))
119
{
@@ -14,7 +12,8 @@ public async Task EnvelopeItem_FromSpanV2_SerializesHeaderWithContentTypeAndItem
1412
EndTimestamp = DateTimeOffset.Parse("2020-01-01T00:00:01Z"),
1513
};
1614

17-
using var envelopeItem = EnvelopeItem.FromSpanV2(span);
15+
var spanItems = new SpanV2Items([span]);
16+
using var envelopeItem = EnvelopeItem.FromSpans(spanItems);
1817

1918
using var stream = new MemoryStream();
2019
await envelopeItem.SerializeAsync(stream, null);
@@ -23,31 +22,34 @@ public async Task EnvelopeItem_FromSpanV2_SerializesHeaderWithContentTypeAndItem
2322
var output = await reader.ReadToEndAsync();
2423

2524
var firstLine = output.Split('\n', StringSplitOptions.RemoveEmptyEntries)[0];
26-
firstLine.Should().Contain("\"type\":\"span_v2\"");
25+
firstLine.Should().Contain("\"type\":\"span\"");
2726
firstLine.Should().Contain("\"item_count\":1");
2827
firstLine.Should().Contain("\"content_type\":\"application/vnd.sentry.items.span\\u002Bjson\"");
2928
}
3029

3130
[Fact]
32-
public void Envelope_FromSpanV2_ThrowsWhenMoreThan100Spans()
31+
public void Envelope_FromSpans_CreatesSingleItem()
3332
{
34-
var spans = Enumerable.Range(0, 101).Select(_ =>
35-
new SpanV2(SentryId.Create(), SpanId.Create(), "op", DateTimeOffset.UtcNow));
33+
SpanV2[] spans = [new(SentryId.Create(), SpanId.Create(), "op", DateTimeOffset.UtcNow)];
3634

37-
Action act = () => Envelope.FromSpanV2(spans);
35+
using var envelope = Envelope.FromSpans(spans);
3836

39-
act.Should().Throw<ArgumentOutOfRangeException>();
37+
envelope.Items.Should().HaveCount(1);
38+
envelope.Items[0].TryGetType().Should().Be("span");
39+
envelope.Items[0].Header.GetValueOrDefault("item_count").Should().Be(1);
4040
}
4141

4242
[Fact]
43-
public void Envelope_FromSpanV2_CreatesUpTo100Items()
43+
public void Envelope_FromSpan_RespectsMaxSpans()
4444
{
45-
var spans = Enumerable.Range(0, 100).Select(_ =>
46-
new SpanV2(SentryId.Create(), SpanId.Create(), "op", DateTimeOffset.UtcNow)).ToList();
45+
var spans = Enumerable.Range(0, SpanV2.MaxSpansPerEnvelope + 10)
46+
.Select(_ => new SpanV2(SentryId.Create(), SpanId.Create(), "op", DateTimeOffset.UtcNow))
47+
.ToArray();
4748

48-
using var envelope = Envelope.FromSpanV2(spans);
49+
using var envelope = Envelope.FromSpans(spans);
4950

50-
envelope.Items.Should().HaveCount(100);
51-
envelope.Items.All(i => i.TryGetType() == "span_v2").Should().BeTrue();
51+
envelope.Items.Should().HaveCount(1);
52+
envelope.Items[0].TryGetType().Should().Be("span");
53+
envelope.Items[0].Header.GetValueOrDefault("item_count").Should().Be(SpanV2.MaxSpansPerEnvelope);
5254
}
5355
}

0 commit comments

Comments
 (0)