Skip to content

Commit fef0dbd

Browse files
authored
Add report for non-existent section ID (#260)
* Add report for non-existent section ID --------- Signed-off-by: TOURI ANIS <[email protected]>
1 parent fb236d4 commit fef0dbd

File tree

3 files changed

+53
-4
lines changed

3 files changed

+53
-4
lines changed

src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public final class ModificationUtils {
3939

4040
public static final String DISCONNECTOR = "disconnector_";
4141
public static final String BREAKER = "breaker_";
42+
public static final String BUS_BAR_SECTION_ID = "busbarSectionId";
4243
public static final String NO_VALUE = "No value";
4344

4445
private ModificationUtils() {
@@ -235,6 +236,30 @@ public void controlVoltageLevelCreation(VoltageLevelCreationInfos voltageLevelCr
235236
}
236237
}
237238

239+
private boolean checkBbs(Network network, String busbarSectionId1, String busbarSectionId2, Reporter subReporter) {
240+
Identifiable<?> busOrBbs1 = network.getIdentifiable(busbarSectionId1);
241+
Identifiable<?> busOrBbs2 = network.getIdentifiable(busbarSectionId2);
242+
if (busOrBbs1 == null) {
243+
subReporter.report(Report.builder()
244+
.withKey("notFoundBurOrBusbarSection")
245+
.withDefaultMessage("Bus or busbar section ID ${busbarSectionId} not found. Coupler was not created.")
246+
.withValue(BUS_BAR_SECTION_ID, busbarSectionId1)
247+
.withSeverity(TypedValue.ERROR_SEVERITY)
248+
.build());
249+
return false;
250+
}
251+
if (busOrBbs2 == null) {
252+
subReporter.report(Report.builder()
253+
.withKey("notFoundBurOrBusbarSection")
254+
.withDefaultMessage("Bus or busbar section ID ${busbarSectionId} not found. Coupler was not created.")
255+
.withValue(BUS_BAR_SECTION_ID, busbarSectionId2)
256+
.withSeverity(TypedValue.ERROR_SEVERITY)
257+
.build());
258+
return false;
259+
}
260+
return true;
261+
}
262+
238263
void createVoltageLevel(VoltageLevelCreationInfos voltageLevelCreationInfos,
239264
Reporter subReporter, Network network) {
240265
String substationId = voltageLevelCreationInfos.getSubstationId();
@@ -280,6 +305,9 @@ void createVoltageLevel(VoltageLevelCreationInfos voltageLevelCreationInfos,
280305
.build().apply(network);
281306

282307
voltageLevelCreationInfos.getCouplingDevices().forEach(couplingDevice -> {
308+
if (!checkBbs(network, couplingDevice.getBusbarSectionId1(), couplingDevice.getBusbarSectionId2(), subReporter)) {
309+
return;
310+
}
283311
CreateCouplingDeviceBuilder couplingDeviceBuilder = new CreateCouplingDeviceBuilder();
284312
couplingDeviceBuilder.withBusOrBusbarSectionId1(couplingDevice.getBusbarSectionId1())
285313
.withBusOrBusbarSectionId2(couplingDevice.getBusbarSectionId2())

src/test/java/org/gridsuite/modification/server/modifications/VoltageLevelCreationTest.java

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ protected ModificationInfos buildModificationUpdate() {
5858
.busbarCount(2)
5959
.sectionCount(2)
6060
.switchKinds(Arrays.asList(SwitchKind.BREAKER))
61-
.couplingDevices(Arrays.asList(CouplingDeviceInfos.builder().busbarSectionId1("bbs.nw").busbarSectionId2("bbs.ne").build()))
61+
.couplingDevices(Arrays.asList(CouplingDeviceInfos.builder().busbarSectionId1("1A").busbarSectionId2("1.A").build()))
6262
.build();
6363
}
6464

@@ -102,7 +102,8 @@ public void testCreateWithErrors() {
102102
vli.getErrorType().name(), reportService);
103103

104104
vli = (VoltageLevelCreationInfos) buildModification();
105-
vli.getCouplingDevices().get(0).setBusbarSectionId1("bbs.ne");
105+
vli.getCouplingDevices().get(0).setBusbarSectionId1("1.1");
106+
vli.getCouplingDevices().get(0).setBusbarSectionId2("1.1");
106107
String vliJsonObject = mapper.writeValueAsString(vli);
107108
mockMvc.perform(post(getNetworkModificationUri()).content(vliJsonObject).contentType(MediaType.APPLICATION_JSON))
108109
.andExpect(status().isOk());
@@ -136,6 +137,27 @@ public void testCreateWithErrors() {
136137
vli.getErrorType().name(), reportService);
137138
}
138139

140+
@SneakyThrows
141+
@Test
142+
public void testCreateWithBbsNotExist() {
143+
VoltageLevelCreationInfos vli = (VoltageLevelCreationInfos) buildModification();
144+
vli.setEquipmentId("vl_1");
145+
vli.getCouplingDevices().get(0).setBusbarSectionId1("1.1");
146+
vli.getCouplingDevices().get(0).setBusbarSectionId2("bbs");
147+
String vliJsonObject = mapper.writeValueAsString(vli);
148+
mockMvc.perform(post(getNetworkModificationUri()).content(vliJsonObject).contentType(MediaType.APPLICATION_JSON))
149+
.andExpect(status().isOk());
150+
assertNotNull(getNetwork().getVoltageLevel("vl_1"));
151+
152+
vli.setEquipmentId("vl_2");
153+
vli.getCouplingDevices().get(0).setBusbarSectionId1("bbs");
154+
vli.getCouplingDevices().get(0).setBusbarSectionId2("1.1");
155+
String vliJsonObject2 = mapper.writeValueAsString(vli);
156+
mockMvc.perform(post(getNetworkModificationUri()).content(vliJsonObject2).contentType(MediaType.APPLICATION_JSON))
157+
.andExpect(status().isOk());
158+
assertNotNull(getNetwork().getVoltageLevel("vl_2"));
159+
}
160+
139161
@SneakyThrows
140162
@Test
141163
public void testCreateWithShortCircuitExtension() {

src/test/java/org/gridsuite/modification/server/utils/ModificationCreation.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ public static VoltageLevelCreationInfos getCreationVoltageLevel(String substatio
3434
.busbarCount(2)
3535
.sectionCount(2)
3636
.switchKinds(Arrays.asList(SwitchKind.BREAKER))
37-
.couplingDevices(Arrays.asList(CouplingDeviceInfos.builder().busbarSectionId1("bbs.nw").busbarSectionId2("bbs.ne").build()))
38-
.build();
37+
.couplingDevices(Arrays.asList(CouplingDeviceInfos.builder().busbarSectionId1("1A").busbarSectionId2("1B").build())).build();
3938
}
4039

4140
public static GeneratorCreationInfos getCreationGenerator(String vlId, String generatorId, String generatorName, String busOrBusbarSectionId,

0 commit comments

Comments
 (0)