Browse Source

Run certain tests in invariant culture.

Fixes #718.
Steven Kirk 9 years ago
parent
commit
dd29966f20

+ 1 - 1
tests/Avalonia.Markup.UnitTests/Data/BindingExpressionTests.cs

@@ -14,7 +14,7 @@ using Xunit;
 
 namespace Avalonia.Markup.UnitTests.Data
 {
-    public class BindingExpressionTests
+    public class BindingExpressionTests : IClassFixture<InvariantCultureFixture>
     {
         [Fact]
         public async void Should_Get_Simple_Property_Value()

+ 1 - 1
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_DataValidation.cs

@@ -13,7 +13,7 @@ using Xunit;
 
 namespace Avalonia.Markup.UnitTests.Data
 {
-    public class ExpressionObserverTests_DataValidation
+    public class ExpressionObserverTests_DataValidation : IClassFixture<InvariantCultureFixture>
     {
         [Fact]
         public void Doesnt_Send_DataValidationError_When_DataValidatation_Not_Enabled()

+ 2 - 1
tests/Avalonia.Markup.UnitTests/Data/Plugins/DataAnnotationsValidationPluginTests.cs

@@ -6,11 +6,12 @@ using System.Collections.Generic;
 using System.ComponentModel.DataAnnotations;
 using Avalonia.Data;
 using Avalonia.Markup.Data.Plugins;
+using Avalonia.UnitTests;
 using Xunit;
 
 namespace Avalonia.Markup.UnitTests.Data.Plugins
 {
-    public class DataAnnotationsValidationPluginTests
+    public class DataAnnotationsValidationPluginTests : IClassFixture<InvariantCultureFixture>
     {
         [Fact]
         public void Should_Match_Property_With_ValidatorAttribute()

+ 1 - 0
tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj

@@ -54,6 +54,7 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="InvariantCultureFixture.cs" />
     <Compile Include="NotifyingBase.cs" />
     <Compile Include="TestLogSink.cs" />
     <Compile Include="TestTemplatedRoot.cs" />

+ 33 - 0
tests/Avalonia.UnitTests/InvariantCultureFixture.cs

@@ -0,0 +1,33 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+using System.Globalization;
+using System.Threading;
+
+namespace Avalonia.UnitTests
+{
+    /// <summary>
+    /// Runs tests in the invariant culture.
+    /// </summary>
+    /// <remarks>
+    /// Some tests check exception messages, and those from the .NET framework will be translated.
+    /// Use this fixture to set the current culture to the invariant culture.
+    /// </remarks>
+    public class InvariantCultureFixture : IDisposable
+    {
+        private CultureInfo _restore;
+
+        public InvariantCultureFixture()
+        {
+            _restore = Thread.CurrentThread.CurrentUICulture;
+            Thread.CurrentThread.CurrentUICulture = 
+                Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
+        }
+
+        public void Dispose()
+        {
+            Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture = _restore;
+        }
+    }
+}