Skip to content

Commit 7bc6e6a

Browse files
committed
Increase ref prog report coverage
Signed-off-by: Hugo SCHINDLER <hugo.schindler@rte-france.com>
1 parent 49863dc commit 7bc6e6a

5 files changed

Lines changed: 35 additions & 15 deletions

File tree

data/refprog/refprog-xml-importer/src/main/java/com/powsybl/openrao/data/refprog/refprogxmlimporter/RefProgImporter.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
import java.util.ArrayList;
2626
import java.util.List;
2727

28-
import static com.powsybl.openrao.commons.logs.OpenRaoLoggerProvider.*;
29-
3028
/**
3129
* RefProg xml file importer
3230
*
@@ -43,7 +41,7 @@ public static ReferenceProgram importRefProg(InputStream inputStream, OffsetDate
4341
public static ReferenceProgram importRefProg(InputStream inputStream, OffsetDateTime dateTime, ReportNode reportNode) {
4442
PublicationDocument document = importXmlDocument(inputStream);
4543
if (!isValidDocumentInterval(document, dateTime, reportNode)) {
46-
Reports.reportRefprogInvalidForDate(reportNode, dateTime);
44+
RefProgReports.reportRefprogInvalidForDate(reportNode, dateTime);
4745
throw new OpenRaoException("RefProg file is not valid for this date " + dateTime);
4846
}
4947
List<ReferenceExchangeData> exchangeDataList = new ArrayList<>();
@@ -55,7 +53,7 @@ public static ReferenceProgram importRefProg(InputStream inputStream, OffsetDate
5553
double flow = getFlow(dateTime, timeSeries, reportNode);
5654
exchangeDataList.add(new ReferenceExchangeData(outArea, inArea, flow));
5755
});
58-
Reports.reportRefprogFileImported(reportNode);
56+
RefProgReports.reportRefprogFileImported(reportNode);
5957
return new ReferenceProgram(exchangeDataList);
6058
}
6159

@@ -89,7 +87,7 @@ private static boolean isValidDocumentInterval(PublicationDocument document, Off
8987
OffsetDateTime endDateTime = OffsetDateTime.parse(interval.substring(sepPosition + 1), DateTimeFormatter.ISO_DATE_TIME);
9088
return !dateTime.isBefore(startDateTime) && dateTime.isBefore(endDateTime);
9189
} else {
92-
Reports.reportRefprogImportFailedUnknownTimeInterval(reportNode);
90+
RefProgReports.reportRefprogImportFailedUnknownTimeInterval(reportNode);
9391
throw new OpenRaoException("Cannot import RefProg file because its publication time interval is unknown");
9492
}
9593
}
@@ -109,7 +107,7 @@ private static double getFlow(OffsetDateTime dateTime, PublicationTimeSeriesType
109107
if (validIntervals.isEmpty()) {
110108
String outArea = timeSeries.getOutArea().getV();
111109
String inArea = timeSeries.getInArea().getV();
112-
Reports.reportRefprogFlowNotFoundForDate(reportNode, outArea, inArea, dateTime);
110+
RefProgReports.reportRefprogFlowNotFoundForDate(reportNode, outArea, inArea, dateTime);
113111
} else {
114112
IntervalType validInterval = validIntervals.get(0);
115113
flow = validInterval.getQty().getV().doubleValue();

data/refprog/refprog-xml-importer/src/main/java/com/powsybl/openrao/data/refprog/refprogxmlimporter/Reports.java renamed to data/refprog/refprog-xml-importer/src/main/java/com/powsybl/openrao/data/refprog/refprogxmlimporter/RefProgReports.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
import static com.powsybl.openrao.commons.logs.OpenRaoLoggerProvider.*;
99

10-
public final class Reports {
11-
private Reports() {
10+
public final class RefProgReports {
11+
private RefProgReports() {
1212
}
1313

1414
public static ReportNode reportRefprogInvalidForDate(ReportNode reportNode, OffsetDateTime dateTime) {
@@ -35,19 +35,19 @@ public static ReportNode reportRefprogImportFailedUnknownTimeInterval(ReportNode
3535
.withMessageTemplate("refprogImportFailedUnknownTimeInterval", "Cannot import RefProg file because its publication time interval is unknown")
3636
.withSeverity(TypedValue.ERROR_SEVERITY)
3737
.add();
38-
BUSINESS_LOGS.error("Cannot import RefProg file because its publication time interval is unknown"); // TODO test this
38+
BUSINESS_LOGS.error("Cannot import RefProg file because its publication time interval is unknown");
3939
return addedNode;
4040
}
4141

4242
public static ReportNode reportRefprogFlowNotFoundForDate(ReportNode reportNode, String outArea, String inArea, OffsetDateTime dateTime) {
4343
ReportNode addedNode = reportNode.newReportNode()
44-
.withMessageTemplate("refprogFlowNotFoundForDate", "Flow value between ${outArea} and ${inArea} is not found for this date ${date}")
44+
.withMessageTemplate("refprogFlowNotFoundForDate", "Flow value between ${outArea} and ${inArea} is not found for this date ${dateTime}")
4545
.withUntypedValue("outArea", outArea)
4646
.withUntypedValue("inArea", inArea)
4747
.withUntypedValue("dateTime", dateTime.toString())
4848
.withSeverity(TypedValue.WARN_SEVERITY)
4949
.add();
50-
BUSINESS_WARNS.warn("Flow value between {} and {} is not found for this date {}", outArea, inArea, dateTime); // TODO test this
50+
BUSINESS_WARNS.warn("Flow value between {} and {} is not found for this date {}", outArea, inArea, dateTime);
5151
return addedNode;
5252
}
5353
}

data/refprog/refprog-xml-importer/src/test/java/com/powsybl/openrao/data/refprog/refprogxmlimporter/RefProgImporterTest.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,16 @@ void testWrongXml() {
5050
}
5151

5252
@Test
53-
void testRefProgWithoutInterval() {
53+
void testRefProgWithoutInterval() throws IOException, URISyntaxException {
5454
InputStream inputStream = getClass().getResourceAsStream("/refProg_noInterval.xml");
55-
assertThrows(OpenRaoException.class, () -> RefProgImporter.importRefProg(inputStream, offsetDateTime));
55+
ReportNode reportNode = buildNewRootNode();
56+
assertThrows(OpenRaoException.class, () -> RefProgImporter.importRefProg(inputStream, offsetDateTime, reportNode));
57+
String expected = Files.readString(Path.of(getClass().getResource("/reports/expectedReportNodeContentRefProgWithoutInterval.txt").toURI()));
58+
try (StringWriter writer = new StringWriter()) {
59+
reportNode.print(writer);
60+
String actual = writer.toString();
61+
assertEquals(expected, actual);
62+
}
5663
}
5764

5865
@Test
@@ -79,9 +86,10 @@ void testImportSimpleFile() {
7986
}
8087

8188
@Test
82-
void testImportSimpleFileWithoutFlowForTimestamp() {
89+
void testImportSimpleFileWithoutFlowForTimestamp() throws IOException, URISyntaxException {
8390
offsetDateTime = OffsetDateTime.of(2020, 1, 6, 19, 00, 0, 0, ZoneOffset.UTC);
84-
ReferenceProgram referenceProgram = RefProgImporter.importRefProg(getClass().getResourceAsStream("/refProg_12nodes.xml"), offsetDateTime);
91+
ReportNode reportNode = buildNewRootNode();
92+
ReferenceProgram referenceProgram = RefProgImporter.importRefProg(getClass().getResourceAsStream("/refProg_12nodes.xml"), offsetDateTime, reportNode);
8593
assertEquals(4, referenceProgram.getReferenceExchangeDataList().size());
8694
assertEquals(4, referenceProgram.getListOfAreas().size());
8795
assertEquals(0, referenceProgram.getExchange("10YBE----------2", "10YFR-RTE------C"), DOUBLE_TOLERANCE);
@@ -92,6 +100,12 @@ void testImportSimpleFileWithoutFlowForTimestamp() {
92100
assertEquals(0, referenceProgram.getGlobalNetPosition("10YFR-RTE------C"), DOUBLE_TOLERANCE);
93101
assertEquals(-0, referenceProgram.getGlobalNetPosition("10YCB-GERMANY--8"), DOUBLE_TOLERANCE);
94102
assertEquals(-0, referenceProgram.getGlobalNetPosition("10YNL----------L"), DOUBLE_TOLERANCE);
103+
String expected = Files.readString(Path.of(getClass().getResource("/reports/expectedReportNodeContentRefProgImportSimpleFileWithoutFlowForTimestamp.txt").toURI()));
104+
try (StringWriter writer = new StringWriter()) {
105+
reportNode.print(writer);
106+
String actual = writer.toString();
107+
assertEquals(expected, actual);
108+
}
95109
}
96110

97111
@Test
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
+ This is a parent report node for report tests
2+
Flow value between 10YBE----------2 and 10YFR-RTE------C is not found for this date 2020-01-06T19:00Z
3+
Flow value between 10YBE----------2 and 10YNL----------L is not found for this date 2020-01-06T19:00Z
4+
Flow value between 10YCB-GERMANY--8 and 10YFR-RTE------C is not found for this date 2020-01-06T19:00Z
5+
Flow value between 10YCB-GERMANY--8 and 10YNL----------L is not found for this date 2020-01-06T19:00Z
6+
RefProg file was imported
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
+ This is a parent report node for report tests
2+
Cannot import RefProg file because its publication time interval is unknown

0 commit comments

Comments
 (0)