Доделал тесты
This commit is contained in:
parent
3eff31e7b3
commit
2f7e26689d
191
EmployeeManagmentTests/UI/EmployeeWindowTests.cs
Normal file
191
EmployeeManagmentTests/UI/EmployeeWindowTests.cs
Normal file
@ -0,0 +1,191 @@
|
||||
using EmployeeManagmentView.PhysicalPerson;
|
||||
using FlaUI.Core;
|
||||
using FlaUI.Core.AutomationElements;
|
||||
using FlaUI.UIA3;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit;
|
||||
|
||||
namespace EmployeeManagmentTests.UI
|
||||
{
|
||||
[Collection("Sequential")]
|
||||
public class EmployeeWindowTests
|
||||
{
|
||||
private readonly Application _application;
|
||||
private readonly AutomationBase _automation;
|
||||
|
||||
public EmployeeWindowTests()
|
||||
{
|
||||
_automation = new UIA3Automation();
|
||||
_application = Application.Launch("C:\\Users\\kashi\\Desktop\\Univer\\7\\КПО\\Project\\EmployeeManagmentView\\bin\\Debug\\net8.0-windows\\EmployeeManagmentView.exe");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenAddEmployeeManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var employeeButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с сотрудниками")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(employeeButton.IsEnabled, "Работа с сотрудниками");
|
||||
employeeButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var employeeManagementWindow = WaitForWindow("Управление сотрудниками");
|
||||
Assert.NotNull(employeeManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(employeeManagementWindow.IsEnabled, "Управление сотрудниками");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(employeeButton.IsEnabled, "Добавление сотрудника");
|
||||
employeeButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var employeeAddWindow = WaitForWindow("Добавление сотрудника");
|
||||
Assert.NotNull(employeeManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(employeeManagementWindow.IsEnabled, "Добавление сотрудника");
|
||||
|
||||
// Закрытие окон
|
||||
employeeManagementWindow?.Close();
|
||||
employeeAddWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenDeleteEmployeeManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var employeeButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с сотрудниками")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(employeeButton.IsEnabled, "Работа с сотрудниками");
|
||||
employeeButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var employeeManagementWindow = WaitForWindow("Управление сотрудниками");
|
||||
Assert.NotNull(employeeManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(employeeManagementWindow.IsEnabled, "Управление сотрудниками");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(employeeButton.IsEnabled, "Удаление сотрудников");
|
||||
employeeButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var employeeAddWindow = WaitForWindow("Удаление сотрудников");
|
||||
Assert.NotNull(employeeManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(employeeManagementWindow.IsEnabled, "Удаление сотрудников");
|
||||
|
||||
// Закрытие окон
|
||||
employeeManagementWindow?.Close();
|
||||
employeeAddWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenEditEmployeeManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var employeeButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с сотрудниками")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(employeeButton.IsEnabled, "Работа с сотрудниками");
|
||||
employeeButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var employeeManagementWindow = WaitForWindow("Управление сотрудниками");
|
||||
Assert.NotNull(employeeManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(employeeManagementWindow.IsEnabled, "Управление сотрудниками");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(employeeButton.IsEnabled, "Редактирование сотрудника");
|
||||
employeeButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var employeeAddWindow = WaitForWindow("Редактирование сотрудника");
|
||||
Assert.NotNull(employeeManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(employeeManagementWindow.IsEnabled, "Редактирование сотрудника");
|
||||
|
||||
// Закрытие окон
|
||||
employeeManagementWindow?.Close();
|
||||
employeeAddWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenViewEmployeeManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var employeeButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с сотрудниками")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(employeeButton.IsEnabled, "Работа с сотрудниками");
|
||||
employeeButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var employeeManagementWindow = WaitForWindow("Управление сотрудниками");
|
||||
Assert.NotNull(employeeManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(employeeManagementWindow.IsEnabled, "Управление сотрудниками");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(employeeButton.IsEnabled, "Просмотр сотрудников");
|
||||
employeeButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var employeeAddWindow = WaitForWindow("Просмотр сотрудников");
|
||||
Assert.NotNull(employeeManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(employeeManagementWindow.IsEnabled, "Просмотр сотрудников");
|
||||
|
||||
// Закрытие окон
|
||||
employeeManagementWindow?.Close();
|
||||
employeeAddWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private Window WaitForWindow(string windowTitle, int timeout = 10000) // Увеличен таймаут
|
||||
{
|
||||
var startTime = DateTime.Now;
|
||||
while ((DateTime.Now - startTime).TotalMilliseconds < timeout)
|
||||
{
|
||||
var window = _application.GetAllTopLevelWindows(_automation)
|
||||
.FirstOrDefault(w => w.Title.Contains(windowTitle));
|
||||
if (window != null && window.IsEnabled)
|
||||
{
|
||||
return window;
|
||||
}
|
||||
Thread.Sleep(200); // Увеличена пауза между попытками
|
||||
}
|
||||
return null; // Если окно не найдено в пределах тайм-аута
|
||||
}
|
||||
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_application.Close();
|
||||
_automation.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
@ -6,6 +6,8 @@ using FlaUI.UIA3;
|
||||
using Xunit;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using EmployeeManagmentView.PhysicalPerson;
|
||||
using EmployeeManagmentView.Employee;
|
||||
|
||||
namespace EmployeeManagmentTests.UI
|
||||
{
|
||||
@ -21,6 +23,8 @@ namespace EmployeeManagmentTests.UI
|
||||
_application = Application.Launch("C:\\Users\\kashi\\Desktop\\Univer\\7\\КПО\\Project\\EmployeeManagmentView\\bin\\Debug\\net8.0-windows\\EmployeeManagmentView.exe");
|
||||
}
|
||||
|
||||
|
||||
|
||||
[Fact]
|
||||
public void TestOpenEmployeeManagementWindow()
|
||||
{
|
||||
@ -37,6 +41,10 @@ namespace EmployeeManagmentTests.UI
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(employeeManagementWindow.IsEnabled, "Управление сотрудниками");
|
||||
|
||||
// Закрытие окон
|
||||
mainWindow?.Close();
|
||||
employeeManagementWindow?.Close();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@ -55,8 +63,15 @@ namespace EmployeeManagmentTests.UI
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(physicalPersonManagementWindow.IsEnabled, "Управление физическими лицами");
|
||||
|
||||
|
||||
// Закрытие окон
|
||||
mainWindow?.Close();
|
||||
physicalPersonManagementWindow?.Close();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private Window WaitForWindow(string windowTitle, int timeout = 10000) // Увеличен таймаут
|
||||
{
|
||||
var startTime = DateTime.Now;
|
||||
|
188
EmployeeManagmentTests/UI/PhysicalPersonWindowTests.cs
Normal file
188
EmployeeManagmentTests/UI/PhysicalPersonWindowTests.cs
Normal file
@ -0,0 +1,188 @@
|
||||
using EmployeeManagmentView.Employee;
|
||||
using FlaUI.Core;
|
||||
using FlaUI.Core.AutomationElements;
|
||||
using FlaUI.UIA3;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit;
|
||||
|
||||
namespace EmployeeManagmentTests.UI
|
||||
{
|
||||
[Collection("Sequential")]
|
||||
public class PhysicalPersonWindowTests
|
||||
{
|
||||
private readonly Application _application;
|
||||
private readonly AutomationBase _automation;
|
||||
|
||||
public PhysicalPersonWindowTests()
|
||||
{
|
||||
_automation = new UIA3Automation();
|
||||
_application = Application.Launch("C:\\Users\\kashi\\Desktop\\Univer\\7\\КПО\\Project\\EmployeeManagmentView\\bin\\Debug\\net8.0-windows\\EmployeeManagmentView.exe");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenAddPhysicalPersonManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var physicalPersonButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с физ. лицами")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(physicalPersonButton.IsEnabled, "Работа с физ. лицами");
|
||||
physicalPersonButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var physicalPersonManagementWindow = WaitForWindow("Управление физическими лицами");
|
||||
Assert.NotNull(physicalPersonManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(physicalPersonManagementWindow.IsEnabled, "Управление физическими лицами");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(physicalPersonButton.IsEnabled, "Добавление физического лица");
|
||||
physicalPersonButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var physicalPersonAddWindow = WaitForWindow("Добавление физического лица");
|
||||
Assert.NotNull(physicalPersonManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(physicalPersonManagementWindow.IsEnabled, "Добавление физического лица");
|
||||
|
||||
// Закрытие окон
|
||||
physicalPersonAddWindow?.Close();
|
||||
physicalPersonManagementWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenDeletePhysicalPersonManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var physicalPersonButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с физ. лицами")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(physicalPersonButton.IsEnabled, "Работа с физ. лицами");
|
||||
physicalPersonButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var physicalPersonManagementWindow = WaitForWindow("Управление физическими лицами");
|
||||
Assert.NotNull(physicalPersonManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(physicalPersonManagementWindow.IsEnabled, "Управление физическими лицами");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(physicalPersonButton.IsEnabled, "Удаление физического лица");
|
||||
physicalPersonButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var physicalPersonAddWindow = WaitForWindow("Удаление физического лица");
|
||||
Assert.NotNull(physicalPersonManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(physicalPersonManagementWindow.IsEnabled, "Удаление физического лица");
|
||||
|
||||
// Закрытие окон
|
||||
physicalPersonAddWindow?.Close();
|
||||
physicalPersonManagementWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenEditPhysicalPersonManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var physicalPersonButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с физ. лицами")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(physicalPersonButton.IsEnabled, "Работа с физ. лицами");
|
||||
physicalPersonButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var physicalPersonManagementWindow = WaitForWindow("Управление физическими лицами");
|
||||
Assert.NotNull(physicalPersonManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(physicalPersonManagementWindow.IsEnabled, "Управление физическими лицами");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(physicalPersonButton.IsEnabled, "Редактирование физического лица");
|
||||
physicalPersonButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var physicalPersonAddWindow = WaitForWindow("Редактирование физического лица");
|
||||
Assert.NotNull(physicalPersonManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(physicalPersonManagementWindow.IsEnabled, "Редактирование физического лица");
|
||||
|
||||
// Закрытие окон
|
||||
physicalPersonAddWindow?.Close();
|
||||
physicalPersonManagementWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenViewPhysicalPersonManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var physicalPersonButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с физ. лицами")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(physicalPersonButton.IsEnabled, "Работа с физ. лицами");
|
||||
physicalPersonButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var physicalPersonManagementWindow = WaitForWindow("Управление физическими лицами");
|
||||
Assert.NotNull(physicalPersonManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(physicalPersonManagementWindow.IsEnabled, "Управление физическими лицами");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(physicalPersonButton.IsEnabled, "Просмотр физического лица");
|
||||
physicalPersonButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var physicalPersonAddWindow = WaitForWindow("Просмотр физического лица");
|
||||
Assert.NotNull(physicalPersonManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(physicalPersonManagementWindow.IsEnabled, "Просмотр физического лица");
|
||||
|
||||
// Закрытие окон
|
||||
physicalPersonAddWindow?.Close();
|
||||
physicalPersonManagementWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private Window WaitForWindow(string windowTitle, int timeout = 10000) // Увеличен таймаут
|
||||
{
|
||||
var startTime = DateTime.Now;
|
||||
while ((DateTime.Now - startTime).TotalMilliseconds < timeout)
|
||||
{
|
||||
var window = _application.GetAllTopLevelWindows(_automation)
|
||||
.FirstOrDefault(w => w.Title.Contains(windowTitle));
|
||||
if (window != null && window.IsEnabled)
|
||||
{
|
||||
return window;
|
||||
}
|
||||
Thread.Sleep(200); // Увеличена пауза между попытками
|
||||
}
|
||||
return null; // Если окно не найдено в пределах тайм-аута
|
||||
}
|
||||
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_application.Close();
|
||||
_automation.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
306
EmployeeManagmentTests/UI/SalaryWindowTests.cs
Normal file
306
EmployeeManagmentTests/UI/SalaryWindowTests.cs
Normal file
@ -0,0 +1,306 @@
|
||||
using FlaUI.Core;
|
||||
using FlaUI.Core.AutomationElements;
|
||||
using FlaUI.UIA3;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit;
|
||||
|
||||
namespace EmployeeManagmentTests.UI
|
||||
{
|
||||
public class SalaryWindowTests
|
||||
{
|
||||
private readonly Application _application;
|
||||
private readonly AutomationBase _automation;
|
||||
|
||||
public SalaryWindowTests()
|
||||
{
|
||||
_automation = new UIA3Automation();
|
||||
_application = Application.Launch("C:\\Users\\kashi\\Desktop\\Univer\\7\\КПО\\Project\\EmployeeManagmentView\\bin\\Debug\\net8.0-windows\\EmployeeManagmentView.exe");
|
||||
}
|
||||
|
||||
|
||||
[Fact]
|
||||
public void TestOpenViewSalaryManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var salaryButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с сотрудниками")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Работа с сотрудниками");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var salaryManagementWindow = WaitForWindow("Управление сотрудниками");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Управление сотрудниками");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Просмотр сотрудников");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var salaryAddWindow = WaitForWindow("Просмотр сотрудников");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Просмотр сотрудников");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Работа с зарплатой");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var salaryManagmentWindow = WaitForWindow("Управление зарплатой");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Управление зарплатой");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Просмотр зарплат");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var salaryCrudWindow = WaitForWindow("Список зарплат");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Список зарплат");
|
||||
|
||||
|
||||
// Закрытие окон
|
||||
salaryManagementWindow?.Close();
|
||||
salaryAddWindow?.Close();
|
||||
salaryManagmentWindow?.Close();
|
||||
salaryCrudWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenEditSalaryManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var salaryButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с сотрудниками")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Работа с сотрудниками");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var salaryManagementWindow = WaitForWindow("Управление сотрудниками");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Управление сотрудниками");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Просмотр сотрудников");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var salaryAddWindow = WaitForWindow("Просмотр сотрудников");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Просмотр сотрудников");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Работа с зарплатой");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var salaryManagmentWindow = WaitForWindow("Управление зарплатой");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Управление зарплатой");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Редактирование зарплат");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var salaryCrudWindow = WaitForWindow("Редактирование зарплат");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Редактирование зарплат");
|
||||
|
||||
|
||||
// Закрытие окон
|
||||
salaryManagementWindow?.Close();
|
||||
salaryAddWindow?.Close();
|
||||
salaryManagmentWindow?.Close();
|
||||
salaryCrudWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenDeleteSalaryManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var salaryButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с сотрудниками")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Работа с сотрудниками");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var salaryManagementWindow = WaitForWindow("Управление сотрудниками");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Управление сотрудниками");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Просмотр сотрудников");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var salaryAddWindow = WaitForWindow("Просмотр сотрудников");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Просмотр сотрудников");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Работа с зарплатой");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var salaryManagmentWindow = WaitForWindow("Управление зарплатой");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Управление зарплатой");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Удаление зарплат");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var salaryCrudWindow = WaitForWindow("Удаление зарплат");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Удаление зарплат");
|
||||
|
||||
|
||||
// Закрытие окон
|
||||
salaryManagementWindow?.Close();
|
||||
salaryAddWindow?.Close();
|
||||
salaryManagmentWindow?.Close();
|
||||
salaryCrudWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenAddSalaryManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var salaryButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с сотрудниками")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Работа с сотрудниками");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var salaryManagementWindow = WaitForWindow("Управление сотрудниками");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Управление сотрудниками");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Просмотр сотрудников");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var salaryAddWindow = WaitForWindow("Просмотр сотрудников");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Просмотр сотрудников");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Работа с зарплатой");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var salaryManagmentWindow = WaitForWindow("Управление зарплатой");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Управление зарплатой");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(salaryButton.IsEnabled, "Добавление зарплаты");
|
||||
salaryButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var salaryCrudWindow = WaitForWindow("Добавление зарплаты");
|
||||
Assert.NotNull(salaryManagementWindow);
|
||||
Thread.Sleep(100);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(salaryManagementWindow.IsEnabled, "Добавление зарплаты");
|
||||
|
||||
|
||||
// Закрытие окон
|
||||
salaryManagementWindow?.Close();
|
||||
salaryAddWindow?.Close();
|
||||
salaryManagmentWindow?.Close();
|
||||
salaryCrudWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private Window WaitForWindow(string windowTitle, int timeout = 10000) // Увеличен таймаут
|
||||
{
|
||||
var startTime = DateTime.Now;
|
||||
while ((DateTime.Now - startTime).TotalMilliseconds < timeout)
|
||||
{
|
||||
var window = _application.GetAllTopLevelWindows(_automation)
|
||||
.FirstOrDefault(w => w.Title.Contains(windowTitle));
|
||||
if (window != null && window.IsEnabled)
|
||||
{
|
||||
return window;
|
||||
}
|
||||
Thread.Sleep(200); // Увеличена пауза между попытками
|
||||
}
|
||||
return null; // Если окно не найдено в пределах тайм-аута
|
||||
}
|
||||
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_application.Close();
|
||||
_automation.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
283
EmployeeManagmentTests/UI/VacationWindowTests.cs
Normal file
283
EmployeeManagmentTests/UI/VacationWindowTests.cs
Normal file
@ -0,0 +1,283 @@
|
||||
using FlaUI.Core;
|
||||
using FlaUI.Core.AutomationElements;
|
||||
using FlaUI.UIA3;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit;
|
||||
|
||||
namespace EmployeeManagmentTests.UI
|
||||
{
|
||||
[Collection("Sequential")]
|
||||
public class VacationWindowTests
|
||||
{
|
||||
private readonly Application _application;
|
||||
private readonly AutomationBase _automation;
|
||||
|
||||
public VacationWindowTests()
|
||||
{
|
||||
_automation = new UIA3Automation();
|
||||
_application = Application.Launch("C:\\Users\\kashi\\Desktop\\Univer\\7\\КПО\\Project\\EmployeeManagmentView\\bin\\Debug\\net8.0-windows\\EmployeeManagmentView.exe");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenViewVacationManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var vacationButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с сотрудниками")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Работа с сотрудниками");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var vacationManagementWindow = WaitForWindow("Управление сотрудниками");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Управление сотрудниками");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Просмотр сотрудников");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var vacationAddWindow = WaitForWindow("Просмотр сотрудников");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Просмотр сотрудников");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Работа с отпусками");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var vacationManagmentWindow = WaitForWindow("Управление отпуском");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Управление отпуском");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Просмотр отпусков");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var vacationCrudWindow = WaitForWindow("Список отпусков сотрудников");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Список отпусков сотрудников");
|
||||
|
||||
|
||||
// Закрытие окон
|
||||
vacationManagementWindow?.Close();
|
||||
vacationAddWindow?.Close();
|
||||
vacationManagmentWindow?.Close();
|
||||
vacationCrudWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenEditVacationManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var vacationButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с сотрудниками")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Работа с сотрудниками");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var vacationManagementWindow = WaitForWindow("Управление сотрудниками");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Управление сотрудниками");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Просмотр сотрудников");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var vacationAddWindow = WaitForWindow("Просмотр сотрудников");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Просмотр сотрудников");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Работа с отпусками");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var vacationManagmentWindow = WaitForWindow("Управление отпуском");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Управление отпуском");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Редактирование отпуска");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var vacationCrudWindow = WaitForWindow("Редактирование отпуска");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Редактирование отпуска");
|
||||
|
||||
|
||||
// Закрытие окон
|
||||
vacationManagementWindow?.Close();
|
||||
vacationAddWindow?.Close();
|
||||
vacationManagmentWindow?.Close();
|
||||
vacationCrudWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenDeleteVacationManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var vacationButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с сотрудниками")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Работа с сотрудниками");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var vacationManagementWindow = WaitForWindow("Управление сотрудниками");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Управление сотрудниками");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Просмотр сотрудников");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var vacationAddWindow = WaitForWindow("Просмотр сотрудников");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Просмотр сотрудников");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Работа с отпусками");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var vacationManagmentWindow = WaitForWindow("Управление отпуском");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Управление зарплатой");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Удаление отпуска");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var vacationCrudWindow = WaitForWindow("Удаление отпуска");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Удаление отпуска");
|
||||
|
||||
|
||||
// Закрытие окон
|
||||
vacationManagementWindow?.Close();
|
||||
vacationAddWindow?.Close();
|
||||
vacationManagmentWindow?.Close();
|
||||
vacationCrudWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestOpenAddVacationManagementWindow()
|
||||
{
|
||||
var mainWindow = _application.GetMainWindow(_automation);
|
||||
var vacationButton = mainWindow.FindFirstDescendant(cf => cf.ByText("Работа с сотрудниками")).AsButton();
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Работа с сотрудниками");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Работа с физ. лицами" с тайм-аутом
|
||||
var vacationManagementWindow = WaitForWindow("Управление сотрудниками");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Управление сотрудниками");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Просмотр сотрудников");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var vacationAddWindow = WaitForWindow("Просмотр сотрудников");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Просмотр сотрудников");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Работа с отпусками");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var vacationManagmentWindow = WaitForWindow("Управление отпуском");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Управление отпуском");
|
||||
|
||||
// Проверяем, что кнопка доступна и выполняем клик
|
||||
Assert.True(vacationButton.IsEnabled, "Добавление отпуска");
|
||||
vacationButton.Invoke();
|
||||
|
||||
// Ждем появления окна "Добавление физ.лица" с тайм-аутом
|
||||
var vacationCrudWindow = WaitForWindow("Добавление отпуска");
|
||||
Assert.NotNull(vacationManagementWindow);
|
||||
|
||||
// Проверяем, что окно доступно и готово к взаимодействию
|
||||
Assert.True(vacationManagementWindow.IsEnabled, "Добавление отпуска");
|
||||
|
||||
|
||||
// Закрытие окон
|
||||
vacationManagementWindow?.Close();
|
||||
vacationAddWindow?.Close();
|
||||
vacationManagmentWindow?.Close();
|
||||
vacationCrudWindow?.Close();
|
||||
mainWindow?.Close();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private Window WaitForWindow(string windowTitle, int timeout = 10000) // Увеличен таймаут
|
||||
{
|
||||
var startTime = DateTime.Now;
|
||||
while ((DateTime.Now - startTime).TotalMilliseconds < timeout)
|
||||
{
|
||||
var window = _application.GetAllTopLevelWindows(_automation)
|
||||
.FirstOrDefault(w => w.Title.Contains(windowTitle));
|
||||
if (window != null && window.IsEnabled)
|
||||
{
|
||||
return window;
|
||||
}
|
||||
Thread.Sleep(200); // Увеличена пауза между попытками
|
||||
}
|
||||
return null; // Если окно не найдено в пределах тайм-аута
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Windows;
|
||||
|
||||
[assembly: ThemeInfo(
|
||||
@ -8,3 +9,6 @@ using System.Windows;
|
||||
//(used if a resource is not found in the page,
|
||||
// app, or any theme specific resource dictionaries)
|
||||
)]
|
||||
|
||||
[assembly: InternalsVisibleTo("EmployeeManagmentTests")]
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:EmployeeManagmentDataModels.Enums;assembly=EmployeeManagmentDataModels"
|
||||
Title="Управление зарплатами"
|
||||
Title="Удаление зарплат"
|
||||
Height="600" Width="800"
|
||||
ResizeMode="NoResize"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
|
@ -2,7 +2,7 @@
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:EmployeeManagmentDataModels.Enums;assembly=EmployeeManagmentDataModels"
|
||||
Title="Управление зарплатами"
|
||||
Title="Список зарплат"
|
||||
Height="600" Width="800"
|
||||
ResizeMode="NoResize"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
|
@ -2,7 +2,7 @@
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:EmployeeManagmentDataModels.Enums;assembly=EmployeeManagmentDataModels"
|
||||
Title="Управление отпусками"
|
||||
Title="Удаление отпуска"
|
||||
Height="600" Width="800"
|
||||
ResizeMode="NoResize"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
|
@ -1,7 +1,7 @@
|
||||
<Window x:Class="EmployeeManagmentView.Employee.ViewEmployeeWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="Удаление сотрудников"
|
||||
Title="Просмотр сотрудников"
|
||||
Height="500" Width="800"
|
||||
ResizeMode="NoResize"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
@ -9,7 +9,7 @@
|
||||
|
||||
<Grid>
|
||||
<!-- Заголовок окна -->
|
||||
<TextBlock Text="Список сотрудников для удаления"
|
||||
<TextBlock Text="Список сотрудников"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Top"
|
||||
FontSize="18" FontWeight="Bold"
|
||||
Foreground="White"
|
||||
|
@ -25,6 +25,10 @@ namespace EmployeeManagmentView
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public MainWindow()
|
||||
{
|
||||
}
|
||||
|
||||
public void OpenPhysicalPersonManagementWindow(object sender, RoutedEventArgs e)
|
||||
{
|
||||
foreach (Window window in Application.Current.Windows)
|
||||
|
@ -30,7 +30,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
Margin="0,0,0,10"
|
||||
Style="{StaticResource RoundedButtonStyle}"
|
||||
Background="#004890" Foreground="#FFFFFF"
|
||||
Click="OpenAddPhysicalPersonWindow"/>
|
||||
Click="OpenAddPhysicalPersonWindow" RenderTransformOrigin="0.402,0.626"/>
|
||||
|
||||
<!-- Кнопка "Редактирование физического лица" -->
|
||||
<Button Content="Редактирование физического лица"
|
||||
|
Loading…
Reference in New Issue
Block a user