2020import ch .qos .logback .access .spi .AccessContext ;
2121import ch .qos .logback .access .spi .AccessEvent ;
2222import ch .qos .logback .access .spi .IAccessEvent ;
23+ import ch .qos .logback .core .CoreConstants ;
24+ import ch .qos .logback .core .model .TimestampModel ;
2325import jakarta .servlet .http .Cookie ;
26+ import org .assertj .core .util .Lists ;
2427import org .junit .jupiter .api .AfterEach ;
2528import org .junit .jupiter .api .BeforeEach ;
2629import org .junit .jupiter .api .Test ;
2730
31+ import java .time .Instant ;
2832import java .util .ArrayList ;
2933import java .util .List ;
34+ import java .util .Locale ;
3035
3136import static org .junit .jupiter .api .Assertions .assertEquals ;
3237
3338public class ConverterTest {
3439
35- IAccessEvent event ;
40+ AccessEvent event ;
3641 DummyRequest request = new DummyRequest ();
3742 DummyResponse response = new DummyResponse ();
3843 AccessContext accessContext = new AccessContext ();
3944
45+ Locale defaultLocale = Locale .getDefault ();
46+
4047 @ BeforeEach
4148 public void setUp () throws Exception {
4249 event = createEvent ();
@@ -47,6 +54,7 @@ public void tearDown() throws Exception {
4754 event = null ;
4855 request = null ;
4956 response = null ;
57+ Locale .setDefault (defaultLocale );
5058 }
5159
5260 @ Test
@@ -65,6 +73,29 @@ public void testDateConverter() {
6573 assertEquals (converter .cachingDateFormatter .format (event .getTimeStamp ()), result );
6674 }
6775
76+ @ Test
77+ public void testDateConverter_AU_locale () {
78+ Locale auLocale = Locale .forLanguageTag ("en-AU" );
79+ Locale .setDefault (auLocale );
80+
81+ DateConverter converter = new DateConverter ();
82+ List <String > optionsList = Lists .list (CoreConstants .CLF_DATE_PATTERN , "Australia/Sydney" );
83+
84+ converter .setOptionList (optionsList );
85+ converter .start ();
86+ Instant instant = Instant .parse ("2022-10-21T10:30:20.800Z" );
87+
88+ System .out .println (instant .toEpochMilli ());
89+
90+ event .setTimeStamp (instant .toEpochMilli ());
91+ String result = converter .convert (event );
92+ assertEquals ("21/Oct/2022:21:30:20 +1100" , result );
93+ System .out .println (result );
94+
95+ assertEquals (converter .cachingDateFormatter .format (event .getTimeStamp ()), result );
96+ }
97+
98+
6899 public void testLineLocalPortConverter () {
69100 LocalPortConverter converter = new LocalPortConverter ();
70101 converter .start ();
@@ -190,7 +221,7 @@ public void testStatusCodeConverter() {
190221 assertEquals (Integer .toString (event .getServerAdapter ().getStatusCode ()), result );
191222 }
192223
193- private IAccessEvent createEvent () {
224+ private AccessEvent createEvent () {
194225 DummyServerAdapter dummyAdapter = new DummyServerAdapter (request , response );
195226 return new AccessEvent (accessContext , request , response , dummyAdapter );
196227 }
0 commit comments