@@ -147,28 +147,36 @@ void displayMinMaxPrices_withValidData() {
147147
148148 @ Test
149149 void displaySortedPrices_whenRequested () {
150- String mockJson = """
151- [{"SEK_per_kWh":0.30,"EUR_per_kWh":0.03,"EXR":10.0,"time_start":"2025-09-04T00:00:00+02:00","time_end":"2025-09-04T01:00:00+02:00"},
152- {"SEK_per_kWh":0.10,"EUR_per_kWh":0.01,"EXR":10.0,"time_start":"2025-09-04T01:00:00+02:00","time_end":"2025-09-04T02:00:00+02:00"},
153- {"SEK_per_kWh":0.20,"EUR_per_kWh":0.02,"EXR":10.0,"time_start":"2025-09-04T02:00:00+02:00","time_end":"2025-09-04T03:00:00+02:00"},
154- {"SEK_per_kWh":0.10,"EUR_per_kWh":0.01,"EXR":10.0,"time_start":"2025-09-04T03:00:00+02:00","time_end":"2025-09-04T04:00:00+02:00"}]""" ;
150+ // This test ensures charging window can span days when next day data exists
151+ LocalDate today = LocalDate .of (2025 , 9 , 4 );
152+ LocalDate tomorrow = today .plusDays (1 );
155153
156- ElpriserAPI .setMockResponse (mockJson );
154+ String mockJsonToday = """
155+ [{"SEK_per_kWh":0.30,"EUR_per_kWh":0.03,"EXR":10.0,"time_start":"2025-09-04T20:00:00+02:00","time_end":"2025-09-04T21:00:00+02:00"},
156+ {"SEK_per_kWh":0.10,"EUR_per_kWh":0.01,"EXR":10.0,"time_start":"2025-09-04T21:00:00+02:00","time_end":"2025-09-04T22:00:00+02:00"},
157+ {"SEK_per_kWh":0.20,"EUR_per_kWh":0.02,"EXR":10.0,"time_start":"2025-09-04T22:00:00+02:00","time_end":"2025-09-04T23:00:00+02:00"},
158+ {"SEK_per_kWh":0.10,"EUR_per_kWh":0.01,"EXR":10.0,"time_start":"2025-09-04T23:00:00+02:00","time_end":"2025-09-04T00:00:00+02:00"}]""" ;
159+ String mockJsonTomorrow = """
160+ [{"SEK_per_kWh":0.10,"EUR_per_kWh":0.01,"EXR":10.0,"time_start":"2025-09-05T00:00:00+02:00","time_end":"2025-09-05T01:00:00+02:00"},
161+ {"SEK_per_kWh":0.15,"EUR_per_kWh":0.015,"EXR":10.0,"time_start":"2025-09-05T01:00:00+02:00","time_end":"2025-09-05T02:00:00+02:00"},
162+ {"SEK_per_kWh":0.15,"EUR_per_kWh":0.015,"EXR":10.0,"time_start":"2025-09-05T02:00:00+02:00","time_end":"2025-09-05T03:00:00+02:00"}]""" ;
163+
164+ ElpriserAPI .setMockResponseForDate (today , mockJsonToday );
165+ ElpriserAPI .setMockResponseForDate (tomorrow , mockJsonTomorrow );
157166
158167 Main .main (new String []{"--zone" , "SE2" , "--date" , "2025-09-04" , "--sorted" });
159168
160169 String output = bos .toString ();
161170
162171 // Expected sorted output (ascending by price)
163172 List <String > expectedOrder = List .of (
164- "2025-09-04 00-01 30,00 öre" ,
165- "2025-09-04 00-01 30,00 öre" ,
166- "2025-09-04 02-03 20,00 öre" ,
167- "2025-09-04 02-03 20,00 öre" ,
168- "2025-09-04 01-02 10,00 öre" ,
169- "2025-09-04 03-04 10,00 öre" ,
170- "2025-09-04 01-02 10,00 öre" ,
171- "2025-09-04 03-04 10,00 öre"
173+ "2025-09-04 20-21 30,00 öre" ,
174+ "2025-09-04 22-23 20,00 öre" ,
175+ "2025-09-05 01-02 15,00 öre" ,
176+ "2025-09-05 02-03 15,00 öre" ,
177+ "2025-09-04 21-22 10,00 öre" ,
178+ "2025-09-04 23-00 10,00 öre" ,
179+ "2025-09-05 00-01 10,00 öre"
172180 );
173181
174182 // Extract actual lines that match the pattern
0 commit comments