Skip to content

Fix Stack Overflow #934

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Dec 7, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -97,5 +97,5 @@ public bool Deprecated
}

/// <inheritdoc/>
public override int GetHashCode() => HashCode.Combine( GetHashCode(), Deprecated );
public override int GetHashCode() => HashCode.Combine( base.GetHashCode(), Deprecated );
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<VersionPrefix>6.2.0</VersionPrefix>
<VersionPrefix>6.2.1</VersionPrefix>
<AssemblyVersion>6.2.0.0</AssemblyVersion>
<TargetFrameworks>netstandard1.0;netstandard2.0;net6.0</TargetFrameworks>
<AssemblyTitle>API Versioning Abstractions</AssemblyTitle>
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@

[Fixed #932](https://github.com/dotnet/aspnet-api-versioning/issues/932)
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public void get_format_should_return_expected_format_provider()
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( FormatProvidersData ) )]
public void format_should_allow_null_or_empty_format_string( ApiVersionFormatProvider provider )
{
Expand All @@ -56,6 +57,7 @@ public void format_should_allow_null_or_empty_format_string( ApiVersionFormatPro
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( FormatProvidersData ) )]
public void format_should_return_full_formatted_string_without_optional_components( ApiVersionFormatProvider provider )
{
Expand All @@ -70,6 +72,7 @@ public void format_should_return_full_formatted_string_without_optional_componen
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( FormatProvidersData ) )]
public void format_should_return_full_formatted_string_with_optional_components( ApiVersionFormatProvider provider )
{
Expand All @@ -84,6 +87,7 @@ public void format_should_return_full_formatted_string_with_optional_components(
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( FormatProvidersData ) )]
public void format_should_return_original_string_format_when_argument_cannot_be_formatted( ApiVersionFormatProvider provider )
{
Expand Down Expand Up @@ -113,6 +117,7 @@ public void format_should_not_allow_malformed_literal_string( ApiVersionFormatPr
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( GroupVersionFormatData ) )]
public void format_should_return_formatted_group_version_string( ApiVersionFormatProvider provider, string format )
{
Expand All @@ -129,6 +134,7 @@ public void format_should_return_formatted_group_version_string( ApiVersionForma
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( FormatProvidersData ) )]
public void format_should_return_formatted_minor_version_string( ApiVersionFormatProvider provider )
{
Expand All @@ -143,6 +149,7 @@ public void format_should_return_formatted_minor_version_string( ApiVersionForma
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( FormatProvidersData ) )]
public void format_should_return_formatted_major_version_string( ApiVersionFormatProvider provider )
{
Expand All @@ -157,6 +164,7 @@ public void format_should_return_formatted_major_version_string( ApiVersionForma
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( FormatProvidersData ) )]
public void format_should_return_formatted_major_and_minor_version_string( ApiVersionFormatProvider provider )
{
Expand All @@ -171,6 +179,7 @@ public void format_should_return_formatted_major_and_minor_version_string( ApiVe
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( FormatProvidersData ) )]
public void format_should_return_formatted_short_version_string( ApiVersionFormatProvider provider )
{
Expand All @@ -185,6 +194,7 @@ public void format_should_return_formatted_short_version_string( ApiVersionForma
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( FormatProvidersData ) )]
public void format_should_return_formatted_long_version_string( ApiVersionFormatProvider provider )
{
Expand All @@ -199,6 +209,7 @@ public void format_should_return_formatted_long_version_string( ApiVersionFormat
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( FormatProvidersData ) )]
public void format_should_return_formatted_status_string( ApiVersionFormatProvider provider )
{
Expand All @@ -213,6 +224,7 @@ public void format_should_return_formatted_status_string( ApiVersionFormatProvid
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( PaddedMinorVersionFormatData ) )]
public void format_should_return_formatted_minor_version_with_padding_string( ApiVersionFormatProvider provider, string format )
{
Expand All @@ -233,6 +245,7 @@ public void format_should_return_formatted_minor_version_with_padding_string( Ap
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( PaddedMajorVersionFormatData ) )]
public void format_should_return_formatted_major_version_with_padding_string( ApiVersionFormatProvider provider, string format )
{
Expand All @@ -253,6 +266,7 @@ public void format_should_return_formatted_major_version_with_padding_string( Ap
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( CustomFormatData ) )]
public void format_should_return_custom_format_string( Func<ApiVersion, string> format, string expected )
{
Expand All @@ -268,6 +282,7 @@ public void format_should_return_custom_format_string( Func<ApiVersion, string>
}

[Theory]
[AssumeCulture( "en-us" )]
[MemberData( nameof( MultipleFormatParameterData ) )]
public void format_should_return_formatted_string_with_multiple_parameters( ApiVersionFormatProvider provider, string format, object secondArgument, string expected )
{
Expand All @@ -284,6 +299,7 @@ public void format_should_return_formatted_string_with_multiple_parameters( ApiV
}

[Fact]
[AssumeCulture( "en-us" )]
public void format_should_return_formatted_string_with_escape_sequence()
{
// arrange
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// Copyright (c) .NET Foundation and contributors. All rights reserved.

namespace Asp.Versioning;

using System.Globalization;
using System.Reflection;
using Xunit.Sdk;
using static System.AttributeTargets;
using static System.Threading.Thread;

/// <summary>
/// Allows a test method to assume that it is running in a specific locale.
/// </summary>
[AttributeUsage( Class | Method, AllowMultiple = false, Inherited = true )]
public sealed class AssumeCultureAttribute : BeforeAfterTestAttribute
{
private CultureInfo originalCulture;
private CultureInfo originalUICulture;

public AssumeCultureAttribute( string name ) => Name = name;

public string Name { get; }

public override void Before( MethodInfo methodUnderTest )
{
originalCulture = CurrentThread.CurrentCulture;
originalUICulture = CurrentThread.CurrentUICulture;

var culture = CultureInfo.CreateSpecificCulture( Name );

CurrentThread.CurrentCulture = culture;
CurrentThread.CurrentUICulture = culture;
}

public override void After( MethodInfo methodUnderTest )
{
CurrentThread.CurrentCulture = originalCulture;
CurrentThread.CurrentUICulture = originalUICulture;
}
}