package org.arquillian.cube.docker.drone;
import org.arquillian.cube.docker.drone.event.AfterConversion;
import org.arquillian.cube.spi.Cube;
import org.arquillian.cube.spi.CubeRegistry;
import org.jboss.arquillian.core.api.Event;
import org.jboss.arquillian.core.api.annotation.Inject;
import org.jboss.arquillian.core.api.annotation.Observes;
import org.jboss.arquillian.test.spi.event.suite.AfterSuite;
public class VideoConversionLifecycleManager {
Cube flv2mp4;
@Inject
Event<AfterConversion> afterConversionEvent;
public void startConversion(@Observes AfterSuite afterSuite, CubeRegistry cubeRegistry) {
initConversionCube(cubeRegistry);
flv2mp4.create();
flv2mp4.start();
afterConversionEvent.fire(new AfterConversion());
}
private void initConversionCube(CubeRegistry cubeRegistry) {
if (flv2mp4 == null) {
Cube conversionContainer = cubeRegistry.getCube(SeleniumContainers.CONVERSION_CONTAINER_NAME);
if (conversionContainer == null) {
throw new IllegalArgumentException(
SeleniumContainers.CONVERSION_CONTAINER_NAME + " cube is not present in the registry.");
}
this.flv2mp4 = conversionContainer;
}
}
public void stopContainer(@Observes AfterConversion afterConversion) {
if (this.flv2mp4 != null) {
flv2mp4.stop();
flv2mp4.destroy();
}
}
}