Skip to content
This repository was archived by the owner on Jul 30, 2024. It is now read-only.

Commit d031422

Browse files
authored
Fix stats missing for System.Version versions (#144)
* Use NuGetVersion instead of SemanticVersion. * Adding tests. Null check for packageTranslator. * adding header, remove extraneous usings
1 parent c967ede commit d031422

4 files changed

Lines changed: 53 additions & 5 deletions

File tree

src/Stats.CreateAzureCdnWarehouseReports/DownloadCountReport.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ public async Task Run()
5353
foreach (var gv in group)
5454
{
5555
// downloads.v1.json should only contain normalized versions - ignore others
56-
SemanticVersion semanticVersion;
56+
NuGetVersion semanticVersion;
5757
if (!string.IsNullOrEmpty(gv.PackageVersion)
58-
&& SemanticVersion.TryParse(gv.PackageVersion, out semanticVersion)
58+
&& NuGetVersion.TryParse(gv.PackageVersion, out semanticVersion)
5959
&& gv.PackageVersion == semanticVersion.ToNormalizedString())
6060
{
6161
var version = new JArray(gv.PackageVersion, gv.TotalDownloadCount);

src/Stats.ImportAzureCdnStatistics/PackageStatisticsParser.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ public PackageStatistics FromCdnLogEntry(CdnLogEntry cdnLogEntry)
2626
return null;
2727
}
2828

29-
packageDefinition = _packageTranslator.TranslatePackageDefinition(packageDefinition);
29+
if (_packageTranslator != null)
30+
{
31+
packageDefinition = _packageTranslator.TranslatePackageDefinition(packageDefinition);
32+
}
3033

3134
var statistic = new PackageStatistics();
3235
statistic.EdgeServerTimeDelivered = cdnLogEntry.EdgeServerTimeDelivered;
@@ -51,9 +54,9 @@ public PackageStatistics FromCdnLogEntry(CdnLogEntry cdnLogEntry)
5154
private static string NormalizeSemanticVersion(string packageVersion)
5255
{
5356
// Normalize package version
54-
SemanticVersion semanticVersion;
57+
NuGetVersion semanticVersion;
5558
if (!string.IsNullOrEmpty(packageVersion)
56-
&& SemanticVersion.TryParse(packageVersion, out semanticVersion))
59+
&& NuGetVersion.TryParse(packageVersion, out semanticVersion))
5760
{
5861
packageVersion = semanticVersion.ToNormalizedString();
5962
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// Copyright (c) .NET Foundation. All rights reserved.
2+
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
3+
4+
using Stats.AzureCdnLogs.Common;
5+
using Stats.ImportAzureCdnStatistics;
6+
using System;
7+
using Xunit;
8+
9+
namespace Tests.Stats.ImportAzureCdnStatistics
10+
{
11+
public class PackageStatisticsParserFacts
12+
{
13+
[Theory]
14+
[InlineData("SemVer1Version", "1.0.0", "1.0.0")]
15+
[InlineData("SemVer1VersionPreRel", "1.0.0-beta", "1.0.0-beta")]
16+
[InlineData("SemVer2Version", "1.0.0-1.0", "1.0.0-1.0")]
17+
[InlineData("System.VersionEndZero", "1.0.0.0", "1.0.0")]
18+
[InlineData("System.VersionEndNonZero", "1.0.0.2", "1.0.0.2")]
19+
public void PackageVersionsAreParsedCorrectly(string packageId, string packageVersion, string expectedVersion)
20+
{
21+
// Arrange
22+
var logEntry = GetCdnLogEntry($"http://test.me/{packageId}.{packageVersion}.nupkg");
23+
var statsParser = new PackageStatisticsParser(null);
24+
25+
// Act
26+
var stats = statsParser.FromCdnLogEntry(logEntry);
27+
28+
// Assert
29+
Assert.Equal(packageId, stats.PackageId);
30+
Assert.Equal(expectedVersion, stats.PackageVersion);
31+
}
32+
33+
private CdnLogEntry GetCdnLogEntry(string requestUrl)
34+
{
35+
return new CdnLogEntry
36+
{
37+
RequestUrl = requestUrl,
38+
EdgeServerTimeDelivered = DateTime.UtcNow,
39+
EdgeServerIpAddress = "0.0.0.0",
40+
UserAgent = "fakeAgent"
41+
};
42+
}
43+
}
44+
}

tests/Tests.Stats.ImportAzureCdnStatistics/Tests.Stats.ImportAzureCdnStatistics.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@
124124
<Compile Include="LogFileProcessorFacts.cs" />
125125
<Compile Include="PackageDefinitionFacts.cs" />
126126
<Compile Include="PackageDimensionFacts.cs" />
127+
<Compile Include="PackageStatisticsParserFacts.cs" />
127128
<Compile Include="PackageTranslatorFacts.cs" />
128129
<Compile Include="StatisticsParserFacts.cs" />
129130
<Compile Include="ToolDimensionFacts.cs" />

0 commit comments

Comments
 (0)