Skip to content
This repository was archived by the owner on May 28, 2018. It is now read-only.

Commit d0036b6

Browse files
author
Michal Gajdos
committed
JERSEY-2781: Locale-dependent test fails in org.glassfish.jersey.message.internal.QualityTest.testEnhanceWithQualityParameter
- Fixed string formatting in Quality.qualityValueToString - Updated test Change-Id: I34b1f2491294db53c1213b6387d91c52592c9f97 Signed-off-by: Michal Gajdos <[email protected]>
1 parent 9767a22 commit d0036b6

File tree

2 files changed

+30
-4
lines changed

2 files changed

+30
-4
lines changed

core-common/src/main/java/org/glassfish/jersey/message/internal/Quality.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import java.util.Collections;
4343
import java.util.Comparator;
4444
import java.util.HashMap;
45+
import java.util.Locale;
4546
import java.util.Map;
4647

4748
/**
@@ -162,7 +163,7 @@ private static int compare(final int x, final int y) {
162163
}
163164

164165
private static String qualityValueToString(final float quality) {
165-
final StringBuilder qsb = new StringBuilder(String.format("%3.3f", (quality / 1000)));
166+
final StringBuilder qsb = new StringBuilder(String.format(Locale.US, "%3.3f", (quality / 1000)));
166167

167168
int lastIndex;
168169
while ((lastIndex = qsb.length() - 1) > 2 && qsb.charAt(lastIndex) == '0') {

core-common/src/test/java/org/glassfish/jersey/message/internal/QualityTest.java

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,16 @@
3939
*/
4040
package org.glassfish.jersey.message.internal;
4141

42+
import java.util.Arrays;
43+
import java.util.Locale;
4244
import java.util.Map;
4345

44-
import static org.glassfish.jersey.message.internal.MediaTypesTest.asMap;
45-
46+
import org.junit.After;
47+
import org.junit.Before;
4648
import org.junit.Test;
49+
import org.junit.runner.RunWith;
50+
import org.junit.runners.Parameterized;
51+
import static org.glassfish.jersey.message.internal.MediaTypesTest.asMap;
4752
import static org.hamcrest.CoreMatchers.equalTo;
4853
import static org.junit.Assert.assertThat;
4954

@@ -52,8 +57,29 @@
5257
*
5358
* @author Marek Potociar (marek.potociar at oracle.com)
5459
*/
60+
@RunWith(Parameterized.class)
5561
public class QualityTest {
5662

63+
private static final Locale ORIGINAL_LOCALE = Locale.getDefault();
64+
65+
@Parameterized.Parameters(name = "{0}")
66+
public static Iterable<Object[]> data() {
67+
return Arrays.asList(new Object[][]{{Locale.US}, {Locale.GERMANY}});
68+
}
69+
70+
@Parameterized.Parameter(0)
71+
public Locale locale;
72+
73+
@Before
74+
public void setUp() throws Exception {
75+
Locale.setDefault(locale);
76+
}
77+
78+
@After
79+
public void tearDown() throws Exception {
80+
Locale.setDefault(ORIGINAL_LOCALE);
81+
}
82+
5783
/**
5884
* Test enhancing HTT header parameter map with a quality parameter.
5985
*/
@@ -73,7 +99,6 @@ public void testEnhanceWithQualityParameter() {
7399
result = Quality.enhanceWithQualityParameter(null, "q", 222);
74100
assertThat(result, equalTo(asMap("q=0.222")));
75101

76-
77102
Map<String, String> parameters;
78103

79104
parameters = asMap("a=b");

0 commit comments

Comments
 (0)