blob: 70e624289b3e4ef0ee65ca27476da147dccfbbbe [file] [log] [blame]
package org.apache.winegrower.api;
import org.apache.winegrower.Ripener;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.List;
import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
import static org.junit.jupiter.api.Assertions.assertEquals;
class LifecycleCallbacksTest {
@Test
void lifecycle() {
final MyCallback callback = new MyCallback();
final Ripener.Configuration configuration = new Ripener.Configuration();
configuration.setLifecycleCallbacks(singletonList(callback));
System.setProperty("winegrower.scanner.standalone.skipUrlsScanning", "true");
try (final Ripener ripener = Ripener.create(configuration).start()) {
// no-op
} finally {
System.clearProperty("winegrower.scanner.standalone.skipUrlsScanning");
}
assertEquals(
asList("processConfiguration=true", "beforeStart=true", "afterStart=true", "beforeStop=true", "afterStop=true"),
callback.events);
}
public static class MyCallback implements LifecycleCallbacks {
private final List<String> events = new ArrayList<>();
@Override
public void processConfiguration(final Ripener.Configuration configuration) {
events.add("processConfiguration=" + (configuration != null));
}
@Override
public void beforeStart(final Ripener ripener) {
events.add("beforeStart=" + (ripener != null));
}
@Override
public void afterStart(final Ripener ripener) {
events.add("afterStart=" + (ripener != null));
}
@Override
public void beforeStop(final Ripener ripener) {
events.add("beforeStop=" + (ripener != null));
}
@Override
public void afterStop(final Ripener ripener) {
events.add("afterStop=" + (ripener != null));
}
}
}