| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- namespace Tests.E2e.PageObjectModels;
- using Microsoft.Playwright;
- public class PortsPom(IPage page) {
- public TagsPom Tags => new(page);
- public LabelsPom Labels => new(page);
- public PortsPom Ports => new(page);
- private const string _portsPrefix = "accesspoint-ports";
- // -------------------------------------------------
- // Root
- // -------------------------------------------------
- public ILocator Root(string testIdPrefix)
- => page.GetByTestId($"{testIdPrefix}-port-group-section");
- public ILocator AddButton(string testIdPrefix)
- => page.GetByTestId($"{testIdPrefix}-port-group-add");
- // -------------------------------------------------
- // Port Groups
- // -------------------------------------------------
- public ILocator PortGroup(string testIdPrefix, int index)
- => page.GetByTestId($"{testIdPrefix}-port-group-item-{index}");
- public ILocator EditPortGroupButton(string testIdPrefix, int index)
- => page.GetByTestId($"{testIdPrefix}-port-group-edit-{index}");
- public ILocator PortsContainer(string testIdPrefix, int index)
- => page.GetByTestId($"{testIdPrefix}-port-group-ports-{index}");
- // -------------------------------------------------
- // Individual Ports
- // -------------------------------------------------
- public ILocator Port(string testIdPrefix, int groupIndex, int portIndex)
- => page.GetByTestId($"{testIdPrefix}-port-group-visualizer-{groupIndex}-port-{portIndex}");
- // -------------------------------------------------
- // Port Modal
- // -------------------------------------------------
- public ILocator PortModal(string testIdPrefix)
- => page.GetByTestId($"{testIdPrefix}-port-group-port-modal");
- // -------------------------------------------------
- // Connection Modal
- // -------------------------------------------------
- public ILocator ConnectionModal(string testIdPrefix)
- => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-container");
- public ILocator ResourceASelect(string testIdPrefix)
- => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-resource-a");
- public ILocator GroupASelect(string testIdPrefix)
- => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-group-a");
- public ILocator PortASelect(string testIdPrefix)
- => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-port-a");
- public ILocator ResourceBSelect(string testIdPrefix)
- => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-resource-b");
- public ILocator GroupBSelect(string testIdPrefix)
- => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-group-b");
- public ILocator PortBSelect(string testIdPrefix)
- => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-port-b");
- public ILocator SubmitConnection(string testIdPrefix)
- => page.GetByTestId($"{testIdPrefix}-port-group-connection-modal-submit");
- // -------------------------------------------------
- // Assertions
- // -------------------------------------------------
- public async Task AssertPortGroupVisibleAsync(string prefix, int index)
- => await Assertions.Expect(PortGroup(prefix, index)).ToBeVisibleAsync();
- public async Task AssertPortVisibleAsync(string prefix, int groupIndex, int portIndex)
- => await Assertions.Expect(Port(prefix, groupIndex, portIndex)).ToBeVisibleAsync();
- // -------------------------------------------------
- // Actions
- // -------------------------------------------------
- public async Task AddPortGroupAsync(string prefix) {
- await AddButton(prefix).ClickAsync();
- await Assertions.Expect(PortModal(prefix)).ToBeVisibleAsync();
- }
- public async Task OpenConnectionFromPortAsync(string prefix, int groupIndex, int portIndex) {
- await Port(prefix, groupIndex, portIndex).ClickAsync();
- await Assertions.Expect(ConnectionModal(prefix)).ToBeVisibleAsync();
- }
- public async Task CreateConnectionAsync(
- string prefix,
- string resourceA,
- string groupA,
- string portA,
- string resourceB,
- string groupB,
- string portB) {
- await ResourceASelect(prefix).SelectOptionAsync(
- new SelectOptionValue { Label = resourceA });
- await GroupASelect(prefix).SelectOptionAsync(
- new SelectOptionValue { Label = groupA });
- await PortASelect(prefix).SelectOptionAsync(
- new SelectOptionValue { Label = portA });
- await ResourceBSelect(prefix).SelectOptionAsync(
- new SelectOptionValue { Label = resourceB });
- await GroupBSelect(prefix).SelectOptionAsync(
- new SelectOptionValue { Label = groupB });
- await PortBSelect(prefix).SelectOptionAsync(
- new SelectOptionValue { Label = portB });
- await SubmitConnection(prefix).ClickAsync();
- }
- // -------------------------------------------------
- // Port Modal Fields
- // -------------------------------------------------
- public ILocator PortTypeSelect(string prefix)
- => page.GetByTestId($"{prefix}-port-group-port-modal-type-input");
- public ILocator PortSpeedSelect(string prefix)
- => page.GetByTestId($"{prefix}-port-group-port-modal-speed-input");
- public ILocator PortCountInput(string prefix)
- => page.GetByTestId($"{prefix}-port-group-port-modal-count-input");
- public ILocator PortSubmit(string prefix)
- => page.GetByTestId($"{prefix}-port-group-port-modal-submit");
- public ILocator PortCancel(string prefix)
- => page.GetByTestId($"{prefix}-port-group-port-modal-cancel");
- public async Task AddPortGroupAsync(
- string prefix,
- string type,
- string speed,
- int count) {
- await AddButton(prefix).ClickAsync();
- await Assertions.Expect(PortModal(prefix)).ToBeVisibleAsync();
- await PortTypeSelect(prefix).SelectOptionAsync(
- new SelectOptionValue { Label = type });
- await PortSpeedSelect(prefix).FillAsync(speed.ToString());
- await PortCountInput(prefix).FillAsync(count.ToString());
- await PortSubmit(prefix).ClickAsync();
- }
- }
|