Skip to content

Commit fc9a1c8

Browse files
Ignore ranges in package versions
1 parent 0792762 commit fc9a1c8

File tree

4 files changed

+30
-10
lines changed

4 files changed

+30
-10
lines changed

src/LibYear.Core/FileTypes/XmlProjectFile.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public string Update(IReadOnlyCollection<Result> results)
4444
var version = element.Attribute(versionAttributeName)?.Value ?? element.Element(versionAttributeName)?.Value ?? string.Empty;
4545
try
4646
{
47-
return !string.IsNullOrEmpty(version)
47+
return !string.IsNullOrEmpty(version) && !version.Any(v => PackageVersion.RangeChars.Contains(v))
4848
? new PackageVersion(version)
4949
: null;
5050
}

src/LibYear.Core/PackageVersion.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ namespace LibYear.Core;
44

55
public sealed class PackageVersion : NuGetVersion
66
{
7+
public const string RangeChars = "[],()";
8+
79
public WildcardType WildcardType { get; }
810

911
public PackageVersion(string version)
@@ -46,7 +48,8 @@ private static PackageVersion ParseVersionString(string versionString)
4648

4749
if (wildcard == WildcardType.None)
4850
{
49-
return new PackageVersion(new NuGetVersion(versionString), wildcard);
51+
var nuGetVersion = new NuGetVersion(versionString);
52+
return new PackageVersion(nuGetVersion, wildcard);
5053
}
5154

5255
var lastPeriod = versionString.LastIndexOf('.');

test/LibYear.Core.Tests/FileTypes/CsProjFileTests.cs

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@ public async Task CanLoadCsProjFile()
1515
var file = new CsProjFile(filename, await File.ReadAllTextAsync(filename));
1616

1717
//assert
18-
Assert.Equal("test1", file.Packages.First().Key);
19-
Assert.Equal("test2", file.Packages.Skip(1).First().Key);
20-
Assert.Equal("test3", file.Packages.Skip(2).First().Key);
21-
Assert.Equal("test4", file.Packages.Skip(3).First().Key);
22-
Assert.Equal("test5", file.Packages.Skip(4).First().Key);
23-
Assert.Equal("test6", file.Packages.Skip(5).First().Key);
24-
Assert.Equal("test7", file.Packages.Skip(6).First().Key);
18+
var packages = file.Packages.Keys.ToArray();
19+
Assert.Equal("test1", packages[0]);
20+
Assert.Equal("test2", packages[1]);
21+
Assert.Equal("test3", packages[2]);
22+
Assert.Equal("test4", packages[3]);
23+
Assert.Equal("test5", packages[4]);
24+
Assert.Equal("test6", packages[5]);
25+
Assert.Equal("test7", packages[6]);
26+
Assert.Equal("test8", packages[7]);
2527
}
2628

2729
[Fact]
@@ -55,7 +57,7 @@ public async Task CanUpdateCsProjFile()
5557
}
5658

5759
[Fact]
58-
public async Task InvalidVersionShowsInfo()
60+
public async Task InvalidVersionShowsExceptionDetails()
5961
{
6062
//arrange
6163
var filename = Path.Combine("FileTypes", "project.csproj");
@@ -76,4 +78,18 @@ public async Task InvalidVersionShowsInfo()
7678
Assert.Contains("project.csproj", e.Message);
7779
}
7880
}
81+
82+
[Fact]
83+
public async Task VersionRangeGetsSkipped()
84+
{
85+
//arrange
86+
var filename = Path.Combine("FileTypes", "project.csproj");
87+
var contents = await File.ReadAllTextAsync(filename);
88+
89+
//act
90+
var file = new CsProjFile(filename, contents);
91+
92+
//assert
93+
Assert.Null(file.Packages["test8"]);
94+
}
7995
}

test/LibYear.Core.Tests/FileTypes/project.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,6 @@
1919
</PackageReference>
2020
<PackageReference Include="test6" />
2121
<PackageReference Include="test7" Version="*" />
22+
<PackageReference Include="test8" Version="[1.2,2.3]" />
2223
</ItemGroup>
2324
</Project>

0 commit comments

Comments
 (0)