SubstationsTest.java

package com.powsybl.iidm.network.impl;

import com.powsybl.commons.PowsyblException;
import com.powsybl.iidm.network.*;
import com.powsybl.iidm.network.test.EurostagTutorialExample1Factory;
import com.powsybl.iidm.network.test.HvdcTestNetwork;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.function.Executable;

import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertTrue;

class SubstationsTest {

    @Test
    void test() {
        Network network = EurostagTutorialExample1Factory.create();
        network.getLine("NHV1_NHV2_1").remove();
        network.getLine("NHV1_NHV2_2").remove();
        assertDoesNotThrow(() -> Substations.checkRemovability(network.getSubstation("P1")));
    }

    @Test
    void failCheckRemovabilityBecauseOfBranches() {
        Network network = EurostagTutorialExample1Factory.create();
        assertFail(() -> Substations.checkRemovability(network.getSubstation("P1")));
        assertFail(() -> Substations.checkRemovability(network.getSubstation("P2")));
    }

    @Test
    void failCheckRemovabilityBecauseOfHvdcLines() {
        Network network = HvdcTestNetwork.createLcc();
        assertFail(() -> Substations.checkRemovability(network.getSubstation("S1")));
        assertFail(() -> Substations.checkRemovability(network.getSubstation("S2")));
    }

    private void assertFail(Executable executable) {
        PowsyblException e = Assertions.assertThrows(PowsyblException.class, executable);
        assertTrue(e.getMessage().contains("is still connected to another substation"));
    }

}