Skip to content

Commit 1bb5796

Browse files
committed
Add test for NormalizeVersionInterceptor
1 parent 9c65609 commit 1bb5796

2 files changed

Lines changed: 67 additions & 0 deletions

File tree

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
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 System.Collections.Generic;
5+
using System.Linq.Expressions;
6+
using System.Reflection;
7+
using NuGet.Server.DataServices;
8+
using Xunit;
9+
10+
namespace NuGet.Server.Tests
11+
{
12+
public class NormalizeVersionInterceptorTest
13+
{
14+
private static readonly MemberInfo _versionMember = typeof(ODataPackage).GetProperty("Version");
15+
private static readonly MemberInfo _normalizedVersionMember = typeof(ODataPackage).GetProperty("NormalizedVersion");
16+
17+
public static IEnumerable<object[]> TheoryData
18+
{
19+
get
20+
{
21+
return new[]
22+
{
23+
new object[]
24+
{
25+
Expression.MakeBinary(
26+
ExpressionType.Equal,
27+
Expression.Constant("1.0.0.0"),
28+
Expression.MakeMemberAccess(Expression.Parameter(typeof(ODataPackage)), _versionMember)),
29+
30+
Expression.MakeBinary(
31+
ExpressionType.Equal,
32+
Expression.Constant("1.0.0"),
33+
Expression.MakeMemberAccess(Expression.Parameter(typeof(ODataPackage)), _normalizedVersionMember))
34+
},
35+
36+
new object[]
37+
{
38+
Expression.MakeBinary(
39+
ExpressionType.Equal,
40+
Expression.MakeMemberAccess(Expression.Parameter(typeof(ODataPackage)), _versionMember),
41+
Expression.Constant("1.0.0.0")),
42+
43+
Expression.MakeBinary(
44+
ExpressionType.Equal,
45+
Expression.Constant("1.0.0"),
46+
Expression.MakeMemberAccess(Expression.Parameter(typeof(ODataPackage)), _normalizedVersionMember))
47+
}
48+
};
49+
}
50+
}
51+
52+
[Theory]
53+
[MemberData("TheoryData")]
54+
public void RewritesVersionPropertyNameToNormalizedVersionPropertyName(Expression originalExpression, Expression expectedExpression)
55+
{
56+
// Arrange
57+
var interceptor = new NormalizeVersionInterceptor();
58+
59+
// Act
60+
var rewrittenExpression = interceptor.Visit(originalExpression);
61+
62+
// Assert
63+
Assert.Equal(rewrittenExpression.ToString(), expectedExpression.ToString());
64+
}
65+
}
66+
}

test/NuGet.Server.Tests/NuGet.Server.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
<Compile Include="JsonNetPackagesSerializerTests.cs" />
7070
<Compile Include="FeedPackageTest.cs" />
7171
<Compile Include="Infrastructure\TemporaryDirectory.cs" />
72+
<Compile Include="NormalizeVersionInterceptorTest.cs" />
7273
<Compile Include="PackageAuthenticationServiceTests.cs" />
7374
<Compile Include="PackageSvcFacts.cs" />
7475
<Compile Include="Properties\AssemblyInfo.cs" />

0 commit comments

Comments
 (0)