public void Ctor_NegativeInterval_ThrowsException() { IServiceDeploymentExecutor deploymentExecutor = Substitute.For <IServiceDeploymentExecutor>(); Assert.Throws <ArgumentException>(() => this.sut = new SequentialDeploymentHandler(deploymentExecutor, -1)); }
public void Deploy_NullEnvironment_ThrowsException() { IProductManifestRepository manifestRepository = Substitute.For <IProductManifestRepository>(); IServiceDeploymentHandler deploymentHandler = Substitute.For <IServiceDeploymentHandler>(); this.sut = new DeploymentService(manifestRepository, deploymentHandler); Assert.Throws <ArgumentException>(() => this.sut.Deploy("someproduct", null, "someVersion")); }
public void Deploy_DoesntGetVersion_DoesntDeploy() { IServiceDeploymentExecutor deploymentExecutor = Substitute.For <IServiceDeploymentExecutor>(); this.sut = new SequentialDeploymentHandler(deploymentExecutor, 0); this.sut.Deploy(GetTestManifest(2), environment: "someEnvironment", productVersion: "wrongVersion"); deploymentExecutor.DidNotReceiveWithAnyArgs().Deploy(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()); }
public void Deploy_NullEnvironment_ThrowsException() { IServiceDeploymentExecutor deploymentExecutor = Substitute.For <IServiceDeploymentExecutor>(); this.sut = new SequentialDeploymentHandler(deploymentExecutor, 0); Assert.Throws <ArgumentException>(() => this.sut.Deploy(GetTestManifest(1), environment: null, productVersion: "someVersion")); }
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_NoManifest_DoesNothing() { IProductManifestRepository manifestRepository = Substitute.For <IProductManifestRepository>(); IServiceDeploymentHandler deploymentHandler = Substitute.For <IServiceDeploymentHandler>(); manifestRepository.GetManifest(Arg.Any <string>(), Arg.Any <string>()) .Returns((ProductManifest)null); this.sut = new DeploymentService(manifestRepository, deploymentHandler); this.sut.Deploy("someProduct", "someEnvironment", "someVersion"); deploymentHandler.DidNotReceiveWithAnyArgs() .Deploy(Arg.Any <ProductManifest>(), Arg.Any <string>(), Arg.Any <string>()); }
public void Deploy_GetsManifest_DeploysServices() { IProductManifestRepository manifestRepository = Substitute.For <IProductManifestRepository>(); IServiceDeploymentHandler deploymentHandler = Substitute.For <IServiceDeploymentHandler>(); manifestRepository.GetManifest(Arg.Any <string>(), Arg.Any <string>()) .Returns(GetTestManifest(2)); this.sut = new DeploymentService(manifestRepository, deploymentHandler); this.sut.Deploy("someProduct", "someEnvironment", "someVersion"); deploymentHandler.ReceivedWithAnyArgs() .Deploy(Arg.Any <ProductManifest>(), Arg.Any <string>(), Arg.Any <string>()); }
public void Deploy_HasBranch_UsesBranch() { IProductManifestRepository manifestRepository = Substitute.For <IProductManifestRepository>(); IServiceDeploymentHandler deploymentHandler = Substitute.For <IServiceDeploymentHandler>(); ProductManifest testManifest = GetTestManifest(2); manifestRepository.GetManifest(Arg.Any <string>(), Arg.Any <string>()) .Returns(testManifest); this.sut = new DeploymentService(manifestRepository, deploymentHandler); this.sut.Deploy("someProduct", "someEnvironment", "someVersion", "someBranch"); deploymentHandler.Received() .Deploy(testManifest, "someEnvironment", "someVersion", "someBranch"); }
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>()); }
public void Deploy_Whatif_DoesntWait() { 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.InProgress); deploymentExecutor.GetDeploymentStatus( Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()).Returns(x => statusResults.Pop()); this.sut = new SequentialDeploymentHandler(deploymentExecutor, 0, new Options { WhatIf = true }); this.sut.Deploy(GetTestManifest(1), environment: "someEnvironment", productVersion: "someVersion"); deploymentExecutor.DidNotReceiveWithAnyArgs().GetDeploymentStatus(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()); }
public void Ctor_NullCatalogueRepository_ThrowsException() { IServiceDeploymentHandler deploymentHandler = Substitute.For <IServiceDeploymentHandler>(); Assert.Throws <ArgumentNullException>(() => this.sut = new DeploymentService(null, deploymentHandler)); }
public void Ctor_NullDeploymentExecutor_ThrowsException() { Assert.Throws <ArgumentNullException>(() => this.sut = new SequentialDeploymentHandler(null, 0)); }
public DeploymentService( IProductManifestRepository manifestRepository, IServiceDeploymentHandler deploymentHandler) { this.manifestRepository = manifestRepository ?? throw new ArgumentNullException(nameof(manifestRepository)); this.deploymentHandler = deploymentHandler ?? throw new ArgumentNullException(nameof(deploymentHandler)); }