Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Maps.Tests/Domain/FeatureTest.cs =================================================================== diff -u -r4070 -r4291 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Maps.Tests/Domain/FeatureTest.cs (.../FeatureTest.cs) (revision 4070) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Maps.Tests/Domain/FeatureTest.cs (.../FeatureTest.cs) (revision 4291) @@ -20,75 +20,86 @@ // All rights reserved. using System; +using System.Globalization; +using System.Threading; using NetTopologySuite.Geometries; using NUnit.Framework; -namespace Deltares.Maps.Tests.Domain +namespace Deltares.Maps.Tests.Domain; + +[TestFixture] +public class FeatureTest { - [TestFixture] - public class FeatureTest + private Feature feature; + + [Test] + public void FeatureCreation_NormalScenario_CreatesFeatureInstance() { - private Feature feature; + const string geometryWkt = "POINT (0.1 0.2)"; + feature = Feature.Create(geometryWkt); + Assert.IsNotNull(feature); + Assert.AreEqual(geometryWkt, feature.WktFormat); - [Test] - public void FeatureCreation_NormalScenario_CreatesFeatureInstance() - { - const string geometryWkt = "POINT (0.1 0.2)"; - feature = Feature.Create(geometryWkt); - Assert.IsNotNull(feature); - Assert.AreEqual(geometryWkt, feature.WktFormat); + feature = Feature.Create(geometryWkt); + Assert.IsNotNull(feature); + Assert.AreEqual(geometryWkt, feature.WktFormat); + Assert.IsInstanceOf(typeof(Point), feature.Geometry); + } - feature = Feature.Create(geometryWkt); - Assert.IsNotNull(feature); - Assert.AreEqual(geometryWkt, feature.WktFormat); - Assert.IsInstanceOf(typeof(Point), feature.Geometry); - } + [Test] + public void FeatureCreation_DutchCultureWktStringFormat_Throws() + { + var cultureInfo = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name); + string oldDecimalSeparator = cultureInfo.NumberFormat.NumberDecimalSeparator; - [Test] - // NB This test fails when you change the decimal separator to a point in Dutch regional settings on your computer - public void FeatureCreation_DutchCultureWktStringFormat_Throws() + try { - Action test = - () => - { - var geometryWkt = $"MULTIPOINT ({0.1} {0.2},{0.3} {0.4})"; - feature = Feature.Create(geometryWkt); - }; + cultureInfo.NumberFormat.NumberDecimalSeparator = ","; + Thread.CurrentThread.CurrentCulture = cultureInfo; - Assert.That(() => CultureHelper.InvokeWithDutchCulture(test), + Assert.That(() => + { + var geometryWkt = $"MULTIPOINT ({0.1} {0.2},{0.3} {0.4})"; + feature = Feature.Create(geometryWkt); + }, Throws.InstanceOf().With.Message.Contains("There was an error parsing the WKT geometry string, maybe due to an incorrect culture format conversion")); } - - [Test] - public void FeatureCreation_DutchCulture_FeatureIsCreatedWithoutExceptions() + finally { - Action test = - () => - { - const string geometryWkt = "MULTIPOINT (0.0 0.1,0.2 0.3)"; - feature = Feature.Create(geometryWkt); - Assert.IsNotNull(feature); - Assert.AreEqual(geometryWkt, feature.WktFormat); - Assert.IsInstanceOf(typeof(MultiPoint), feature.Geometry); - }; - - CultureHelper.InvokeWithDutchCulture(test); + cultureInfo.NumberFormat.NumberDecimalSeparator = oldDecimalSeparator; + Thread.CurrentThread.CurrentCulture = cultureInfo; } + } - #region Setup + [Test] + public void FeatureCreation_DutchCulture_FeatureIsCreatedWithoutExceptions() + { + Action test = + () => + { + const string geometryWkt = "MULTIPOINT (0.0 0.1,0.2 0.3)"; + feature = Feature.Create(geometryWkt); + Assert.IsNotNull(feature); + Assert.AreEqual(geometryWkt, feature.WktFormat); + Assert.IsInstanceOf(typeof(MultiPoint), feature.Geometry); + }; - [SetUp] - public void FixtureSetup() {} + CultureHelper.InvokeWithDutchCulture(test); + } - [TearDown] - public void FixtureTearDown() {} + #region Setup - [SetUp] - public void TestSetup() {} + [SetUp] + public void FixtureSetup() {} - [TearDown] - public void TestTearDown() {} + [TearDown] + public void FixtureTearDown() {} - #endregion - } + [SetUp] + public void TestSetup() {} + + [TearDown] + public void TestTearDown() {} + + #endregion } \ No newline at end of file