@@ -4,15 +4,15 @@ namespace RestSharp.Tests.Parameters;
44
55public class InvariantCultureParameterTests {
66 [ Fact ]
7- public void AddParameter_Double_UsesInvariantCulture ( ) {
7+ public void AddParameter_Double_UsesInvariantCulture_WhenOptIn ( ) {
88 // Save original culture
99 var originalCulture = Thread . CurrentThread . CurrentCulture ;
1010 try {
1111 // Set a culture that uses comma as decimal separator
1212 Thread . CurrentThread . CurrentCulture = new CultureInfo ( "da-DK" ) ;
1313
1414 var request = new RestRequest ( ) ;
15- request . AddParameter ( "value" , 1.234 ) ;
15+ request . AddParameter ( "value" , 1.234 , useInvariantCulture : true ) ;
1616
1717 var parameter = request . Parameters . First ( ) ;
1818 parameter . Value . Should ( ) . Be ( "1.234" ) ;
@@ -23,30 +23,33 @@ public void AddParameter_Double_UsesInvariantCulture() {
2323 }
2424
2525 [ Fact ]
26- public void AddOrUpdateParameter_Double_UsesInvariantCulture ( ) {
26+ public void AddParameter_Double_UsesCurrentCulture_ByDefault ( ) {
27+ // Save original culture
2728 var originalCulture = Thread . CurrentThread . CurrentCulture ;
2829 try {
30+ // Set a culture that uses comma as decimal separator
2931 Thread . CurrentThread . CurrentCulture = new CultureInfo ( "da-DK" ) ;
3032
3133 var request = new RestRequest ( ) ;
32- request . AddOrUpdateParameter ( "value" , 1.234 ) ;
34+ request . AddParameter ( "value" , 1.234 ) ;
3335
3436 var parameter = request . Parameters . First ( ) ;
35- parameter . Value . Should ( ) . Be ( "1.234" ) ;
37+ // Default behavior uses current culture (comma as decimal separator)
38+ parameter . Value . Should ( ) . Be ( "1,234" ) ;
3639 }
3740 finally {
3841 Thread . CurrentThread . CurrentCulture = originalCulture ;
3942 }
4043 }
4144
4245 [ Fact ]
43- public void AddQueryParameter_Double_UsesInvariantCulture ( ) {
46+ public void AddOrUpdateParameter_Double_UsesInvariantCulture_WhenOptIn ( ) {
4447 var originalCulture = Thread . CurrentThread . CurrentCulture ;
4548 try {
4649 Thread . CurrentThread . CurrentCulture = new CultureInfo ( "da-DK" ) ;
4750
4851 var request = new RestRequest ( ) ;
49- request . AddQueryParameter ( "value" , 1.234 ) ;
52+ request . AddOrUpdateParameter ( "value" , 1.234 , useInvariantCulture : true ) ;
5053
5154 var parameter = request . Parameters . First ( ) ;
5255 parameter . Value . Should ( ) . Be ( "1.234" ) ;
@@ -57,13 +60,13 @@ public void AddQueryParameter_Double_UsesInvariantCulture() {
5760 }
5861
5962 [ Fact ]
60- public void AddUrlSegment_Double_UsesInvariantCulture ( ) {
63+ public void AddQueryParameter_Double_UsesInvariantCulture_WhenOptIn ( ) {
6164 var originalCulture = Thread . CurrentThread . CurrentCulture ;
6265 try {
6366 Thread . CurrentThread . CurrentCulture = new CultureInfo ( "da-DK" ) ;
6467
65- var request = new RestRequest ( "{value}" ) ;
66- request . AddUrlSegment ( "value" , 1.234 ) ;
68+ var request = new RestRequest ( ) ;
69+ request . AddQueryParameter ( "value" , 1.234 , useInvariantCulture : true ) ;
6770
6871 var parameter = request . Parameters . First ( ) ;
6972 parameter . Value . Should ( ) . Be ( "1.234" ) ;
@@ -74,13 +77,15 @@ public void AddUrlSegment_Double_UsesInvariantCulture() {
7477 }
7578
7679 [ Fact ]
77- public void CreateParameter_Double_UsesInvariantCulture ( ) {
80+ public void AddUrlSegment_Double_UsesInvariantCulture_WhenOptIn ( ) {
7881 var originalCulture = Thread . CurrentThread . CurrentCulture ;
7982 try {
8083 Thread . CurrentThread . CurrentCulture = new CultureInfo ( "da-DK" ) ;
8184
82- var parameter = Parameter . CreateParameter ( "value" , 1.234 , ParameterType . GetOrPost ) ;
85+ var request = new RestRequest ( "{value}" ) ;
86+ request . AddUrlSegment ( "value" , 1.234 , useInvariantCulture : true ) ;
8387
88+ var parameter = request . Parameters . First ( ) ;
8489 parameter . Value . Should ( ) . Be ( "1.234" ) ;
8590 }
8691 finally {
@@ -89,13 +94,13 @@ public void CreateParameter_Double_UsesInvariantCulture() {
8994 }
9095
9196 [ Fact ]
92- public void AddParameter_Decimal_UsesInvariantCulture ( ) {
97+ public void AddParameter_Decimal_UsesInvariantCulture_WhenOptIn ( ) {
9398 var originalCulture = Thread . CurrentThread . CurrentCulture ;
9499 try {
95100 Thread . CurrentThread . CurrentCulture = new CultureInfo ( "de-DE" ) ;
96101
97102 var request = new RestRequest ( ) ;
98- request . AddParameter ( "value" , 123.456m ) ;
103+ request . AddParameter ( "value" , 123.456m , useInvariantCulture : true ) ;
99104
100105 var parameter = request . Parameters . First ( ) ;
101106 parameter . Value . Should ( ) . Be ( "123.456" ) ;
@@ -106,13 +111,13 @@ public void AddParameter_Decimal_UsesInvariantCulture() {
106111 }
107112
108113 [ Fact ]
109- public void AddParameter_Float_UsesInvariantCulture ( ) {
114+ public void AddParameter_Float_UsesInvariantCulture_WhenOptIn ( ) {
110115 var originalCulture = Thread . CurrentThread . CurrentCulture ;
111116 try {
112117 Thread . CurrentThread . CurrentCulture = new CultureInfo ( "fr-FR" ) ;
113118
114119 var request = new RestRequest ( ) ;
115- request . AddParameter ( "value" , 2.5f ) ;
120+ request . AddParameter ( "value" , 2.5f , useInvariantCulture : true ) ;
116121
117122 var parameter = request . Parameters . First ( ) ;
118123 parameter . Value . Should ( ) . Be ( "2.5" ) ;
@@ -123,14 +128,14 @@ public void AddParameter_Float_UsesInvariantCulture() {
123128 }
124129
125130 [ Fact ]
126- public void AddParameter_DateTime_UsesInvariantCulture ( ) {
131+ public void AddParameter_DateTime_UsesInvariantCulture_WhenOptIn ( ) {
127132 var originalCulture = Thread . CurrentThread . CurrentCulture ;
128133 try {
129134 Thread . CurrentThread . CurrentCulture = new CultureInfo ( "da-DK" ) ;
130135
131136 var dateTime = new DateTime ( 2024 , 12 , 25 , 10 , 30 , 0 , DateTimeKind . Unspecified ) ;
132137 var request = new RestRequest ( ) ;
133- request . AddParameter ( "date" , dateTime ) ;
138+ request . AddParameter ( "date" , dateTime , useInvariantCulture : true ) ;
134139
135140 var parameter = request . Parameters . First ( ) ;
136141 // DateTime.ToString with InvariantCulture uses MM/dd/yyyy format
@@ -142,33 +147,22 @@ public void AddParameter_DateTime_UsesInvariantCulture() {
142147 }
143148
144149 [ Fact ]
145- public void AddParameter_Integer_WorksWithAnyCulture ( ) {
150+ public void AddParameter_Integer_SameValueWithOrWithoutInvariantCulture ( ) {
146151 var originalCulture = Thread . CurrentThread . CurrentCulture ;
147152 try {
148153 Thread . CurrentThread . CurrentCulture = new CultureInfo ( "da-DK" ) ;
149154
150- var request = new RestRequest ( ) ;
151- request . AddParameter ( "value" , 12345 ) ;
155+ var requestWithInvariant = new RestRequest ( ) ;
156+ requestWithInvariant . AddParameter ( "value" , 12345 , useInvariantCulture : true ) ;
152157
153- var parameter = request . Parameters . First ( ) ;
154- parameter . Value . Should ( ) . Be ( "12345" ) ;
155- }
156- finally {
157- Thread . CurrentThread . CurrentCulture = originalCulture ;
158- }
159- }
160-
161- [ Fact ]
162- public void AddObject_WithDoubleProperty_UsesInvariantCulture ( ) {
163- var originalCulture = Thread . CurrentThread . CurrentCulture ;
164- try {
165- Thread . CurrentThread . CurrentCulture = new CultureInfo ( "da-DK" ) ;
158+ var requestWithoutInvariant = new RestRequest ( ) ;
159+ requestWithoutInvariant . AddParameter ( "value" , 12345 ) ;
166160
167- var request = new RestRequest ( ) ;
168- request . AddObject ( new { Amount = 1.234 } ) ;
161+ var parameterWithInvariant = requestWithInvariant . Parameters . First ( ) ;
162+ var parameterWithoutInvariant = requestWithoutInvariant . Parameters . First ( ) ;
169163
170- var parameter = request . Parameters . First ( ) ;
171- parameter . Value . Should ( ) . Be ( "1.234 " ) ;
164+ parameterWithInvariant . Value . Should ( ) . Be ( "12345" ) ;
165+ parameterWithoutInvariant . Value . Should ( ) . Be ( "12345 " ) ;
172166 }
173167 finally {
174168 Thread . CurrentThread . CurrentCulture = originalCulture ;
0 commit comments