TrippingTopologyTraverserTest.java
/**
* Copyright (c) 2019, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* SPDX-License-Identifier: MPL-2.0
*/
package com.powsybl.iidm.modification.tripping;
import com.powsybl.iidm.network.*;
import org.junit.jupiter.api.Test;
import java.util.HashSet;
import java.util.Set;
import static org.junit.jupiter.api.Assertions.*;
/**
* @author Geoffroy Jamgotchian {@literal <geoffroy.jamgotchian at rte-france.com>}
*/
class TrippingTopologyTraverserTest {
@Test
void test() {
Network network = Network.create("test", "");
Substation s1 = network.newSubstation()
.setId("s1")
.setCountry(Country.FR)
.add();
VoltageLevel vl1 = s1.newVoltageLevel()
.setId("vl1")
.setTopologyKind(TopologyKind.BUS_BREAKER)
.setNominalV(400)
.add();
VoltageLevel vl2 = s1.newVoltageLevel()
.setId("vl2")
.setTopologyKind(TopologyKind.BUS_BREAKER)
.setNominalV(400)
.add();
vl1.getBusBreakerView().newBus()
.setId("b1")
.add();
vl2.getBusBreakerView().newBus()
.setId("b2")
.add();
Line l1 = network.newLine()
.setId("l12")
.setVoltageLevel1("vl1")
.setConnectableBus1("b1")
.setBus1("b1")
.setVoltageLevel2("vl2")
.setConnectableBus2("b2")
.setBus2("b2")
.setR(1)
.setX(1)
.setG1(0)
.setG2(0)
.setB1(0)
.setB2(0)
.add();
Set<Switch> switchesToOpen = new HashSet<>();
Set<Terminal> terminalsToDisconnect = new HashSet<>();
TrippingTopologyTraverser.traverse(l1.getTerminal1(), switchesToOpen, terminalsToDisconnect, null);
assertTrue(switchesToOpen.isEmpty());
assertEquals(1, terminalsToDisconnect.size());
assertEquals("BusTerminal[b1]", terminalsToDisconnect.iterator().next().toString());
l1.getTerminal1().disconnect();
assertNull(l1.getTerminal1().getBusBreakerView().getBus());
switchesToOpen.clear();
terminalsToDisconnect.clear();
TrippingTopologyTraverser.traverse(l1.getTerminal1(), switchesToOpen, terminalsToDisconnect, null);
assertTrue(switchesToOpen.isEmpty());
assertTrue(terminalsToDisconnect.isEmpty());
switchesToOpen.clear();
terminalsToDisconnect.clear();
TrippingTopologyTraverser.traverse(l1.getTerminal2(), switchesToOpen, terminalsToDisconnect, null);
assertTrue(switchesToOpen.isEmpty());
assertEquals(1, terminalsToDisconnect.size());
assertEquals("BusTerminal[b2]", terminalsToDisconnect.iterator().next().toString());
}
}