StandardCriticalBranchCreationContextTest.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.crac.io.commons.api;
import org.apache.commons.lang3.NotImplementedException;
import com.powsybl.openrao.data.crac.io.commons.api.stdcreationcontext.NativeBranch;
import org.junit.jupiter.api.Test;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import static org.ejml.UtilEjml.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
/**
* @author Thomas Bouquet {@literal <thomas.bouquet at rte-france.com>}
*/
class StandardCriticalBranchCreationContextTest {
private final NativeBranch nativeBranch = new NativeBranch("from", "to", "suffix");
private final Map<String, String> createdCnecsIds = Map.of("preventive", "preventiveCnec", "curative", "curativeCnec");
@Test
void testInitWithComprehensiveData() {
StandardCriticalBranchCreationContext context = new StandardCriticalBranchCreationContext("criticalBranchId", nativeBranch, false, "contingency", createdCnecsIds, false, ImportStatus.IMPORTED, "Details.");
assertTrue(context.isImported());
assertEquals("criticalBranchId", context.getNativeObjectId());
assertEquals("criticalBranchId", context.getNativeObjectName());
assertEquals("Several objects may have been created. Please use getCreatedCnecsIds() instead.", assertThrows(NotImplementedException.class, context::getCreatedObjectId).getMessage());
assertEquals(Set.of("preventiveCnec", "curativeCnec"), context.getCreatedObjectsIds());
assertFalse(context.isAltered());
assertEquals(ImportStatus.IMPORTED, context.getImportStatus());
assertEquals("Details.", context.getImportStatusDetail());
assertEquals(nativeBranch, context.getNativeBranch());
assertFalse(context.isBaseCase());
assertEquals(Optional.of("contingency"), context.getContingencyId());
assertFalse(context.isDirectionInvertedInNetwork());
}
@Test
void testInitWithComprehensiveDataBaseCase() {
StandardCriticalBranchCreationContext context = new StandardCriticalBranchCreationContext("criticalBranchId", nativeBranch, true, "contingency", createdCnecsIds, false, ImportStatus.IMPORTED, "Details.");
assertTrue(context.isImported());
assertEquals("criticalBranchId", context.getNativeObjectId());
assertEquals("criticalBranchId", context.getNativeObjectName());
assertEquals("Several objects may have been created. Please use getCreatedCnecsIds() instead.", assertThrows(NotImplementedException.class, context::getCreatedObjectId).getMessage());
assertEquals(Set.of("preventiveCnec", "curativeCnec"), context.getCreatedObjectsIds());
assertFalse(context.isAltered());
assertEquals(ImportStatus.IMPORTED, context.getImportStatus());
assertEquals("Details.", context.getImportStatusDetail());
assertEquals(nativeBranch, context.getNativeBranch());
assertTrue(context.isBaseCase());
assertTrue(context.getContingencyId().isEmpty());
assertFalse(context.isDirectionInvertedInNetwork());
}
@Test
void testInitWithoutContingency() {
StandardCriticalBranchCreationContext context = new StandardCriticalBranchCreationContext("criticalBranchId", nativeBranch, false, null, createdCnecsIds, false, ImportStatus.IMPORTED, "Details.");
assertTrue(context.isImported());
assertEquals("criticalBranchId", context.getNativeObjectId());
assertEquals("criticalBranchId", context.getNativeObjectName());
assertEquals("Several objects may have been created. Please use getCreatedCnecsIds() instead.", assertThrows(NotImplementedException.class, context::getCreatedObjectId).getMessage());
assertEquals(Set.of("preventiveCnec", "curativeCnec"), context.getCreatedObjectsIds());
assertFalse(context.isAltered());
assertEquals(ImportStatus.IMPORTED, context.getImportStatus());
assertEquals("Details.", context.getImportStatusDetail());
assertEquals(nativeBranch, context.getNativeBranch());
assertFalse(context.isBaseCase());
assertTrue(context.getContingencyId().isEmpty());
assertFalse(context.isDirectionInvertedInNetwork());
}
}