Author: vladimirsitnikov Date: Mon May 27 09:43:59 2019 New Revision: 1860116
URL: http://svn.apache.org/viewvc?rev=1860116&view=rev Log: Enforce Locale.US for tests that verify numeric processing (e.g. 0.42) Modified: jmeter/trunk/test/src/org/apache/jmeter/assertions/TestJSONPathAssertion.java jmeter/trunk/test/src/org/apache/jmeter/config/TestRandomVariableConfig.java jmeter/trunk/test/src/org/apache/jmeter/extractor/TestXPathExtractor.java Modified: jmeter/trunk/test/src/org/apache/jmeter/assertions/TestJSONPathAssertion.java URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/assertions/TestJSONPathAssertion.java?rev=1860116&r1=1860115&r2=1860116&view=diff ============================================================================== --- jmeter/trunk/test/src/org/apache/jmeter/assertions/TestJSONPathAssertion.java (original) +++ jmeter/trunk/test/src/org/apache/jmeter/assertions/TestJSONPathAssertion.java Mon May 27 09:43:59 2019 @@ -19,6 +19,8 @@ package org.apache.jmeter.assertions; import static org.junit.Assert.assertEquals; +import java.util.Locale; + import org.apache.jmeter.samplers.SampleResult; import org.junit.Test; @@ -367,19 +369,26 @@ public class TestJSONPathAssertion { @Test public void testGetResultFloat() { - SampleResult samplerResult = new SampleResult(); - - samplerResult.setResponseData("{\"myval\": [{\"test\":0.0000123456789}]}".getBytes()); - - JSONPathAssertion instance = new JSONPathAssertion(); - instance.setJsonPath("$.myval[*].test"); - instance.setJsonValidationBool(true); - instance.setIsRegex(false); - instance.setExpectedValue("0.0000123456789"); - - AssertionResult expResult = new AssertionResult(""); - AssertionResult result = instance.getResult(samplerResult); - assertEquals(expResult.getName(), result.getName()); - assertEquals(false, result.isFailure()); + Locale prevLocale = Locale.getDefault(); + try { + // 0.0000123456789 is locale-dependent + Locale.setDefault(Locale.US); + SampleResult samplerResult = new SampleResult(); + + samplerResult.setResponseData("{\"myval\": [{\"test\":0.0000123456789}]}".getBytes()); + + JSONPathAssertion instance = new JSONPathAssertion(); + instance.setJsonPath("$.myval[*].test"); + instance.setJsonValidationBool(true); + instance.setIsRegex(false); + instance.setExpectedValue("0.0000123456789"); + + AssertionResult expResult = new AssertionResult(""); + AssertionResult result = instance.getResult(samplerResult); + assertEquals(expResult.getName(), result.getName()); + assertEquals(false, result.isFailure()); + } finally { + Locale.setDefault(prevLocale); + } } } Modified: jmeter/trunk/test/src/org/apache/jmeter/config/TestRandomVariableConfig.java URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/config/TestRandomVariableConfig.java?rev=1860116&r1=1860115&r2=1860116&view=diff ============================================================================== --- jmeter/trunk/test/src/org/apache/jmeter/config/TestRandomVariableConfig.java (original) +++ jmeter/trunk/test/src/org/apache/jmeter/config/TestRandomVariableConfig.java Mon May 27 09:43:59 2019 @@ -22,6 +22,8 @@ package org.apache.jmeter.config; +import java.util.Locale; + import org.apache.jmeter.junit.JMeterTestCase; import org.apache.jmeter.threads.JMeterContext; import org.apache.jmeter.threads.JMeterContextService; @@ -65,14 +67,20 @@ public class TestRandomVariableConfig ex @Test public void testRandomWithFormat() throws Exception { - config.setMinimumValue(MAX_VALUE); - config.setMaximumValue(MAX_VALUE); - config.setOutputFormat("000.00"); - config.iterationStart(null); - String value = threadVars.get(RANDOM_VAR_NAME); - Assert.assertNotNull(threadVars.get(RANDOM_VAR_NAME)); - Assert.assertEquals("010.00", value); - + // 010.00 requires explicit locale + Locale prevLocale = Locale.getDefault(); + try { + Locale.setDefault(Locale.US); + config.setMinimumValue(MAX_VALUE); + config.setMaximumValue(MAX_VALUE); + config.setOutputFormat("000.00"); + config.iterationStart(null); + String value = threadVars.get(RANDOM_VAR_NAME); + Assert.assertNotNull(threadVars.get(RANDOM_VAR_NAME)); + Assert.assertEquals("010.00", value); + } finally { + Locale.setDefault(prevLocale); + } } @Test Modified: jmeter/trunk/test/src/org/apache/jmeter/extractor/TestXPathExtractor.java URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/extractor/TestXPathExtractor.java?rev=1860116&r1=1860115&r2=1860116&view=diff ============================================================================== --- jmeter/trunk/test/src/org/apache/jmeter/extractor/TestXPathExtractor.java (original) +++ jmeter/trunk/test/src/org/apache/jmeter/extractor/TestXPathExtractor.java Mon May 27 09:43:59 2019 @@ -23,6 +23,7 @@ import static org.junit.Assert.assertEqu import static org.junit.Assert.assertNull; import java.io.UnsupportedEncodingException; +import java.util.Locale; import org.apache.commons.lang3.StringUtils; import org.apache.jmeter.samplers.SampleResult; @@ -273,14 +274,21 @@ public class TestXPathExtractor { @Test public void testInvalidXpath() throws Exception { - extractor.setXPathQuery("<"); - extractor.process(); - assertEquals(1, result.getAssertionResults().length); - assertEquals(extractor.getName(), result.getAssertionResults()[0].getName()); - org.junit.Assert.assertTrue(result.getAssertionResults()[0]. - getFailureMessage().contains("A location path was expected, but the following token was encountered")); - assertEquals("Default", vars.get(VAL_NAME)); - assertEquals("0", vars.get(VAL_NAME_NR)); + Locale prevLocale = Locale.getDefault(); + try { + // The test fails in other locales for some reason + Locale.setDefault(Locale.US); + extractor.setXPathQuery("<"); + extractor.process(); + assertEquals(1, result.getAssertionResults().length); + assertEquals(extractor.getName(), result.getAssertionResults()[0].getName()); + Assert.assertTrue(result.getAssertionResults()[0]. + getFailureMessage().contains("A location path was expected, but the following token was encountered")); + assertEquals("Default", vars.get(VAL_NAME)); + assertEquals("0", vars.get(VAL_NAME_NR)); + } finally { + Locale.setDefault(prevLocale); + } } @Test
