public void Test() { foreach (VM vm in RunTest(GetSingleSelections())) { EnsureChecked(MainWindowWrapper.ViewMenuItems.TemplatesToolStripMenuItem, CheckState.Unchecked); int vbdCount = DbProxy.proxys[vm.Connection].db.Tables["vbd"].Rows.Count; VM colsureVM = vm; bool checkVBDs = true; MW(delegate { MainWindowWrapper.StorageMenuItems.AttachVirtualDiskToolStripMenuItemInStorageMenu.PerformClick(); AttachDiskDialogWrapper attachDiskDialogWrapper = new AttachDiskDialogWrapper(WaitForWindowToAppear("Attach Disk")); attachDiskDialogWrapper.DiskListTreeView.SelectedItem = attachDiskDialogWrapper.DiskListTreeView.Nodes.Find(n => n.Level == 1); if (colsureVM.IsHVM) { Assert.IsFalse(attachDiskDialogWrapper.ReadOnlyCheckBox.Enabled, "ReadOnly Checkbox enabled"); if (attachDiskDialogWrapper.ReadOnlyCheckBox.Checked) { Assert.IsFalse(attachDiskDialogWrapper.OkBtn.Enabled, "OK button of AttachDiskDialog enabled for VM: " + colsureVM.name_label); attachDiskDialogWrapper.CancelBtn.PerformClick(); checkVBDs = false; } else { Assert.IsTrue(attachDiskDialogWrapper.OkBtn.Enabled, "OK button of AttachDiskDialog enabled for VM: " + colsureVM.name_label); attachDiskDialogWrapper.OkBtn.PerformClick(); } } else { if (attachDiskDialogWrapper.ReadOnlyCheckBox.Checked) { Assert.IsFalse(attachDiskDialogWrapper.ReadOnlyCheckBox.Enabled, "ReadOnly Checkbox enabled"); } else { Assert.IsTrue(attachDiskDialogWrapper.ReadOnlyCheckBox.Enabled, "ReadOnly Checkbox enabled"); } Assert.IsTrue(attachDiskDialogWrapper.OkBtn.Enabled, "OK button of AttachDiskDialog enabled for VM: " + colsureVM.name_label); attachDiskDialogWrapper.OkBtn.PerformClick(); } }); Func <bool> finished; if (checkVBDs) { // ensure that the number of VBDs has increased. finished = delegate { return(DbProxy.proxys[vm.Connection].db.Tables["vbd"].Rows.Count == vbdCount + 1); }; } else { finished = delegate { return(DbProxy.proxys[vm.Connection].db.Tables["vbd"].Rows.Count == vbdCount); }; } // wait until command finished. MWWaitFor(finished, "AttachVirtualDiskCommandTest tried to check VBD count but couldn't finish."); } }
public void Test() { foreach (VM vm in RunTest(GetSingleSelections())) { EnsureChecked(MainWindowWrapper.ViewMenuItems.TemplatesToolStripMenuItem, CheckState.Unchecked); int vbdCount = DbProxy.proxys[vm.Connection].db.Tables["vbd"].Rows.Count; VM colsureVM = vm; bool checkVBDs = true; MW(delegate { MainWindowWrapper.StorageMenuItems.AttachVirtualDiskToolStripMenuItemInStorageMenu.PerformClick(); AttachDiskDialogWrapper attachDiskDialogWrapper = new AttachDiskDialogWrapper(WaitForWindowToAppear("Attach Disk")); attachDiskDialogWrapper.DiskListTreeView.SelectedItem = attachDiskDialogWrapper.DiskListTreeView.Nodes.Find(n => n.Level == 1); if (colsureVM.IsHVM) { Assert.IsFalse(attachDiskDialogWrapper.ReadOnlyCheckBox.Enabled, "ReadOnly Checkbox enabled"); if (attachDiskDialogWrapper.ReadOnlyCheckBox.Checked) { Assert.IsFalse(attachDiskDialogWrapper.OkBtn.Enabled, "OK button of AttachDiskDialog enabled for VM: " + colsureVM.name_label); attachDiskDialogWrapper.CancelBtn.PerformClick(); checkVBDs = false; } else { Assert.IsTrue(attachDiskDialogWrapper.OkBtn.Enabled, "OK button of AttachDiskDialog enabled for VM: " + colsureVM.name_label); attachDiskDialogWrapper.OkBtn.PerformClick(); } } else { if (attachDiskDialogWrapper.ReadOnlyCheckBox.Checked) Assert.IsFalse(attachDiskDialogWrapper.ReadOnlyCheckBox.Enabled, "ReadOnly Checkbox enabled"); else Assert.IsTrue(attachDiskDialogWrapper.ReadOnlyCheckBox.Enabled, "ReadOnly Checkbox enabled"); Assert.IsTrue(attachDiskDialogWrapper.OkBtn.Enabled, "OK button of AttachDiskDialog enabled for VM: " + colsureVM.name_label); attachDiskDialogWrapper.OkBtn.PerformClick(); } }); Func<bool> finished; if(checkVBDs) { // ensure that the number of VBDs has increased. finished = delegate { return DbProxy.proxys[vm.Connection].db.Tables["vbd"].Rows.Count == vbdCount + 1; }; } else { finished = delegate { return DbProxy.proxys[vm.Connection].db.Tables["vbd"].Rows.Count == vbdCount; }; } // wait until command finished. MWWaitFor(finished, "AttachVirtualDiskCommandTest tried to check VBD count but couldn't finish."); } }