TimeSeriesDslLoaderInterruptionTest.java
package com.powsybl.metrix.mapping;
import com.powsybl.computation.AbstractTaskInterruptionTest;
import com.powsybl.iidm.network.Network;
import com.powsybl.timeseries.ReadOnlyTimeSeriesStore;
import com.powsybl.timeseries.ReadOnlyTimeSeriesStoreCache;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
/**
* @author Nicolas Rol {@literal <nicolas.rol at rte-france.com>}
*/
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
class TimeSeriesDslLoaderInterruptionTest extends AbstractTaskInterruptionTest {
private final MappingParameters parameters = MappingParameters.load();
private final Network network = MappingTestNetwork.create();
private final ReadOnlyTimeSeriesStore store = new ReadOnlyTimeSeriesStoreCache();
@ParameterizedTest
@Timeout(10)
@Order(1)
@ValueSource(booleans = {false, true})
void testCancelTaskJava(boolean isDelayed) throws Exception {
testCancelLongTask(isDelayed, () -> {
try {
Thread.sleep(5000L);
return 0;
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
});
}
@ParameterizedTest
@Timeout(10)
@Order(2)
@ValueSource(booleans = {false, true})
void testCancelTaskGroovyLong(boolean isDelayed) throws Exception {
String script = """
for (int i = 0; i < 10; i++) {
sleep(500)
}
""";
TimeSeriesDslLoader dsl = new TimeSeriesDslLoader(script);
testCancelLongTask(isDelayed, () -> dsl.load(network, parameters, store, new DataTableStore(), null));
}
@ParameterizedTest
@Timeout(10)
@Order(3)
@ValueSource(booleans = {false, true})
void testCancelTaskGroovyShort(boolean isDelayed) throws Exception {
String script = "writeLog(\"LOG_TYPE\", \"LOG_SECTION\", \"LOG_MESSAGE\")";
TimeSeriesDslLoader dsl = new TimeSeriesDslLoader(script);
testCancelShortTask(isDelayed, () -> dsl.load(network, parameters, store, new DataTableStore(), null));
}
}