public async Task TestUpdateExistingServiceAsync_RecreatesServiceWhenWrongType() { _kubectlContextMock.Setup(k => k.GetServiceAsync(It.IsAny <string>())) .ReturnsResult( new GkeService { Spec = new GkeServiceSpec { Type = GkeServiceSpec.LoadBalancerType }, Metadata = new GkeMetadata { Name = ExpectedDeploymentName } }); GkeDeploymentService.Options options = GetOptionsBuilder() .SetExposeService(true) .SetExposePublicService(false) .SetDeploymentName(ExpectedDeploymentName) .Build(); await _objectUnderTest.DeployProjectToGkeAsync(_mockedParsedProject, options); _kubectlContextMock.Verify( k => k.DeleteServiceAsync(ExpectedDeploymentName, _gcpOutputWindowMock.Object.OutputLine)); _kubectlContextMock.Verify( k => k.ExposeServiceAsync( ExpectedDeploymentName, false, _gcpOutputWindowMock.Object.OutputLine)); }
public async Task TestDeleteExistingServiceAsync_DeleteServiceFailureFailsDeployment() { _kubectlContextMock.Setup( k => k.DeleteServiceAsync(It.IsAny <string>(), It.IsAny <Action <string> >())) .ReturnsResult(false); _kubectlContextMock.Setup(k => k.GetServiceAsync(It.IsAny <string>())) .ReturnsResult( new GkeService { Spec = new GkeServiceSpec { Type = GkeServiceSpec.LoadBalancerType }, Metadata = new GkeMetadata { Name = ExpectedDeploymentName } }); GkeDeploymentService.Options options = GetOptionsBuilder() .SetExposeService(false) .SetDeploymentName(ExpectedDeploymentName) .Build(); await _objectUnderTest.DeployProjectToGkeAsync(_mockedParsedProject, options); _statusbarServiceMock.Verify(s => s.SetTextAsync(Resources.PublishFailureStatusMessage)); }
public async Task TestUpdateExistingServiceAsync_DoesNotUpdateWhenAlreadyCorrectType() { _kubectlContextMock.Setup(k => k.GetServiceAsync(It.IsAny <string>())) .ReturnsResult( new GkeService { Spec = new GkeServiceSpec { Type = GkeServiceSpec.ClusterIpType }, Metadata = new GkeMetadata { Name = ExpectedDeploymentName } }); GkeDeploymentService.Options options = GetOptionsBuilder() .SetExposeService(true) .SetExposePublicService(false) .SetDeploymentName(ExpectedDeploymentName) .Build(); await _objectUnderTest.DeployProjectToGkeAsync(_mockedParsedProject, options); _kubectlContextMock.Verify( k => k.DeleteServiceAsync(It.IsAny <string>(), It.IsAny <Action <string> >()), Times.Never); _kubectlContextMock.Verify( k => k.ExposeServiceAsync( It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <Action <string> >()), Times.Never); }
public async Task TestOutputResultData_OutputsClusterIpMessageWhenExposedServiceIsPrivate() { _kubectlContextMock.Setup(k => k.GetServiceClusterIpAsync(It.IsAny <string>())) .ReturnsResult(ExpectedClusterIp); GkeDeploymentService.Options options = GetOptionsBuilder() .SetExposeService(true) .SetExposePublicService(false) .Build(); await _objectUnderTest.DeployProjectToGkeAsync(_mockedParsedProject, options); _gcpOutputWindowMock.Verify(o => o.OutputLine(It.Is <string>(s => s.Contains(ExpectedClusterIp)))); }
public async Task TestDeployProjectToGkeAsync_OpensBrowserWhenRequested() { _kubectlContextMock.Setup(k => k.GetPublicServiceIpAsync(It.IsAny <string>())) .ReturnsResult(ExpectedPublicIp); GkeDeploymentService.Options options = GetOptionsBuilder() .SetExposeService(true) .SetExposePublicService(true) .SetOpenWebsite(true) .Build(); await _objectUnderTest.DeployProjectToGkeAsync(_mockedParsedProject, options); _browserMock.Verify(b => b.OpenBrowser(It.Is <string>(s => s.Contains(ExpectedPublicIp)))); }
public async Task TestCreateOrUpdateDeploymentAsync_ScaleDeploymentFailureFailsDeployment() { _kubectlContextMock.Setup( g => g.ScaleDeploymentAsync(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <Action <string> >())) .ReturnsResult(false); GkeDeploymentService.Options options = GetOptionsBuilder() .SetReplicas(ExpectedReplicas) .SetExistingDeployment(s_defaultExistingDeployment) .Build(); await _objectUnderTest.DeployProjectToGkeAsync(_mockedParsedProject, options); _statusbarServiceMock.Verify(s => s.SetTextAsync(Resources.PublishFailureStatusMessage)); }
public async Task TestCreateOrUpdateDeploymentAsync_CreateDeploymentFailureFailsDeployment() { GkeDeploymentService.Options options = GetOptionsBuilder().SetExistingDeployment(null).Build(); _kubectlContextMock.Setup( g => g.CreateDeploymentAsync( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <Func <string, OutputStream, Task> >())) .ReturnsResult(false); await _objectUnderTest.DeployProjectToGkeAsync(_mockedParsedProject, options); _statusbarServiceMock.Verify(s => s.SetTextAsync(Resources.PublishFailureStatusMessage)); }
public async Task TestCreateOrUpdateDeploymentAsync_ScalesExistingDeployment() { GkeDeploymentService.Options options = GetOptionsBuilder() .SetDeploymentName(ExpectedDeploymentName) .SetReplicas(ExpectedReplicas) .SetExistingDeployment(s_defaultExistingDeployment) .Build(); await _objectUnderTest.DeployProjectToGkeAsync(_mockedParsedProject, options); _kubectlContextMock.Verify( g => g.ScaleDeploymentAsync( ExpectedDeploymentName, ExpectedReplicas, _gcpOutputWindowMock.Object.OutputLine)); }
public async Task TestExposeNewServiceAsync_ExposesNewServiceWhenMissingAndRequested(bool exposePublicService) { _kubectlContextMock.Setup(k => k.GetServiceAsync(It.IsAny <string>())) .Returns(Task.FromResult <GkeService>(null)); GkeDeploymentService.Options options = GetOptionsBuilder() .SetExposeService(true) .SetExposePublicService(exposePublicService) .SetDeploymentName(ExpectedDeploymentName) .Build(); await _objectUnderTest.DeployProjectToGkeAsync(_mockedParsedProject, options); _kubectlContextMock.Verify( k => k.ExposeServiceAsync( ExpectedDeploymentName, exposePublicService, _gcpOutputWindowMock.Object.OutputLine)); }
public async Task TestBuildImageAsync_BuildsContainer() { _kubectlContextMock.Setup(k => k.ProjectId).Returns(ExpectedProjectId); GkeDeploymentService.Options options = GetOptionsBuilder() .SetDeploymentName(ExpectedDeploymentName) .SetDeploymentVersion(ExpectedDeploymentVersion) .Build(); await _objectUnderTest.DeployProjectToGkeAsync(_mockedParsedProject, options); _kubectlContextMock.Verify( g => g.BuildContainerAsync( It.Is <string>( s => s.Contains(ExpectedProjectId) && s.Contains(ExpectedDeploymentName) && s.Contains(ExpectedDeploymentVersion)), It.IsAny <string>(), _gcpOutputWindowMock.Object.OutputLineAsync)); }
public async Task TestCreateOrUpdateDeploymentAsync_UpdatesDeploymentImageForExisting() { _kubectlContextMock.Setup(k => k.ProjectId).Returns(ExpectedProjectId); GkeDeploymentService.Options options = GetOptionsBuilder() .SetDeploymentName(ExpectedDeploymentName) .SetDeploymentVersion(ExpectedDeploymentVersion) .SetExistingDeployment(s_defaultExistingDeployment) .Build(); await _objectUnderTest.DeployProjectToGkeAsync(_mockedParsedProject, options); _kubectlContextMock.Verify( g => g.UpdateDeploymentImageAsync( ExpectedDeploymentName, It.Is <string>( s => s.Contains(ExpectedProjectId) && s.Contains(ExpectedDeploymentName) && s.Contains(ExpectedDeploymentVersion)), _gcpOutputWindowMock.Object.OutputLine)); }