MarginCalculationTest.java
/**
* Copyright (c) 2025, 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.dynawo.margincalculation;
import com.powsybl.contingency.ContingenciesProvider;
import com.powsybl.dynamicsimulation.DynamicModelsSupplier;
import com.powsybl.dynawo.margincalculation.loadsvariation.supplier.LoadsVariationSupplier;
import com.powsybl.dynawo.margincalculation.results.MarginCalculationResult;
import com.powsybl.iidm.network.Network;
import com.powsybl.iidm.network.VariantManager;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.mockito.MockedConstruction;
import org.mockito.Mockito;
import java.util.concurrent.CompletableFuture;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
/**
* @author Laurent Issertial {@literal <laurent.issertial at rte-france.com>}
*/
class MarginCalculationTest {
private static final MockedConstruction.MockInitializer<MarginCalculationProvider> MOCK_INITIALIZER =
(mock, context) -> when(mock.run(any(), any(), any(), any(), any(), any()))
.thenReturn(CompletableFuture.completedFuture(MarginCalculationResult.empty()));
private static Network network;
private static String variantId;
private static DynamicModelsSupplier dynamicModelsSupplier;
private static ContingenciesProvider contingenciesProvider;
private static LoadsVariationSupplier loadsVariationSupplier;
private static MarginCalculationRunParameters runParameters;
@BeforeAll
static void setup() {
network = Mockito.mock(Network.class);
VariantManager variantManager = Mockito.mock(VariantManager.class);
Mockito.when(network.getVariantManager()).thenReturn(variantManager);
Mockito.when(variantManager.getWorkingVariantId()).thenReturn("v");
variantId = "";
dynamicModelsSupplier = Mockito.mock(DynamicModelsSupplier.class);
contingenciesProvider = Mockito.mock(ContingenciesProvider.class);
loadsVariationSupplier = Mockito.mock(LoadsVariationSupplier.class);
runParameters = Mockito.mock(MarginCalculationRunParameters.class);
}
@Test
void testRunCombinations() {
try (MockedConstruction<MarginCalculationProvider> provider = Mockito.mockConstruction(MarginCalculationProvider.class, MOCK_INITIALIZER)) {
assertNotNull(MarginCalculation.run(network, variantId, dynamicModelsSupplier, contingenciesProvider, loadsVariationSupplier, runParameters));
assertNotNull(MarginCalculation.run(network, dynamicModelsSupplier, contingenciesProvider, loadsVariationSupplier, runParameters));
assertNotNull(MarginCalculation.run(network, dynamicModelsSupplier, contingenciesProvider, loadsVariationSupplier));
}
}
@Test
void testRunAsyncCombinations() {
try (MockedConstruction<MarginCalculationProvider> provider = Mockito.mockConstruction(MarginCalculationProvider.class, MOCK_INITIALIZER)) {
assertNotNull(MarginCalculation.runAsync(network, variantId, dynamicModelsSupplier, contingenciesProvider, loadsVariationSupplier, runParameters));
assertNotNull(MarginCalculation.runAsync(network, dynamicModelsSupplier, contingenciesProvider, loadsVariationSupplier, runParameters));
assertNotNull(MarginCalculation.runAsync(network, dynamicModelsSupplier, contingenciesProvider, loadsVariationSupplier));
}
}
}