Created
November 20, 2017 19:57
-
-
Save gastaldi/4bfd16e6dce181604adc5012db496423 to your computer and use it in GitHub Desktop.
Testing event steps in MissionControl
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package io.fabric8.launcher.core.impl; | |
import java.io.File; | |
import javax.enterprise.event.Observes; | |
import javax.enterprise.inject.Any; | |
import javax.inject.Inject; | |
import javax.inject.Singleton; | |
import io.fabric8.launcher.core.api.CreateProjectile; | |
import io.fabric8.launcher.core.api.MissionControl; | |
import io.fabric8.launcher.core.api.ProjectileBuilder; | |
import io.fabric8.launcher.core.api.StatusEventType; | |
import io.fabric8.launcher.core.impl.events.CreateProjectileEvent; | |
import org.jboss.arquillian.container.test.api.Deployment; | |
import org.jboss.arquillian.junit.Arquillian; | |
import org.jboss.shrinkwrap.api.ShrinkWrap; | |
import org.jboss.shrinkwrap.api.asset.EmptyAsset; | |
import org.jboss.shrinkwrap.api.spec.WebArchive; | |
import org.jboss.shrinkwrap.resolver.api.maven.Maven; | |
import org.junit.Test; | |
import org.junit.runner.RunWith; | |
import static org.assertj.core.api.Assertions.assertThat; | |
/** | |
* @author <a href="mailto:[email protected]">George Gastaldi</a> | |
*/ | |
@RunWith(Arquillian.class) | |
public class MissionControlEventTest { | |
/** | |
* @return a war file containing all the required classes and dependencies | |
* to test the {@link MissionControl} | |
*/ | |
@Deployment | |
public static WebArchive createMissionControlWithoutObservers() { | |
// Import Maven runtime dependencies | |
final File[] dependencies = Maven.resolver().loadPomFromFile("pom.xml") | |
.importRuntimeAndTestDependencies().resolve().withTransitivity().asFile(); | |
// Create deploy file | |
final WebArchive war = ShrinkWrap.create(WebArchive.class) | |
.addPackages(true, MissionControl.class.getPackage()) | |
.addPackage(MissionControlImpl.class.getPackage()) | |
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml") | |
.addAsLibraries(dependencies); | |
return war; | |
} | |
@Inject | |
MissionControl missionControl; | |
@Inject | |
StepObserver stepObserver; | |
@Test | |
public void stepsAreProperlyCalled() { | |
assertThat(stepObserver.getCounter()).isZero(); | |
CreateProjectile projectile = ProjectileBuilder.newInstance().createType().build(); | |
missionControl.launch(projectile); | |
assertThat(stepObserver.getCounter()).isEqualTo(StatusEventType.values().length); | |
} | |
@Singleton | |
public static class StepObserver { | |
private int counter; | |
public void addStep(@Observes @Any CreateProjectileEvent event) { | |
counter++; | |
} | |
public int getCounter() { | |
return counter; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment