Skip to content

Commit ba64dff

Browse files
committed
Update sorted method to include date in the printed prices
1 parent b13c5e7 commit ba64dff

File tree

1 file changed

+16
-24
lines changed

1 file changed

+16
-24
lines changed

src/test/java/com/example/MainTest.java

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -147,42 +147,34 @@ void displayMinMaxPrices_withValidData() {
147147

148148
@Test
149149
void displaySortedPrices_whenRequested() {
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);
153-
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"}]""";
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"}]""";
163155

164-
ElpriserAPI.setMockResponseForDate(today, mockJsonToday);
165-
ElpriserAPI.setMockResponseForDate(tomorrow, mockJsonTomorrow);
156+
ElpriserAPI.setMockResponse(mockJson);
166157

167158
Main.main(new String[]{"--zone", "SE2", "--date", "2025-09-04", "--sorted"});
168159

169160
String output = bos.toString();
170161

171-
// Expected sorted output (descending by price)
162+
// Expected sorted output (ascending by price)
172163
List<String> expectedOrder = List.of(
173-
"20-21 30,00 öre",
174-
"22-23 20,00 öre",
175-
"01-02 15,00 öre",
176-
"02-03 15,00 öre",
177-
"21-22 10,00 öre",
178-
"23-00 10,00 öre",
179-
"00-01 10,00 öre"
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"
180172
);
181173

182174
// Extract actual lines that match the pattern
183175
List<String> actualSortedLines = Arrays.stream(output.split("\n"))
184176
.map(String::trim) // 1. Trim leading/trailing whitespace
185-
.filter(line -> line.matches("^\\d{2}-\\d{2}\\s+\\d+,\\d{2}\\s+öre$")) // 2. Use a more flexible regex
177+
.filter(line -> line.matches("^\\d{4}-\\d{2}-\\d{2}\\s+\\d{2}-\\d{2}\\s+\\d+,\\d{2}\\s+öre$")) // 2. Use a more flexible regex
186178
.collect(Collectors.toList());
187179

188180
// Assert that actual lines match expected order

0 commit comments

Comments
 (0)