Skip to content

Commit dc0e048

Browse files
Merge pull request #3782 from powsybl/feat/add_tck_tests_generator_entsoe_busbar_position
Cleanup started in #3524: add TCK abstract tests for GeneratorEntsoeCategory and BusbarSectionPosition
2 parents 3d4a9be + 0fea115 commit dc0e048

File tree

4 files changed

+132
-95
lines changed

4 files changed

+132
-95
lines changed

iidm/iidm-impl/src/test/java/com/powsybl/iidm/network/impl/tck/extensions/BusbarSectionPositionImplTest.java

Lines changed: 3 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -8,53 +8,10 @@
88

99
package com.powsybl.iidm.network.impl.tck.extensions;
1010

11-
import com.powsybl.iidm.network.*;
12-
import com.powsybl.iidm.network.extensions.BusbarSectionPosition;
13-
import com.powsybl.iidm.network.extensions.BusbarSectionPositionAdder;
14-
import org.junit.jupiter.api.Test;
15-
16-
import static org.junit.jupiter.api.Assertions.assertEquals;
17-
import static org.junit.jupiter.api.Assertions.assertThrows;
11+
import com.powsybl.iidm.network.tck.extensions.AbstractBusbarSectionPositionTest;
1812

1913
/**
2014
* @author Nicolas Rol {@literal <nicolas.rol at rte-france.com>}
15+
* @author Samir Romdhani {@literal <samir.romdhani at rte-france.com>}
2116
*/
22-
class BusbarSectionPositionImplTest {
23-
24-
@Test
25-
void testExtension() {
26-
IllegalArgumentException e0;
27-
Network network = Network.create("test", "test");
28-
Substation s = network.newSubstation()
29-
.setId("S")
30-
.setCountry(Country.FR)
31-
.add();
32-
VoltageLevel vl = s.newVoltageLevel()
33-
.setId("VL")
34-
.setNominalV(400.0)
35-
.setTopologyKind(TopologyKind.NODE_BREAKER)
36-
.add();
37-
BusbarSection bbs = vl.getNodeBreakerView().newBusbarSection()
38-
.setId("BBS")
39-
.setNode(0)
40-
.add();
41-
42-
BusbarSectionPosition busbarSectionPosition = bbs.newExtension(BusbarSectionPositionAdder.class)
43-
.withBusbarIndex(1)
44-
.withSectionIndex(2)
45-
.add();
46-
assertEquals(1, busbarSectionPosition.getBusbarIndex());
47-
assertEquals(2, busbarSectionPosition.getSectionIndex());
48-
49-
// Wrong Busbar index
50-
e0 = assertThrows(IllegalArgumentException.class, () -> busbarSectionPosition.setBusbarIndex(-1));
51-
assertEquals("Busbar index (-1) has to be greater or equals to zero for busbar section BBS",
52-
e0.getMessage());
53-
54-
// RIght busbar index
55-
busbarSectionPosition.setBusbarIndex(10);
56-
busbarSectionPosition.setSectionIndex(5);
57-
assertEquals(10, busbarSectionPosition.getBusbarIndex());
58-
assertEquals(5, busbarSectionPosition.getSectionIndex());
59-
}
60-
}
17+
class BusbarSectionPositionImplTest extends AbstractBusbarSectionPositionTest { }

iidm/iidm-impl/src/test/java/com/powsybl/iidm/network/impl/tck/extensions/GeneratorEntsoeCategoryTest.java

Lines changed: 3 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -8,56 +8,10 @@
88

99
package com.powsybl.iidm.network.impl.tck.extensions;
1010

11-
import com.powsybl.iidm.network.*;
12-
import com.powsybl.iidm.network.extensions.GeneratorEntsoeCategory;
13-
import com.powsybl.iidm.network.extensions.GeneratorEntsoeCategoryAdder;
14-
import org.junit.jupiter.api.Test;
15-
16-
import static org.junit.jupiter.api.Assertions.assertEquals;
17-
import static org.junit.jupiter.api.Assertions.assertThrows;
11+
import com.powsybl.iidm.network.tck.extensions.AbstractGeneratorEntsoeCategoryTest;
1812

1913
/**
2014
* @author Nicolas Rol {@literal <nicolas.rol at rte-france.com>}
15+
* @author Samir Romdhani {@literal <samir.romdhani at rte-france.com>}
2116
*/
22-
class GeneratorEntsoeCategoryTest {
23-
24-
@Test
25-
void testExtension() {
26-
Network network = Network.create("test", "test");
27-
Substation s = network.newSubstation()
28-
.setId("S")
29-
.setCountry(Country.FR)
30-
.add();
31-
VoltageLevel vl = s.newVoltageLevel()
32-
.setId("VL")
33-
.setNominalV(400)
34-
.setTopologyKind(TopologyKind.BUS_BREAKER)
35-
.add();
36-
vl.getBusBreakerView().newBus()
37-
.setId("B")
38-
.add();
39-
Generator generator = vl.newGenerator()
40-
.setId("G1")
41-
.setBus("B")
42-
.setMaxP(100)
43-
.setMinP(50)
44-
.setTargetP(100)
45-
.setTargetV(400)
46-
.setVoltageRegulatorOn(true)
47-
.add();
48-
49-
GeneratorEntsoeCategory generatorEntsoeCategory = generator.newExtension(GeneratorEntsoeCategoryAdder.class)
50-
.withCode(10)
51-
.add();
52-
assertEquals(10, generatorEntsoeCategory.getCode());
53-
54-
// Wrong code
55-
IllegalArgumentException e0 = assertThrows(IllegalArgumentException.class, () -> generatorEntsoeCategory.setCode(-1));
56-
assertEquals("Bad generator ENTSO-E code -1 for generator G1",
57-
e0.getMessage());
58-
59-
// Right code
60-
generatorEntsoeCategory.setCode(5);
61-
assertEquals(5, generatorEntsoeCategory.getCode());
62-
}
63-
}
17+
class GeneratorEntsoeCategoryTest extends AbstractGeneratorEntsoeCategoryTest { }
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/**
2+
* Copyright (c) 2026, RTE (http://www.rte-france.com)
3+
* This Source Code Form is subject to the terms of the Mozilla Public
4+
* License, v. 2.0. If a copy of the MPL was not distributed with this
5+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
6+
* SPDX-License-Identifier: MPL-2.0
7+
*/
8+
package com.powsybl.iidm.network.tck.extensions;
9+
10+
import com.powsybl.iidm.network.*;
11+
import com.powsybl.iidm.network.extensions.BusbarSectionPosition;
12+
import com.powsybl.iidm.network.extensions.BusbarSectionPositionAdder;
13+
import org.junit.jupiter.api.Test;
14+
15+
import static org.junit.jupiter.api.Assertions.assertEquals;
16+
import static org.junit.jupiter.api.Assertions.assertThrows;
17+
18+
/**
19+
* @author Samir Romdhani {@literal <samir.romdhani at rte-france.com>}
20+
*/
21+
public abstract class AbstractBusbarSectionPositionTest {
22+
23+
@Test
24+
void testExtension() {
25+
BusbarSectionPosition busbarSectionPosition = busbarSection().newExtension(BusbarSectionPositionAdder.class)
26+
.withBusbarIndex(1)
27+
.withSectionIndex(2)
28+
.add();
29+
assertEquals(1, busbarSectionPosition.getBusbarIndex());
30+
assertEquals(2, busbarSectionPosition.getSectionIndex());
31+
32+
// Wrong Busbar index
33+
IllegalArgumentException e0;
34+
e0 = assertThrows(IllegalArgumentException.class, () -> busbarSectionPosition.setBusbarIndex(-1));
35+
assertEquals("Busbar index (-1) has to be greater or equals to zero for busbar section BBS",
36+
e0.getMessage());
37+
38+
// Right busbar index
39+
busbarSectionPosition.setBusbarIndex(10);
40+
busbarSectionPosition.setSectionIndex(5);
41+
assertEquals(10, busbarSectionPosition.getBusbarIndex());
42+
assertEquals(5, busbarSectionPosition.getSectionIndex());
43+
}
44+
45+
protected BusbarSection busbarSection() {
46+
Network network = Network.create("test", "test");
47+
Substation s = network.newSubstation()
48+
.setId("S")
49+
.setCountry(Country.FR)
50+
.add();
51+
VoltageLevel vl = s.newVoltageLevel()
52+
.setId("VL")
53+
.setNominalV(400.0)
54+
.setTopologyKind(TopologyKind.NODE_BREAKER)
55+
.add();
56+
return vl.getNodeBreakerView().newBusbarSection()
57+
.setId("BBS")
58+
.setNode(0)
59+
.add();
60+
}
61+
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/**
2+
* Copyright (c) 2026, RTE (http://www.rte-france.com)
3+
* This Source Code Form is subject to the terms of the Mozilla Public
4+
* License, v. 2.0. If a copy of the MPL was not distributed with this
5+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
6+
* SPDX-License-Identifier: MPL-2.0
7+
*/
8+
package com.powsybl.iidm.network.tck.extensions;
9+
10+
import com.powsybl.iidm.network.*;
11+
import com.powsybl.iidm.network.extensions.GeneratorEntsoeCategory;
12+
import com.powsybl.iidm.network.extensions.GeneratorEntsoeCategoryAdder;
13+
import org.junit.jupiter.api.Test;
14+
15+
import static org.junit.jupiter.api.Assertions.assertEquals;
16+
import static org.junit.jupiter.api.Assertions.assertThrows;
17+
18+
/**
19+
* @author Samir Romdhani {@literal <samir.romdhani at rte-france.com>}
20+
*/
21+
public abstract class AbstractGeneratorEntsoeCategoryTest {
22+
23+
@Test
24+
void testExtension() {
25+
GeneratorEntsoeCategory generatorEntsoeCategory = generator().newExtension(GeneratorEntsoeCategoryAdder.class)
26+
.withCode(10)
27+
.add();
28+
assertEquals(10, generatorEntsoeCategory.getCode());
29+
30+
// Wrong code
31+
IllegalArgumentException e0 = assertThrows(IllegalArgumentException.class, () -> generatorEntsoeCategory.setCode(-1));
32+
assertEquals("Bad generator ENTSO-E code -1 for generator G1",
33+
e0.getMessage());
34+
35+
// Right code
36+
generatorEntsoeCategory.setCode(5);
37+
assertEquals(5, generatorEntsoeCategory.getCode());
38+
}
39+
40+
protected Generator generator() {
41+
Network network = Network.create("test", "test");
42+
Substation s = network.newSubstation()
43+
.setId("S")
44+
.setCountry(Country.FR)
45+
.add();
46+
VoltageLevel vl = s.newVoltageLevel()
47+
.setId("VL")
48+
.setNominalV(400)
49+
.setTopologyKind(TopologyKind.BUS_BREAKER)
50+
.add();
51+
vl.getBusBreakerView().newBus()
52+
.setId("B")
53+
.add();
54+
return vl.newGenerator()
55+
.setId("G1")
56+
.setBus("B")
57+
.setMaxP(100)
58+
.setMinP(50)
59+
.setTargetP(100)
60+
.setTargetV(400)
61+
.setVoltageRegulatorOn(true)
62+
.add();
63+
}
64+
65+
}

0 commit comments

Comments
 (0)