package com.evolveum.midpoint.testing.selenide.tests.organization; import com.evolveum.midpoint.testing.selenide.tests.AbstractSelenideTest; import org.openqa.selenium.By; import org.testng.annotations.Test; import java.util.HashMap; import static com.codeborne.selenide.Condition.text; import static com.codeborne.selenide.Condition.visible; import static com.codeborne.selenide.Selectors.byAttribute; import static com.codeborne.selenide.Selectors.byText; import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.close; /** * Created by Kate on 17.08.2015. */ public class OrganizationStructureTests extends AbstractSelenideTest { public static final String ORG_FILE_PATH = "../../samples/org/org-monkey-island-simple.xml"; public static final String ASSIGN_ORG_UNIT_LINKTEXT = "Assign"; public static final String USER_NAME = "OrgTestUser"; public static final String ORG_UNIT_NAME = "F0002"; public static final String ORG_UNIT_DISPLAY_NAME = "Ministry of Defense"; public static final String PARENT_ORG_UNIT_DISPLAY_NAME = "Governor Office"; /** * Import organization structure from org-monkey-island-simple.xml * sample file. Check if organization tree was created in MP */ @Test(priority = 0) public void test001importOrganizationStructureFromFileTest(){ close(); login(); checkLoginIsPerformed(); //import organization structure xml file importObjectFromFile(ORG_FILE_PATH); //click Org. structure menu $(By.partialLinkText("Org. structure")).shouldBe(visible).click(); //click Organization tree menu item $(By.partialLinkText("Organization tree")).shouldBe(visible).click(); //check if organization structure was created in midPoint $(byText("Governor Office")).shouldBe(visible); $(byText("Projects")).shouldBe(visible); } @Test(priority = 1, dependsOnMethods = {"test001importOrganizationStructureFromFileTest"}) public void test002assignOrgUnitTest(){ close(); login(); //create test user createUser(USER_NAME, new HashMap<String, String>()); //open user's Edit page openUsersEditPage(USER_NAME); //assign F0002 org unit (Ministry of Defense) to the user assignObjectToFocusObject(ASSIGN_ORG_UNIT_LINKTEXT, "OrgType", ORG_UNIT_NAME); //open user's Edit page openUsersEditPage(USER_NAME); openAssignmentsTab(); //check if assigned org. unit is displayed in the Assignments section $(byText(ORG_UNIT_DISPLAY_NAME)).shouldBe(visible); //click Org. structure menu $(By.partialLinkText("Org. structure")).shouldBe(visible).click(); //click Organization tree menu item $(By.partialLinkText("Organization tree")).shouldBe(visible).click(); //click on Ministry of Defense $(By.partialLinkText(PARENT_ORG_UNIT_DISPLAY_NAME)).shouldBe(visible).click(); $(By.partialLinkText(ORG_UNIT_DISPLAY_NAME)).shouldBe(visible).click(); //check if user was found in the organization $(byText(USER_NAME)).shouldBe(visible); } @Test(priority = 2, dependsOnMethods = {"test001importOrganizationStructureFromFileTest", "test002assignOrgUnitTest"}) public void test003unassignOrgUnitTest(){ close(); login(); //open user's Edit page openUsersEditPage(USER_NAME); openAssignmentsTab(); //select checkbox for org. unit in Assignments section $(byAttribute("class","box assignment object-org-box-thin")).shouldHave(text(ORG_UNIT_DISPLAY_NAME)).find(By.tagName("input")).setSelected(true); //click on the menu icon next to Assignments section $(byAttribute("about", "assignments")).find(byAttribute("about", "dropdownMenu")).click(); //click Assign menu item with the specified linkText $(By.linkText("Unassign")).shouldBe(visible).click(); //click Yes button in the opened Confirm delete window $(By.partialLinkText("Yes")).shouldBe(visible).click(); //click Save button $(By.linkText("Save")).shouldBe(visible).click(); checkOperationStatusOk("Save (GUI)"); //open user's Edit page openUsersEditPage(USER_NAME); //check if there is no assignments in the Assignments section any more openAssignmentsTab(); assert !($(byText(ORG_UNIT_DISPLAY_NAME)).exists()); //click Org. structure menu $(By.partialLinkText("Org. structure")).shouldBe(visible).click(); //click Organization tree menu item $(By.partialLinkText("Organization tree")).shouldBe(visible).click(); //click on Ministry of Defense $(By.partialLinkText(PARENT_ORG_UNIT_DISPLAY_NAME)).shouldBe(visible).click(); $(By.partialLinkText(ORG_UNIT_DISPLAY_NAME)).shouldBe(visible).click(); //search for the user in the opened organization $(byText(USER_NAME)).shouldNotBe(visible); } }