RemedialReaderTest.java

/*
 * Copyright (c) 2021, 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.metrix.integration.remedials;

import org.apache.commons.io.FileUtils;
import org.junit.jupiter.api.Test;

import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import static org.assertj.core.api.Assertions.assertThat;

/**
 * @author Valentin Berthault {@literal <valentin.berthault at rte-france.com>}
 */
public class RemedialReaderTest {

    @Test
    void parseFileTest() throws URISyntaxException, IOException {
        File file = new File(getClass().getResource("/remedial.txt").toURI());
        String s = FileUtils.readFileToString(file, StandardCharsets.UTF_8);
        List<Remedial> remedials = RemedialReader.parseFile(s);
        List<Remedial> expectedList = Arrays.asList(
                new Remedial(2, "S_SO_1", Collections.emptyList(), Collections.singletonList("SOO1_SOO1_DJ_OMN"), Collections.emptyList(), "SOO1_SOO1_DJ_OMN"),
                new Remedial(3, "S_SO_1", Collections.emptyList(), Arrays.asList("SS1_SS1_DJ_OMN", "AUTRE"), Arrays.asList("SOO1_SOO1_DJ_OMN", "test"), "SS1_SS1_DJ_OMN;+SOO1_SOO1_DJ_OMN;AUTRE;+test"),
                new Remedial(4, "S_SO_2", Arrays.asList("contrainte_1", "contrainte_2"), Collections.singletonList("S_SO_3"), Collections.emptyList(), "S_SO_3")
        );
        assertThat(remedials.size()).isEqualTo(expectedList.size());
        for (int i = 0; i < expectedList.size(); i++) {
            Remedial actual = remedials.get(i);
            Remedial expected = expectedList.get(i);
            assertThat(actual.getLineFile()).isEqualTo(expected.getLineFile());
            assertThat(actual.getContingency()).isEqualTo(expected.getContingency());
            assertThat(actual.getConstraint()).isEqualTo(expected.getConstraint());
            assertThat(actual.getBranchToOpen()).isEqualTo(expected.getBranchToOpen());
            assertThat(actual.getBranchToClose()).isEqualTo(expected.getBranchToClose());
            assertThat(actual.getActions()).isEqualTo(expected.getActions());
        }
    }

    @Test
    public void parseEmptyFileTest() {
        String nullString = "";
        List<Remedial> remedials = RemedialReader.parseFile(nullString);
        assertThat(remedials.size()).isEqualTo(0);
    }
}