File tree Expand file tree Collapse file tree
main/java/com/meilisearch/sdk/http
test/java/com/meilisearch/sdk/http Expand file tree Collapse file tree Original file line number Diff line number Diff line change 33import java .text .SimpleDateFormat ;
44import java .util .Arrays ;
55import java .util .Date ;
6+ import java .util .TimeZone ;
67import lombok .Getter ;
78
89@ Getter
@@ -68,11 +69,10 @@ public URLBuilder addParameter(String parameter, int[] value) {
6869 public URLBuilder addParameter (String parameter , Date value ) {
6970 if (value != null ) {
7071 // Changed to utilise RFC 3339 format
71- SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ssXXX" );
7272 addSeparator ();
7373 params .append (parameter );
7474 params .append ("=" );
75- params .append (formatter . format (value ));
75+ params .append (formatDateParameter (value ));
7676 }
7777 return this ;
7878 }
@@ -117,6 +117,12 @@ private String formatArrayParameters(int[] fields) {
117117 return String .join ("," , arr );
118118 }
119119
120+ private String formatDateParameter (Date value ) {
121+ SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ssXXX" );
122+ formatter .setTimeZone (TimeZone .getTimeZone ("UTC" ));
123+ return formatter .format (value );
124+ }
125+
120126 public String getURL () {
121127 return routes .toString () + params .toString ();
122128 }
Original file line number Diff line number Diff line change 33import static org .hamcrest .MatcherAssert .assertThat ;
44import static org .hamcrest .Matchers .equalTo ;
55import static org .hamcrest .Matchers .is ;
6- import static org .junit .jupiter .api .Assertions .*;
6+ import static org .junit .jupiter .api .Assertions .assertDoesNotThrow ;
7+ import static org .junit .jupiter .api .Assertions .assertEquals ;
78
89import java .text .SimpleDateFormat ;
910import java .util .Date ;
10- import java .util .TimeZone ;
11- import org .junit .jupiter .api .BeforeEach ;
1211import org .junit .jupiter .api .Test ;
1312
1413public class URLBuilderTest {
1514
1615 private final URLBuilder classToTest = new URLBuilder ();
1716
18- @ BeforeEach
19- void beforeEach () {
20- TimeZone .setDefault (TimeZone .getTimeZone ("UTC" ));
21- }
22-
2317 @ Test
2418 void addSubroute () {
2519 classToTest .addSubroute ("route" );
@@ -114,6 +108,16 @@ void addParameterStringDate() throws Exception {
114108 "?parameter1=2042-01-30T15:30:00Z¶meter2=2042-01-30T15:30:00Z" );
115109 }
116110
111+ @ Test
112+ void addParameterStringDateWithPositiveTimezoneOffset () throws Exception {
113+ SimpleDateFormat format = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ssXXX" );
114+ Date date = format .parse ("2042-01-30T17:30:00+02:00" );
115+
116+ classToTest .addParameter ("parameter1" , date );
117+
118+ assertEquals ("?parameter1=2042-01-30T15:30:00Z" , classToTest .getParams ().toString ());
119+ }
120+
117121 @ Test
118122 void getURL () {
119123 assertThat (classToTest .getURL (), is (equalTo ("" )));
You can’t perform that action at this time.
0 commit comments