<?php
namespace Magento\AcceptanceTest\_default\Backend;

use Magento\FunctionalTestingFramework\AcceptanceTester;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
use Yandex\Allure\Adapter\Annotation\Title;
use Yandex\Allure\Adapter\Annotation\Description;
use Yandex\Allure\Adapter\Annotation\Parameter;
use Yandex\Allure\Adapter\Annotation\Severity;
use Yandex\Allure\Adapter\Model\SeverityLevel;
use Yandex\Allure\Adapter\Annotation\TestCaseId;

/**
 * @group functional
 * @Description("<h3>Test files</h3>verification/TestModule/Test/ActionGroupFunctionalTest/MergedActionGroupTest.xml<br>")
 */
class MergedActionGroupTestCest
{
	/**
	  * @param AcceptanceTester $I
	  * @throws \Exception
	  */
	public function _before(AcceptanceTester $I)
	{
		$I->createEntity("createPersonParam", "hook", "ReplacementPerson", [], []); // stepKey: createPersonParam
		$I->comment("Entering Action Group [beforeGroup] FunctionalActionGroup");
		$I->fillField("#foo", "myData1"); // stepKey: fillField1BeforeGroup
		$I->fillField("#bar", "myData2"); // stepKey: fillField2BeforeGroup
		$I->comment("Exiting Action Group [beforeGroup] FunctionalActionGroup");
	}

	/**
	  * @param AcceptanceTester $I
	  * @throws \Exception
	  */
	public function _after(AcceptanceTester $I)
	{
		$I->comment("Entering Action Group [afterGroup] FunctionalActionGroup");
		$I->fillField("#foo", "myData1"); // stepKey: fillField1AfterGroup
		$I->fillField("#bar", "myData2"); // stepKey: fillField2AfterGroup
		$I->comment("Exiting Action Group [afterGroup] FunctionalActionGroup");
	}

	/**
	  * @param AcceptanceTester $I
	  * @throws \Exception
	  */
	public function _failed(AcceptanceTester $I)
	{
		$I->saveScreenshot(); // stepKey: saveScreenshot
	}

	/**
	 * @Severity(level = SeverityLevel::CRITICAL)
	 * @Features({"TestModule"})
	 * @Stories({"MQE-433"})
	 * @Parameter(name = "AcceptanceTester", value="$I")
	 * @param AcceptanceTester $I
	 * @return void
	 * @throws \Exception
	 */
	public function MergedActionGroupTest(AcceptanceTester $I)
	{
		$I->comment("Entering Action Group [actionGroupForMerge] FunctionalActionGroupForMerge");
		$I->see(".merge .Jane"); // stepKey: myMergedSeeElementActionGroupForMerge
		$I->see("#element .Jane"); // stepKey: see1ActionGroupForMerge
		$I->amOnPage("/Jane/Dane.html"); // stepKey: amOnPage1ActionGroupForMerge
		$I->click(".merge .Dane"); // stepKey: myMergedClickActionGroupForMerge
		$I->comment("Exiting Action Group [actionGroupForMerge] FunctionalActionGroupForMerge");
	}
}