Added steps (@step) for junit test to have more structure.

Signed-off-by: Jonathan Philip Knoblauch <JonathanPhilip.Knoblauch@bosch-si.com>
This commit is contained in:
Jonathan Philip Knoblauch
2016-10-27 16:05:04 +02:00
committed by Kai Zimmermann
parent 1f86168ae8
commit 812e613438

View File

@@ -52,7 +52,9 @@ import org.springframework.data.domain.Sort.Direction;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import ru.yandex.qatools.allure.annotations.Features; import ru.yandex.qatools.allure.annotations.Features;
import ru.yandex.qatools.allure.annotations.Step;
import ru.yandex.qatools.allure.annotations.Stories; import ru.yandex.qatools.allure.annotations.Stories;
import ru.yandex.qatools.allure.annotations.Title;
/** /**
* Junit tests for RolloutManagment. * Junit tests for RolloutManagment.
@@ -161,50 +163,89 @@ public class RolloutManagementTest extends AbstractJpaIntegrationTest {
} }
@Test @Test
@Title("Deleting targets of a rollout")
@Description("Verfiying that next group is started when targets of the group have been deleted.") @Description("Verfiying that next group is started when targets of the group have been deleted.")
public void checkRunningRolloutsStartsNextGroupIfTargetsDeleted() { public void checkRunningRolloutsStartsNextGroupIfTargetsDeleted() {
final int amountTargetsForRollout = 15; final int amountTargetsForRollout = 15;
final int amountOtherTargets = 0; final int amountOtherTargets = 0;
final int amountGroups = 3; final int amountGroups = 3;
final String successCondition = "100"; final String successCondition = "100";
final String errorCondition = "80"; final String errorCondition = "80";
final Rollout createdRollout = createAndStartRollout(amountTargetsForRollout, amountOtherTargets, amountGroups,
successCondition, errorCondition);
finishActionAndDeleteTargetsOfFirstRunningGroup(createdRollout);
checkStatusOfRolloutGroupsAfterDeletingTargets(createdRollout);
finishActionAndDeleteTargetsOfSecondRunningGroup(createdRollout);
deleteThrirdGroup(createdRollout);
checkStatusOfRolloutAndRolloutGroupsAfterDeletingTargets(createdRollout);
}
@Step("Create a rollout by the given parameter and start it.")
public Rollout createAndStartRollout(final int amountTargetsForRollout, final int amountOtherTargets,
final int amountGroups, final String successCondition, final String errorCondition) {
final Rollout createdRollout = createSimpleTestRolloutWithTargetsAndDistributionSet(amountTargetsForRollout, final Rollout createdRollout = createSimpleTestRolloutWithTargetsAndDistributionSet(amountTargetsForRollout,
amountOtherTargets, amountGroups, successCondition, errorCondition); amountOtherTargets, amountGroups, successCondition, errorCondition);
rolloutManagement.startRollout(createdRollout); rolloutManagement.startRollout(createdRollout);
return createdRollout;
}
@Step("Finish three actions of the rollout group and delete two targets")
public void finishActionAndDeleteTargetsOfFirstRunningGroup(final Rollout createdRollout) {
// finish group one by finishing targets and deleting targets // finish group one by finishing targets and deleting targets
List<Action> runningActions = deploymentManagement.findActionsByRolloutAndStatus(createdRollout, final List<Action> runningActions = deploymentManagement.findActionsByRolloutAndStatus(createdRollout,
Status.RUNNING); Status.RUNNING);
finishAction(runningActions.get(0)); finishAction(runningActions.get(0));
finishAction(runningActions.get(1)); finishAction(runningActions.get(1));
finishAction(runningActions.get(2)); finishAction(runningActions.get(2));
targetManagement.deleteTargets(runningActions.get(3).getTarget().getId(), targetManagement.deleteTargets(runningActions.get(3).getTarget().getId(),
runningActions.get(4).getTarget().getId()); runningActions.get(4).getTarget().getId());
}
@Step("Check the status of the rollout groups")
public void checkStatusOfRolloutGroupsAfterDeletingTargets(final Rollout createdRollout) {
rolloutManagement.checkRunningRollouts(0); rolloutManagement.checkRunningRollouts(0);
// validate that the second group is in running state // validate that the second group is in running state
List<RolloutGroup> runningRolloutGroups = rolloutGroupManagement.findRolloutGroupsByRolloutId( final List<RolloutGroup> runningRolloutGroups = rolloutGroupManagement.findRolloutGroupsByRolloutId(
createdRollout.getId(), new OffsetBasedPageRequest(0, 10, new Sort(Direction.ASC, "id"))).getContent(); createdRollout.getId(), new OffsetBasedPageRequest(0, 10, new Sort(Direction.ASC, "id"))).getContent();
assertThat(runningRolloutGroups.get(0).getStatus()).isEqualTo(RolloutGroupStatus.FINISHED); assertThat(runningRolloutGroups.get(0).getStatus()).isEqualTo(RolloutGroupStatus.FINISHED);
assertThat(runningRolloutGroups.get(1).getStatus()).isEqualTo(RolloutGroupStatus.RUNNING); assertThat(runningRolloutGroups.get(1).getStatus()).isEqualTo(RolloutGroupStatus.RUNNING);
assertThat(runningRolloutGroups.get(2).getStatus()).isEqualTo(RolloutGroupStatus.SCHEDULED);
}
// finish one action and delete the other targets of group two @Step("Finish one action of the rollout group and delete four targets")
runningActions = deploymentManagement.findActionsByRolloutAndStatus(createdRollout, Status.RUNNING); public void finishActionAndDeleteTargetsOfSecondRunningGroup(final Rollout createdRollout) {
final List<Action> runningActions = deploymentManagement.findActionsByRolloutAndStatus(createdRollout,
Status.RUNNING);
finishAction(runningActions.get(0)); finishAction(runningActions.get(0));
targetManagement.deleteTargets(runningActions.get(1).getTarget().getId(), targetManagement.deleteTargets(runningActions.get(1).getTarget().getId(),
runningActions.get(2).getTarget().getId(), runningActions.get(3).getTarget().getId(), runningActions.get(2).getTarget().getId(), runningActions.get(3).getTarget().getId(),
runningActions.get(4).getTarget().getId()); runningActions.get(4).getTarget().getId());
}
@Step("Delete all targets of the rollout group")
public void deleteThrirdGroup(final Rollout createdRollout) {
// delete all targets of the third group // delete all targets of the third group
runningActions = deploymentManagement.findActionsByRolloutAndStatus(createdRollout, Status.SCHEDULED); final List<Action> runningActions = deploymentManagement.findActionsByRolloutAndStatus(createdRollout,
Status.SCHEDULED);
targetManagement.deleteTargets(runningActions.get(0).getTarget().getId(), targetManagement.deleteTargets(runningActions.get(0).getTarget().getId(),
runningActions.get(1).getTarget().getId(), runningActions.get(2).getTarget().getId(), runningActions.get(1).getTarget().getId(), runningActions.get(2).getTarget().getId(),
runningActions.get(3).getTarget().getId(), runningActions.get(4).getTarget().getId()); runningActions.get(3).getTarget().getId(), runningActions.get(4).getTarget().getId());
}
// validate that groups and rollout finished correctly @Step("Check the status of the rollout groups and the rollout")
public void checkStatusOfRolloutAndRolloutGroupsAfterDeletingTargets(final Rollout createdRollout) {
rolloutManagement.checkRunningRollouts(0); rolloutManagement.checkRunningRollouts(0);
runningRolloutGroups = rolloutGroupManagement.findRolloutGroupsByRolloutId(createdRollout.getId(), final List<RolloutGroup> runningRolloutGroups = rolloutGroupManagement.findRolloutGroupsByRolloutId(
new OffsetBasedPageRequest(0, 10, new Sort(Direction.ASC, "id"))).getContent(); createdRollout.getId(), new OffsetBasedPageRequest(0, 10, new Sort(Direction.ASC, "id"))).getContent();
assertThat(runningRolloutGroups.get(0).getStatus()).isEqualTo(RolloutGroupStatus.FINISHED); assertThat(runningRolloutGroups.get(0).getStatus()).isEqualTo(RolloutGroupStatus.FINISHED);
assertThat(runningRolloutGroups.get(1).getStatus()).isEqualTo(RolloutGroupStatus.FINISHED); assertThat(runningRolloutGroups.get(1).getStatus()).isEqualTo(RolloutGroupStatus.FINISHED);
assertThat(runningRolloutGroups.get(2).getStatus()).isEqualTo(RolloutGroupStatus.FINISHED); assertThat(runningRolloutGroups.get(2).getStatus()).isEqualTo(RolloutGroupStatus.FINISHED);