TestCase11SubstationGraph.java

/**
 * Copyright (c) 2020, 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/.
 */
package com.powsybl.sld.raw;

import com.powsybl.commons.*;
import com.powsybl.sld.layout.PositionVoltageLevelLayoutFactory;
import com.powsybl.sld.layout.VerticalSubstationLayoutFactory;
import com.powsybl.sld.model.graphs.SubstationGraph;
import org.junit.jupiter.api.*;

import static org.junit.jupiter.api.Assertions.*;

/*
 * @author Benoit Jeanson {@literal <benoit.jeanson at rte-france.com>}
 */
class TestCase11SubstationGraph extends AbstractTestCaseRaw {

    @BeforeEach
    public void setUp() {
        // Nothing to do
    }

    @Test
    void testH() {
        RawGraphBuilderUtils.createRawBuilderWithTwoSubstations(rawGraphBuilder, null, false, false, false);
        SubstationGraph g = rawGraphBuilder.buildSubstationGraph("subst");
        substationGraphLayout(g);
        assertEquals(toString("/TestCase11SubstationGraphHRaw.json"), toJson(g, "/TestCase11SubstationGraphHRaw.json"));
    }

    @Test
    void testV() {
        RawGraphBuilderUtils.createRawBuilderWithTwoSubstations(rawGraphBuilder, null, false, false, false);
        SubstationGraph g = rawGraphBuilder.buildSubstationGraph("subst");
        new VerticalSubstationLayoutFactory().create(g, new PositionVoltageLevelLayoutFactory()).run(layoutParameters);
        assertEquals(toString("/TestCase11SubstationGraphVRaw.json"), toJson(g, "/TestCase11SubstationGraphVRaw.json"));
    }

    @Test
    void testH2() {
        RawGraphBuilderUtils.createRawBuilderWithTwoSubstations(rawGraphBuilder, null, false, false, false);
        SubstationGraph g = rawGraphBuilder.buildSubstationGraph("subst2");
        substationGraphLayout(g);
        assertEquals(toString("/TestCase11SubstationGraphHRaw2.json"), toJson(g, "/TestCase11SubstationGraphHRaw2.json"));
    }

    @Test
    void testV2() {
        RawGraphBuilderUtils.createRawBuilderWithTwoSubstations(rawGraphBuilder, null, false, false, false);
        SubstationGraph g = rawGraphBuilder.buildSubstationGraph("subst2");
        new VerticalSubstationLayoutFactory().create(g, new PositionVoltageLevelLayoutFactory()).run(layoutParameters);
        assertEquals(toString("/TestCase11SubstationGraphVRaw2.json"), toJson(g, "/TestCase11SubstationGraphVRaw2.json"));
    }

    @Test
    void testH2WithLines() {
        RawGraphBuilderUtils.createRawBuilderWithTwoSubstations(rawGraphBuilder, null, true, false, false);

        SubstationGraph g = rawGraphBuilder.buildSubstationGraph("subst2");
        substationGraphLayout(g);
        assertEquals(toString("/TestCase11SubstationGraphHRaw2WithLines.json"), toJson(g, "/TestCase11SubstationGraphHRaw2WithLines.json"));
    }

    @Test
    void testV2WithLines() {
        RawGraphBuilderUtils.createRawBuilderWithTwoSubstations(rawGraphBuilder, null, true, false, false);
        SubstationGraph g = rawGraphBuilder.buildSubstationGraph("subst2");
        new VerticalSubstationLayoutFactory().create(g, new PositionVoltageLevelLayoutFactory()).run(layoutParameters);
        assertEquals(toString("/TestCase11SubstationGraphVRaw2WithLines.json"), toJson(g, "/TestCase11SubstationGraphVRaw2WithLines.json"));
    }

    @Test
    void testH2With2wts() {
        PowsyblException e = assertThrows(PowsyblException.class, () -> RawGraphBuilderUtils.createRawBuilderWithTwoSubstations(rawGraphBuilder, null, false, true, false));
        assertEquals("VoltageLevel(s) 'vlSubst2' not found in Substation 'subst'", e.getMessage());
    }

    @Test
    void testH2With3wts() {
        PowsyblException e = assertThrows(PowsyblException.class, () -> RawGraphBuilderUtils.createRawBuilderWithTwoSubstations(rawGraphBuilder, null, false, false, true));
        assertEquals("VoltageLevel(s) 'vlSubst2' not found in Substation 'subst'", e.getMessage());
    }
}