public void Deploy_DoesntSucceed_Aborts() { IServiceDeploymentExecutor deploymentExecutor = Substitute.For <IServiceDeploymentExecutor>(); deploymentExecutor.Deploy(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()).Returns(true); deploymentExecutor.GetDeploymentStatus( Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()).Returns(DeploymentStatus.Failed); this.sut = new SequentialDeploymentHandler(deploymentExecutor, 0); this.sut.Deploy(GetTestManifest(2), environment: "someEnvironment", productVersion: "someVersion"); deploymentExecutor.Received(1).Deploy(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()); }
public void Deploy_DeploymentQueued_Waits() { IServiceDeploymentExecutor deploymentExecutor = Substitute.For <IServiceDeploymentExecutor>(); deploymentExecutor.Deploy(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()).Returns(true); Stack <DeploymentStatus> statusResults = new Stack <DeploymentStatus>(); statusResults.Push(DeploymentStatus.Succeeded); statusResults.Push(DeploymentStatus.Queued); deploymentExecutor.GetDeploymentStatus( Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()).Returns(x => statusResults.Pop()); this.sut = new SequentialDeploymentHandler(deploymentExecutor, 0); this.sut.Deploy(GetTestManifest(1), environment: "someEnvironment", productVersion: "someVersion"); deploymentExecutor.Received(2).GetDeploymentStatus(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()); }