package com.sequenceiq.cloudbreak.core.bootstrap.service; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.runners.MockitoJUnitRunner; import com.sequenceiq.cloudbreak.TestUtil; import com.sequenceiq.cloudbreak.cloud.scheduler.PollGroup; import com.sequenceiq.cloudbreak.cloud.store.InMemoryStateStore; import com.sequenceiq.cloudbreak.domain.Cluster; import com.sequenceiq.cloudbreak.domain.Stack; @RunWith(MockitoJUnitRunner.class) public class StackDeletionBasedExitCriteriaTest { @InjectMocks private StackDeletionBasedExitCriteria underTest; @Test public void exitNeededScenariosTest() { Stack stack = TestUtil.stack(); Cluster cluster = TestUtil.cluster(TestUtil.blueprint(), stack, 1L); stack.setCluster(cluster); StackDeletionBasedExitCriteriaModel exitCriteriaModel = new StackDeletionBasedExitCriteriaModel(1L); InMemoryStateStore.putStack(1L, PollGroup.POLLABLE); assertFalse(underTest.isExitNeeded(exitCriteriaModel)); InMemoryStateStore.putStack(1L, PollGroup.CANCELLED); assertTrue(underTest.isExitNeeded(exitCriteriaModel)); } }