public void TestWaitGceManagedInstanceGroupByRegion() { var listResponse = new RegionInstanceGroupManagersListInstancesResponse() { ManagedInstances = new[] { FirstTestInstance, SecondTestInstance } }; string instanceGroupName = "instance-group"; Mock <RegionInstanceGroupManagersResource> instances = ServiceMock.Resource(s => s.RegionInstanceGroupManagers); instances.SetupRequest( item => item.ListManagedInstances(FakeProjectId, FakeRegionName, instanceGroupName), listResponse); Pipeline.Commands.AddScript( $"Wait-GceManagedInstanceGroup -Name {instanceGroupName} -Region {FakeRegionName}"); Pipeline.Invoke(); instances.VerifyAll(); }
public void TestMachineTypeWithLabel() { const string psDiskVar = "attachedDisk"; const string mockedResultName = "mocked-result-name"; Pipeline.Runspace.SessionStateProxy.SetVariable(psDiskVar, new AttachedDisk()); Mock <InstancesResource> instances = ServiceMock.Resource(s => s.Instances); instances.SetupRequest( resource => resource.Insert(It.Is <Instance>( i => i.Labels["key"] == "value"), It.IsAny <string>(), It.IsAny <string>()), DoneOperation); instances.SetupRequest( i => i.Get(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), new Instance { Name = mockedResultName }); Pipeline.Commands.AddScript( $"Add-GceInstance -Name instance-name -Disk ${psDiskVar} -Label @{{'key' = 'value'}}"); Collection <PSObject> results = Pipeline.Invoke(); var instance = (Instance)results.Single().BaseObject; Assert.AreEqual(mockedResultName, instance.Name); }
public void TestAcceptingCustomMemoryCustomCpu() { const string psDiskVar = "attachedDisk"; const string mockedResultName = "mocked-result-name"; Pipeline.Runspace.SessionStateProxy.SetVariable(psDiskVar, new AttachedDisk()); Mock <InstancesResource> instances = ServiceMock.Resource(s => s.Instances); instances.SetupRequest( i => i.Insert(It.IsAny <Instance>(), It.IsAny <string>(), It.IsAny <string>()), DoneOperation); instances.SetupRequest( i => i.Get(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), new Instance { Name = mockedResultName }); Pipeline.Commands.AddScript( $"Add-GceInstance -Name instance-name -Disk ${psDiskVar} -CustomCpu 2 -CustomMemory 2048"); Collection <PSObject> results = Pipeline.Invoke(); instances.Verify( resource => resource.Insert( It.Is <Instance>(i => i.MachineType == $"zones/{FakeZoneName}/machineTypes/custom-2-2048"), FakeProjectId, FakeZoneName), Times.Once); var instance = (Instance)results.Single().BaseObject; Assert.AreEqual(mockedResultName, instance.Name); }
public void TestGetRegionGceManagedInstanceGroup() { var listResponse = new RegionInstanceGroupManagerList() { Items = new[] { FirstTestGroup, SecondTestGroup } }; Mock <RegionInstanceGroupManagersResource> instances = ServiceMock.Resource(s => s.RegionInstanceGroupManagers); instances.SetupRequest( item => item.List(FakeProjectId, FakeRegionName), listResponse); Pipeline.Commands.AddScript( $"Get-GceManagedInstanceGroup -Region {FakeRegionName}"); Collection <PSObject> results = Pipeline.Invoke(); Assert.AreEqual(results.Count, 2); InstanceGroupManager firstGroup = results[0]?.BaseObject as InstanceGroupManager; InstanceGroupManager secondGroup = results[1]?.BaseObject as InstanceGroupManager; Assert.IsNotNull(firstGroup); Assert.AreEqual(firstGroup.Name, FirstTestGroup.Name); Assert.IsNotNull(secondGroup); Assert.AreEqual(secondGroup.Name, SecondTestGroup.Name); }
public void TestSetGceManagedInstanceGroupAbandonInstanceByRegion() { string instanceGroupName = FirstTestGroup.Name; string instanceUri = "uri"; Mock <RegionInstanceGroupManagersResource> instances = ServiceMock.Resource(s => s.RegionInstanceGroupManagers); instances.SetupRequest( item => item.AbandonInstances(It.IsAny <RegionInstanceGroupManagersAbandonInstancesRequest>(), FakeProjectId, FakeRegionName, instanceGroupName), DoneOperation); instances.SetupRequest( i => i.Get(FakeProjectId, FakeRegionName, instanceGroupName), FirstTestGroup); Pipeline.Commands.AddScript( $"Set-GceManagedInstanceGroup -Name {instanceGroupName} -Region {FakeRegionName}" + $" -Abandon -InstanceUri {instanceUri}"); Collection <PSObject> results = Pipeline.Invoke(); instances.Verify( resource => resource.AbandonInstances( It.Is <RegionInstanceGroupManagersAbandonInstancesRequest>(request => request.Instances.Count == 1 && request.Instances.Contains(instanceUri)), FakeProjectId, FakeRegionName, instanceGroupName), Times.Once); Assert.AreEqual(results.Count, 1); InstanceGroupManager createdInstance = results[0].BaseObject as InstanceGroupManager; Assert.AreEqual(createdInstance?.Name, instanceGroupName); }
public void TestSetGceManagedInstanceGroupResizeByRegion() { string instanceGroupName = FirstTestGroup.Name; int newSize = 5; Mock <RegionInstanceGroupManagersResource> instances = ServiceMock.Resource(s => s.RegionInstanceGroupManagers); instances.SetupRequest( item => item.Resize(FakeProjectId, FakeRegionName, instanceGroupName, newSize), DoneOperation); instances.SetupRequest( i => i.Get(FakeProjectId, FakeRegionName, instanceGroupName), FirstTestGroup); Pipeline.Commands.AddScript( $"Set-GceManagedInstanceGroup -Name {instanceGroupName} -Region {FakeRegionName}" + $" -Size {newSize}"); Collection <PSObject> results = Pipeline.Invoke(); instances.Verify( resource => resource.Resize( FakeProjectId, FakeRegionName, instanceGroupName, newSize), Times.Once); Assert.AreEqual(results.Count, 1); InstanceGroupManager createdInstance = results[0].BaseObject as InstanceGroupManager; Assert.AreEqual(createdInstance?.Name, instanceGroupName); }
public void TestAddGceManagedInstanceGroupByObjectWithRegionParam() { string managedRegionObject = "managedRegionObj"; string instanceGroupName = FirstTestGroup.Name; Pipeline.Runspace.SessionStateProxy.SetVariable(managedRegionObject, FirstTestGroup); Mock <RegionInstanceGroupManagersResource> instances = ServiceMock.Resource(s => s.RegionInstanceGroupManagers); instances.SetupRequest( item => item.Insert( It.Is <InstanceGroupManager>(manager => manager.Name == instanceGroupName), FakeProjectId, FakeRegionName), DoneOperation); instances.SetupRequest( i => i.Get(FakeProjectId, FakeRegionName, FirstTestGroup.Name), FirstTestGroup); Pipeline.Commands.AddScript( $"${managedRegionObject} | Add-GceManagedInstanceGroup -Region {FakeRegionName}"); Collection <PSObject> results = Pipeline.Invoke(); instances.Verify( resource => resource.Insert( It.Is <InstanceGroupManager>(manager => manager.Name == instanceGroupName), FakeProjectId, FakeRegionName), Times.Once); Assert.AreEqual(results.Count, 1); InstanceGroupManager createdInstance = results[0].BaseObject as InstanceGroupManager; Assert.AreEqual(createdInstance?.Name, instanceGroupName); }
public void TestAddGceManagedInstanceGroupDefault() { string instanceGroupName = FirstTestGroup.Name; Mock <InstanceGroupManagersResource> instances = ServiceMock.Resource(s => s.InstanceGroupManagers); instances.SetupRequest( item => item.Insert( It.Is <InstanceGroupManager>(manager => manager.Name == instanceGroupName), FakeProjectId, FakeZoneName), DoneOperation); instances.SetupRequest( i => i.Get(FakeProjectId, FakeZoneName, instanceGroupName), FirstTestGroup); Pipeline.Commands.AddScript( $"Add-GceManagedInstanceGroup -Name {instanceGroupName} " + $"-InstanceTemplate template -TargetSize 1"); Collection <PSObject> results = Pipeline.Invoke(); instances.Verify( resource => resource.Insert( It.Is <InstanceGroupManager>(manager => manager.Name == instanceGroupName), FakeProjectId, FakeZoneName), Times.Once); Assert.AreEqual(results.Count, 1); InstanceGroupManager createdInstance = results[0].BaseObject as InstanceGroupManager; Assert.AreEqual(createdInstance?.Name, instanceGroupName); }
public void TestAddGceManagedInstanceGroupByRegion() { string instanceGroupName = "instance-group"; string templateName = "instance-template"; Mock <RegionInstanceGroupManagersResource> instances = ServiceMock.Resource(s => s.RegionInstanceGroupManagers); instances.SetupRequest( item => item.Insert( It.Is <InstanceGroupManager>(manager => manager.Name == instanceGroupName), FakeProjectId, FakeRegionName), DoneOperation); instances.SetupRequest( i => i.Get(FakeProjectId, FakeRegionName, instanceGroupName), new InstanceGroupManager { Name = instanceGroupName }); Pipeline.Commands.AddScript($"Add-GceManagedInstanceGroup -Name {instanceGroupName} " + $"-InstanceTemplate {templateName} -TargetSize 1 -Region {FakeRegionName}"); Collection <PSObject> results = Pipeline.Invoke(); instances.Verify( resource => resource.Insert( It.Is <InstanceGroupManager>(manager => manager.Name == instanceGroupName), FakeProjectId, FakeRegionName), Times.Once); Assert.AreEqual(results.Count, 1); InstanceGroupManager createdInstance = results[0].BaseObject as InstanceGroupManager; Assert.AreEqual(createdInstance?.Name, instanceGroupName); }
public void TestRemoveGceManagedInstanceGroupPipelineZonal() { string instanceGroupName = "RegionalInstanceGroup"; string zoneLink = $"{ComputeHttpsLink}/projects/{FakeProjectId}/zones/{FakeZoneName}"; InstanceGroupManager regionalInstanceGroup = new InstanceGroupManager() { Name = instanceGroupName, Zone = zoneLink, SelfLink = $"{zoneLink}/instanceGroupManagers/{instanceGroupName}" }; string managedRegionVar = "managedRegion"; Pipeline.Runspace.SessionStateProxy.SetVariable(managedRegionVar, regionalInstanceGroup); Mock <InstanceGroupManagersResource> instances = ServiceMock.Resource(s => s.InstanceGroupManagers); instances.SetupRequest( item => item.Delete(FakeProjectId, FakeZoneName, instanceGroupName), DoneOperation); Pipeline.Commands.AddScript( $"${managedRegionVar} | Remove-GceManagedInstanceGroup"); Pipeline.Invoke(); instances.VerifyAll(); }
public void TestWaitGceManagedInstanceGroupPipelineRegional() { var listResponse = new RegionInstanceGroupManagersListInstancesResponse() { ManagedInstances = new[] { FirstTestInstance, SecondTestInstance } }; string instanceGroupName = "RegionalInstanceGroup"; InstanceGroupManager regionalInstanceGroup = CreateRegionalInstanceGroup(instanceGroupName, FakeProjectId, FakeRegionName); string managedRegionVar = "managedRegion"; Pipeline.Runspace.SessionStateProxy.SetVariable(managedRegionVar, regionalInstanceGroup); Mock <RegionInstanceGroupManagersResource> instances = ServiceMock.Resource(s => s.RegionInstanceGroupManagers); instances.SetupRequest( item => item.ListManagedInstances(FakeProjectId, FakeRegionName, instanceGroupName), listResponse); Pipeline.Commands.AddScript( $"${managedRegionVar} | Wait-GceManagedInstanceGroup"); Pipeline.Invoke(); instances.VerifyAll(); }
public void TestRemoveGceManagedInstanceGroupByRegion() { string instanceGroupName = "instance-group"; Mock <RegionInstanceGroupManagersResource> instances = ServiceMock.Resource(s => s.RegionInstanceGroupManagers); instances.SetupRequest( item => item.Delete(FakeProjectId, FakeRegionName, instanceGroupName), DoneOperation); Pipeline.Commands.AddScript( $"Remove-GceManagedInstanceGroup -Name {instanceGroupName} -Region {FakeRegionName}"); Pipeline.Invoke(); instances.VerifyAll(); }
public void TestLabels() { Mock <DisksResource.CreateSnapshotRequest> requestMock = ServiceMock.Resource(s => s.Disks).SetupRequest( d => d.CreateSnapshot(It.Is <Snapshot>(snapshot => snapshot.Labels["key"] == "value"), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), DoneOperation); var snapshotResult = new Snapshot(); ServiceMock.Resource(s => s.Snapshots).SetupRequest( s => s.Get(It.IsAny <string>(), It.IsAny <string>()), snapshotResult); Pipeline.Commands.AddScript("Add-GceSnapShot -DiskName diskname -Label @{'key' = 'value'}"); Collection <PSObject> results = Pipeline.Invoke(); CollectionAssert.AreEqual(results, new[] { snapshotResult }); }
public void TestVss() { Mock <DisksResource.CreateSnapshotRequest> requestMock = ServiceMock.Resource(s => s.Disks).SetupRequest( d => d.CreateSnapshot(It.IsAny <Snapshot>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), DoneOperation); var snapshotResult = new Snapshot(); ServiceMock.Resource(s => s.Snapshots).SetupRequest( s => s.Get(It.IsAny <string>(), It.IsAny <string>()), snapshotResult); Pipeline.Commands.AddScript("Add-GceSnapShot -DiskName diskname -VSS"); Collection <PSObject> results = Pipeline.Invoke(); CollectionAssert.AreEqual(results, new[] { snapshotResult }); requestMock.VerifySet(r => r.GuestFlush = true, Times.Once); }
public void TestGetGceManagedInstanceGroupByNameAndRegion() { string instanceGroupName = FirstTestGroup.Name; Mock <RegionInstanceGroupManagersResource> instances = ServiceMock.Resource(s => s.RegionInstanceGroupManagers); instances.SetupRequest( item => item.Get(FakeProjectId, FakeRegionName, instanceGroupName), FirstTestGroup); Pipeline.Commands.AddScript( $"Get-GceManagedInstanceGroup -Name {instanceGroupName} -Region {FakeRegionName}"); Collection <PSObject> results = Pipeline.Invoke(); Assert.AreEqual(results.Count, 1); InstanceGroupManager retrievedInstance = results[0].BaseObject as InstanceGroupManager; Assert.AreEqual(retrievedInstance?.Name, instanceGroupName); }
public void TestGetGcsObjectMissingError() { const string bucketName = "mock-bucket"; const string objectName = "mock-object"; Mock <ObjectsResource> objects = ServiceMock.Resource(s => s.Objects); objects.SetupRequestError <ObjectsResource, ObjectsResource.GetRequest, Object>( o => o.Get(bucketName, objectName), new GoogleApiException("service-name", "error-message") { HttpStatusCode = HttpStatusCode.NotFound }); Pipeline.Commands.AddScript($"Get-GcsObject -Bucket {bucketName} -ObjectName {objectName}"); Pipeline.Invoke(); TestErrorRecord(ErrorCategory.ResourceUnavailable); }
public void TestGetGcsObjectNamed() { const string bucketName = "mock-bucket"; const string objectName = "mock-object"; var response = new Object { Bucket = bucketName, Name = objectName }; Mock <ObjectsResource> objects = ServiceMock.Resource(s => s.Objects); objects.SetupRequest(o => o.Get(bucketName, objectName), response); Pipeline.Commands.AddScript($"Get-GcsObject -Bucket {bucketName} -ObjectName {objectName}"); Collection <PSObject> results = Pipeline.Invoke(); var result = results.Single().BaseObject as Object; Assert.IsNotNull(result); Assert.AreEqual(bucketName, result.Bucket); Assert.AreEqual(objectName, result.Name); }
public void TestDiskNameParameterSet() { const string diskName = "diskname"; Mock <DisksResource> diskResourceMock = ServiceMock.Resource(s => s.Disks); Mock <DisksResource.CreateSnapshotRequest> requestMock = diskResourceMock.SetupRequest( d => d.CreateSnapshot( It.Is <Snapshot>(s => s.Name.StartsWith(diskName, StringComparison.Ordinal)), FakeProjectId, FakeZoneName, diskName), DoneOperation); var snapshotResult = new Snapshot(); ServiceMock.Resource(s => s.Snapshots).SetupRequest( s => s.Get(It.IsAny <string>(), It.IsAny <string>()), snapshotResult); Pipeline.Commands.AddScript($"Add-GceSnapShot -DiskName {diskName}"); Collection <PSObject> results = Pipeline.Invoke(); CollectionAssert.AreEqual(results, new[] { snapshotResult }); diskResourceMock.VerifyAll(); requestMock.VerifySet(r => r.GuestFlush = It.IsAny <bool>(), Times.Never); }
public void TestErrorAddGceInstance() { const string psDiskVar = "attachedDisk"; Pipeline.Runspace.SessionStateProxy.SetVariable(psDiskVar, new AttachedDisk()); Mock <InstancesResource> instances = ServiceMock.Resource(s => s.Instances); GoogleApiException apiException = new GoogleApiException("mock-service-name", "mock-error-message"); apiException.HttpStatusCode = HttpStatusCode.Conflict; instances.SetupRequestError <InstancesResource, InstancesResource.InsertRequest, Operation>( i => i.Insert(It.IsAny <Instance>(), It.IsAny <string>(), It.IsAny <string>()), apiException); Pipeline.Commands.AddScript( $"Add-GceInstance -Name instance-name -Disk ${psDiskVar}"); Collection <PSObject> results = Pipeline.Invoke(); // An error should be thrown (if it is a terminating error, // we wouldn't even reach this point). TestErrorRecord(ErrorCategory.ResourceExists); }
public void TestRemoveGceManagedInstanceGroupPipelineRegional() { string instanceGroupName = "RegionalInstanceGroup"; InstanceGroupManager regionalInstanceGroup = CreateRegionalInstanceGroup(instanceGroupName, FakeProjectId, FakeRegionName); string managedRegionVar = "managedRegion"; Pipeline.Runspace.SessionStateProxy.SetVariable(managedRegionVar, regionalInstanceGroup); Mock <RegionInstanceGroupManagersResource> instances = ServiceMock.Resource(s => s.RegionInstanceGroupManagers); instances.SetupRequest( item => item.Delete(FakeProjectId, FakeRegionName, instanceGroupName), DoneOperation); Pipeline.Commands.AddScript( $"${managedRegionVar} | Remove-GceManagedInstanceGroup"); Pipeline.Invoke(); instances.VerifyAll(); }
public void TestWaitGceManagedInstanceGroupPipelineZonal() { var listResponse = new InstanceGroupManagersListManagedInstancesResponse() { ManagedInstances = new[] { FirstTestInstance, SecondTestInstance } }; string instanceGroupName = "RegionalInstanceGroup"; string zoneLink = $"{ComputeHttpsLink}/projects/{FakeProjectId}/zones/{FakeZoneName}"; InstanceGroupManager regionalInstanceGroup = new InstanceGroupManager() { Name = instanceGroupName, Zone = zoneLink, SelfLink = $"{zoneLink}/instanceGroupManagers/{instanceGroupName}" }; string managedRegionVar = "managedRegion"; Pipeline.Runspace.SessionStateProxy.SetVariable(managedRegionVar, regionalInstanceGroup); Mock <InstanceGroupManagersResource> instances = ServiceMock.Resource(s => s.InstanceGroupManagers); instances.SetupRequest( item => item.ListManagedInstances(FakeProjectId, FakeZoneName, instanceGroupName), listResponse); Pipeline.Commands.AddScript( $"${managedRegionVar} | Wait-GceManagedInstanceGroup"); Pipeline.Invoke(); instances.VerifyAll(); }
public void TestPipelinesCorrectly() { Mock <ProjectsResource> projects = ServiceMock.Resource(s => s.Projects); Project firstResult = new Project { Name = "FirstProject", ProjectId = "first-project" }; projects.SetupRequest( p => p.List(), Task.FromResult(new ListProjectsResponse() { Projects = new[] { firstResult, new Project { Name = "SecondProject", ProjectId = "second-project" } } })); Pipeline.Commands.AddScript("Get-GcpProject | Select -First 1"); Collection <PSObject> results = Pipeline.Invoke(); Assert.AreEqual(firstResult, results.Single().BaseObject); }