public void WhenNoProjectsLoaded_ThenRootNodeIsEmptyAndProjectPickerOpens() { var projectPicker = new Mock <IProjectPickerDialog>(); projectPicker.Setup(p => p.SelectProjectId(It.IsAny <IWin32Window>())).Returns((string)null); this.serviceRegistry.AddSingleton <IProjectPickerDialog>(projectPicker.Object); this.serviceRegistry.AddMock <IComputeEngineAdapter>(); // Open window. var window = new ProjectExplorerWindow(this.serviceProvider); window.ShowWindow(); PumpWindowMessages(); // Check tree. var rootNode = GetRootNode(window); Assert.IsInstanceOf(typeof(CloudNode), rootNode); Assert.AreEqual(0, rootNode.Nodes.Count); // Check picker projectPicker.Verify(p => p.SelectProjectId(It.IsAny <IWin32Window>()), Times.Once); Assert.IsNull(this.ExceptionShown); }
public void WhenProjectAdded_ThenLinuxInstancesAndInstancesWithoutDiskAreIgnored() { // Add a project. this.serviceProvider.GetService <IProjectRepository>().AddProjectAsync("project-1").Wait(); // Add some instances. var instances = new[] { CreateInstance("windows", "antarctica1-a", true), CreateInstance("linux", "antarctica1-b", false), new Instance() { Id = 1, Name = "nodisk", Zone = "projects/-/zones/antarctica1-a", MachineType = "zones/-/machineTypes/n1-standard-1" } }; // Open window. var computeEngineAdapter = new Mock <IComputeEngineAdapter>(); this.serviceRegistry.AddSingleton <IComputeEngineAdapter>(computeEngineAdapter.Object); computeEngineAdapter .Setup(o => o.ListInstancesAsync("project-1", It.IsAny <CancellationToken>())) .Returns(Task.FromResult <IEnumerable <Instance> >(instances)); var window = new ProjectExplorerWindow(this.serviceProvider); window.ShowWindow(); PumpWindowMessages(); // Check tree. var rootNode = GetRootNode(window); Assert.IsInstanceOf(typeof(CloudNode), rootNode); Assert.AreEqual(1, rootNode.Nodes.Count); var projectNode = (ProjectNode)rootNode.FirstNode; Assert.AreEqual("project-1", projectNode.Text); Assert.AreEqual(1, projectNode.Nodes.Count); var zoneAnode = (ZoneNode)projectNode.FirstNode; Assert.AreEqual("antarctica1-a", zoneAnode.Text); Assert.AreEqual(1, zoneAnode.Nodes.Count); var vmNode = (VmInstanceNode)zoneAnode.FirstNode; Assert.AreEqual(0, vmNode.Nodes.Count); Assert.AreEqual("windows", vmNode.Text); Assert.IsNull(this.ExceptionShown); }
public void WhenProjectAdded_ThenLinuxInstancesAreListed() { // Add a project. this.serviceProvider.GetService <IProjectRepository>().AddProjectAsync("project-1").Wait(); // Add some instances. var instances = new[] { CreateInstance("windows", "antarctica1-a", true), CreateInstance("linux", "antarctica1-b", false) }; // Open window. var computeEngineAdapter = new Mock <IComputeEngineAdapter>(); this.serviceRegistry.AddSingleton <IComputeEngineAdapter>(computeEngineAdapter.Object); computeEngineAdapter .Setup(o => o.ListInstancesAsync("project-1", It.IsAny <CancellationToken>())) .Returns(Task.FromResult <IEnumerable <Instance> >(instances)); var window = new ProjectExplorerWindow(this.serviceProvider); window.ShowWindow(); Delay(TimeSpan.FromMilliseconds(100)); // Check tree. var rootNode = GetRootNode(window); Assert.IsInstanceOf(typeof(CloudNode), rootNode); Assert.AreEqual(1, rootNode.Nodes.Count); var projectNode = (ProjectNode)rootNode.FirstNode; Assert.AreEqual("project-1", projectNode.Text); Assert.AreEqual(2, projectNode.Nodes.Count); var zoneAnode = (ZoneNode)projectNode.FirstNode; Assert.AreEqual("antarctica1-a", zoneAnode.Text); Assert.AreEqual(1, zoneAnode.Nodes.Count); var zoneBnode = (ZoneNode)projectNode.LastNode; Assert.AreEqual("antarctica1-b", zoneBnode.Text); Assert.AreEqual(1, zoneBnode.Nodes.Count); Assert.AreEqual("windows", ((VmInstanceNode)zoneAnode.FirstNode).Text); Assert.AreEqual("linux", ((VmInstanceNode)zoneBnode.FirstNode).Text); Assert.IsNull(this.ExceptionShown); }
public void WhenProjectAdded_ThenWindowsInstancesAreListed() { // Add a project. this.serviceProvider.GetService <ProjectInventoryService>().AddProjectAsync("project-1").Wait(); // Add some instances. var instances = new[] { CreateInstance("instance-1a", "antarctica1-a", true), CreateInstance("instance-1b", "antarctica1-b", true) }; // Open window. var computeEngineAdapter = new Mock <IComputeEngineAdapter>(); this.serviceRegistry.AddSingleton <IComputeEngineAdapter>(computeEngineAdapter.Object); computeEngineAdapter .Setup(o => o.QueryInstancesAsync("project-1")) .Returns(Task.FromResult <IEnumerable <Instance> >(instances)); var window = new ProjectExplorerWindow(this.serviceProvider); window.ShowWindow(); PumpWindowMessages(); // Check tree. var rootNode = GetRootNode(window); Assert.IsInstanceOf(typeof(CloudNode), rootNode); Assert.AreEqual(1, rootNode.Nodes.Count); var projectNode = (ProjectNode)rootNode.FirstNode; Assert.AreEqual("project-1", projectNode.Text); Assert.AreEqual(2, projectNode.Nodes.Count); var zoneAnode = (ZoneNode)projectNode.FirstNode; Assert.AreEqual("antarctica1-a", zoneAnode.Text); Assert.AreEqual(1, zoneAnode.Nodes.Count); var vmNode = (VmInstanceNode)zoneAnode.FirstNode; Assert.AreEqual("instance-1a", vmNode.Text); Assert.AreEqual(0, vmNode.Nodes.Count); Assert.IsNull(this.ExceptionShown); }
public void WhenQueryInstanceFails_ProjectIsShownAsEmpty() { // Add a project. this.serviceProvider.GetService <IProjectRepository>().AddProjectAsync("valid-project").Wait(); this.serviceProvider.GetService <IProjectRepository>().AddProjectAsync("forbidden-project").Wait(); // Add some instances to project-1. var instances = new[] { CreateInstance("windows", "antarctica1-a", true) }; // Open window. var computeEngineAdapter = new Mock <IComputeEngineAdapter>(); this.serviceRegistry.AddSingleton <IComputeEngineAdapter>(computeEngineAdapter.Object); computeEngineAdapter .Setup(o => o.ListInstancesAsync("valid-project", It.IsAny <CancellationToken>())) .Returns(Task.FromResult <IEnumerable <Instance> >(instances)); computeEngineAdapter .Setup(o => o.ListInstancesAsync("forbidden-project", It.IsAny <CancellationToken>())) .Throws(new AdapterException("Access denied or something", null)); var window = new ProjectExplorerWindow(this.serviceProvider); window.ShowWindow(); PumpWindowMessages(); // Check tree. var rootNode = GetRootNode(window); Assert.AreEqual(2, rootNode.Nodes.Cast <ProjectNode>().Count()); var projectNode = rootNode.Nodes.Cast <ProjectNode>() .Where(n => n.ProjectId == "forbidden-project") .FirstOrDefault();; Assert.AreEqual(0, projectNode.Nodes.Count); }