CneHelperTest.java
/*
* Copyright (c) 2024, 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.openrao.data.raoresult.io.cne.commons;
import com.powsybl.openrao.data.crac.api.Crac;
import com.powsybl.openrao.data.raoresult.api.RaoResult;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import java.util.Properties;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* @author Thomas Bouquet {@literal <thomas.bouquet at rte-france.com>}
*/
class CneHelperTest {
@Test
void testInitFromProperties() {
Crac crac = Mockito.mock(Crac.class);
RaoResult raoResult = Mockito.mock(RaoResult.class);
Properties properties = new Properties();
properties.setProperty("rao-result.export.core-cne.relative-positive-margins", "true");
properties.setProperty("rao-result.export.core-cne.with-loop-flows", "false");
properties.setProperty("rao-result.export.core-cne.mnec-acceptable-margin-diminution", "50");
properties.setProperty("rao-result.export.core-cne.document-id", "documentId");
properties.setProperty("rao-result.export.core-cne.revision-number", "1");
properties.setProperty("rao-result.export.core-cne.domain-id", "domainId");
properties.setProperty("rao-result.export.core-cne.process-type", "Z01");
properties.setProperty("rao-result.export.core-cne.sender-id", "senderId");
properties.setProperty("rao-result.export.core-cne.sender-role", "A04");
properties.setProperty("rao-result.export.core-cne.receiver-id", "receiverId");
properties.setProperty("rao-result.export.core-cne.receiver-role", "A36");
properties.setProperty("rao-result.export.core-cne.time-interval", "2021-04-02T12:00:00Z/2021-04-02T13:00:00Z");
CneHelper cneHelper = new CneHelper(crac, raoResult, properties, "rao-result.export.core-cne.");
assertEquals(crac, cneHelper.getCrac());
assertEquals(raoResult, cneHelper.getRaoResult());
assertTrue(cneHelper.isRelativePositiveMargins());
assertFalse(cneHelper.isWithLoopFlows());
assertEquals(50d, cneHelper.getMnecAcceptableMarginDiminution());
assertEquals("documentId", cneHelper.getDocumentId());
assertEquals(1, cneHelper.getRevisionNumber());
assertEquals("Z01", cneHelper.getProcessType());
assertEquals("senderId", cneHelper.getSenderId());
assertEquals("A04", cneHelper.getSenderRole());
assertEquals("receiverId", cneHelper.getReceiverId());
assertEquals("A36", cneHelper.getReceiverRole());
assertEquals("2021-04-02T12:00:00Z/2021-04-02T13:00:00Z", cneHelper.getTimeInterval());
}
}