Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS will be completely phased out by mid-2025. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit bdd6549d authored by Mihai BOZ's avatar Mihai BOZ
Browse files

Mapped Edit resource page, created rest methods to create resource and add...

Mapped Edit resource page, created rest methods to create resource and add member, created tests EDT-RES01, EDT-RES02, EDT-RES03, EDT-DOM02,

Signed-off-by: default avatarbozmiha <Mihai.BOZ@ext.ec.europa.eu>
parent d4171873
No related branches found
No related tags found
No related merge requests found
Pipeline #110695 passed with warnings
Showing
with 377 additions and 63 deletions
......@@ -232,6 +232,11 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin_version}</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.12.2</version>
</dependency>
</dependencies>
......
......@@ -31,7 +31,6 @@ public class CommonPageWithTabs extends DomiSMPPage {
}
public String getAlertMessageAndClose() {
return getAlertArea().getAlertMessage();
}
}
......@@ -21,7 +21,6 @@ public class CommonPageWithTabsAndGrid extends CommonPageWithTabs {
super(driver);
PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this);
}
public SmallGrid getLeftSideGrid() {
return new SmallGrid(driver, rightPanel);
}
......
......@@ -13,14 +13,11 @@ import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pages.LoginPage;
/**
* Page object for the common components from Domismp like navigation, right menu. This contains the locators of the page and the methods for the behaviour of the page
*/
public class DomiSMPPage extends DComponent {
private final static Logger LOG = LoggerFactory.getLogger(DomiSMPPage.class);
@FindBy(css = "cdk-overlay-backdrop cdk-overlay-dark-backdrop cdk-overlay-backdrop-showing")
protected WebElement overlay;
@FindBy(id = "login_id")
......@@ -63,40 +60,22 @@ public class DomiSMPPage extends DComponent {
Actions actions = new Actions(driver);
actions.moveToElement(logoutMenuBtn);
actions.perform();
logoutMenuBtn.click();
// data.destroySession();
}
public void refreshPage() {
driver.navigate().refresh();
waitForPageToLoaded();
}
//
// public AlertComponent getAlertArea() {
// return new AlertComponent(driver);
// }
public AlertComponent getAlertArea(){
if ( alertComponent == null){
alertComponent = new AlertComponent(driver);
}
return alertComponent;
}
public DButton getExpiredDialoginbutton() {
return weToDButton(dialogOKbutton);
}
public boolean isExpiredDialoginbuttonEnabled() {
try {
return weToDButton(dialogOKbutton).isPresent();
// return dialogOKbutton.isEnabled();
} catch (Exception e) {
LOG.info("Expiration poup not found", e);
return false;
}
}
public void waitForPageToLoaded() {
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("return document.readyState").toString().equals("complete");
......
......@@ -9,6 +9,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.NoSuchElementException;
public class SmallGrid extends DComponent {
private final static Logger LOG = LoggerFactory.getLogger(SmallGrid.class);
......@@ -157,6 +158,7 @@ public class SmallGrid extends DComponent {
if (columnIndex == -1) {
LOG.error("No element found");
}
boolean isElementPresent = false;
for (int pageNr = 1; pageNr < numOfPages + 1; pageNr++) {
List<WebElement> rows = getRows();
......@@ -165,13 +167,21 @@ public class SmallGrid extends DComponent {
WebElement currentCell = cells.get(columnIndex);
if (currentCell.getText().equals(value)) {
LOG.debug("[{}] found on page [{}]", value, pageNr);
isElementPresent = true;
currentCell.click();
break;
}
}
if (isElementPresent) {
break;
}
getGridPagination().goToNextPage();
}
if (!isElementPresent) {
throw new NoSuchElementException("Value [" + value + "] was not found in the grid");
}
LOG.error("No element found");
}
......
package ddsl.dcomponents.commonComponents.members;
import ddsl.dcomponents.DComponent;
import ddsl.dcomponents.Grid.SmallGrid;
import org.openqa.selenium.ElementNotInteractableException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import rest.models.UserModel;
/**
* Generic component for Invite members with members grid popup. It contains the WebElements and the methods specific to the dialog.
*/
public class InviteMembersWithGridPopup extends DComponent {
private final static Logger LOG = LoggerFactory.getLogger(InviteMembersWithGridPopup.class);
@FindBy(id = "addMemberButton")
private WebElement inviteMemberBtn;
@FindBy(id = "editButton")
private WebElement editMemberBtn;
@FindBy(id = "closeDialogButton")
private WebElement closeBtn;
@FindBy(css = "domain-member-panel")
private WebElement panel;
public InviteMembersWithGridPopup(WebDriver driver) {
super(driver);
PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this);
}
public SmallGrid getGrid() {
return new SmallGrid(driver, panel);
}
protected InviteMembersPopup inviteMember() throws ElementNotInteractableException {
weToDButton(inviteMemberBtn).click();
return new InviteMembersPopup(driver);
}
protected InviteMembersPopup editMember(String columnName, String value) {
WebElement tobeEdited = getGrid().searchAndGetElementInColumn(columnName, value);
tobeEdited.click();
wait.forElementToBeEnabled(editMemberBtn);
weToDButton(editMemberBtn).click();
return new InviteMembersPopup(driver);
}
public boolean isMemberPresentByUsername(UserModel userModel) {
return getGrid().isValuePresentInColumn("Username", userModel.getUsername());
}
public void clickOnCloseBtn() {
weToDButton(closeBtn).click();
}
}
......@@ -3,26 +3,22 @@ package ddsl.dcomponents.commonComponents.subcategoryTab;
import ddsl.dcomponents.ConfirmationDialog;
import ddsl.dcomponents.DComponent;
import ddsl.dcomponents.Grid.SmallGrid;
import ddsl.dcomponents.commonComponents.members.InviteMembersWithGridPopup;
import org.openqa.selenium.ElementNotInteractableException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Generic component for Subcategory tabs. It contains the WebElements and the methods specific to the dialog.
*
*/
public class SubcategoryTabComponent extends DComponent {
private final static Logger LOG = LoggerFactory.getLogger(SubcategoryTabComponent.class);
@FindBy(id = "createButton")
private WebElement createBtn;
@FindBy(id = "editButton")
private WebElement editBtn;
@FindBy(id = "groupMembersButton")
private WebElement resourceMembersBtn;
private WebElement membersBtn;
@FindBy(id = "deleteButton")
private WebElement deleteBtn;
@FindBy(css = "[class=smp-column-data]")
......@@ -40,6 +36,11 @@ public class SubcategoryTabComponent extends DComponent {
weToDButton(createBtn).click();
}
protected InviteMembersWithGridPopup clickOnMembersButton() {
weToDButton(membersBtn).click();
return new InviteMembersWithGridPopup(driver);
}
protected void edit(String columnName, String value) throws Exception {
WebElement tobeEdited = getGrid().searchAndGetElementInColumn(columnName, value);
tobeEdited.click();
......
package pages.administration.editDomainsPage;
import ddsl.dcomponents.commonComponents.members.InviteMembersWithGridPopup;
import ddsl.dcomponents.commonComponents.subcategoryTab.SubcategoryTabComponent;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
/**
* Page object Groups tab of Edit Groups page. This contains the locators of the page and the methods for the behaviour of the page
*/
......@@ -24,6 +26,11 @@ public class GroupTab extends SubcategoryTabComponent {
return new CreateGroupDetailsDialog(driver);
}
public InviteMembersWithGridPopup clickOnGroupMembersBtn() {
return clickOnMembersButton();
}
public void deleteGroup(String domainCode){
delete("Group name", domainCode);
}
......
......@@ -2,18 +2,84 @@ package pages.administration.editResourcesPage;
import ddsl.DomiSMPPage;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
/**
* Page object for the Edit resource document page. This contains the locators of the page and the methods for the behaviour of the page
*/
class EditResourceDocumentPage extends DomiSMPPage {
public class EditResourceDocumentPage extends DomiSMPPage {
private final static Logger LOG = LoggerFactory.getLogger(EditResourceDocumentPage.class);
@FindBy(id = "GenerateResource_id")
private WebElement generateBtn;
@FindBy(id = "validateResource_id")
private WebElement validateBtn;
@FindBy(css = "smp-titled-label[title=\"Resource identifier:\"] div.smp-tl-value")
private WebElement resourceIdentifierLbl;
@FindBy(css = "smp-titled-label[title=\"Resource scheme:\"] div.smp-tl-value")
private WebElement resourceSchemeLbl;
@FindBy(css = "smp-titled-label[title=\"Document name:\"] div.smp-tl-value")
private WebElement documentNameLbl;
@FindBy(css = "smp-titled-label[title=\"Document mimeType:\"] div.smp-tl-value")
private WebElement documentMimeTypeLbl;
@FindBy(css = "smp-titled-label[title=\"Current document version:\"] div.smp-tl-value")
private WebElement currentDocumentVersionLbl;
@FindBy(id = "saveResource_id")
private WebElement saveBtn;
@FindBy(id = "cancel_id")
private WebElement cancelBtn;
@FindBy(css = "ngx-codemirror[formcontrolname= \"payload\"] div textarea")
private WebElement codeEditorSendValueElement;
@FindBy(css = ".CodeMirror-line")
private List<WebElement> codeEditorReadValueElement;
protected EditResourceDocumentPage(WebDriver driver) {
super(driver);
LOG.debug("Loading Edit resource document page.");
}
public String getDocumentValue() {
ArrayList<String> document = new ArrayList<>();
for (WebElement el : codeEditorReadValueElement) {
document.add(el.getText());
}
String formatedDoc = document.toString();
formatedDoc
= formatedDoc.replace("[", "")
.replace("]", "")
.replace(",", "");
return formatedDoc;
}
public void clickOnGenerate() {
weToDButton(generateBtn).click();
}
public void clickOnSave() {
weToDButton(saveBtn).click();
}
public void clickOnValidate() {
weToDButton(validateBtn).click();
}
}
package pages.systemSettings;
import ddsl.CommonCertificatePage;
import ddsl.dcomponents.Grid.SmallGrid;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
......@@ -18,10 +17,6 @@ public class TruststorePage extends CommonCertificatePage {
public TruststorePage(WebDriver driver) {
super(driver);
}
public SmallGrid getCertificateGrid() {
return new SmallGrid(driver, rightPanel);
}
public String addCertificateAndReturnAlias(String filePath) {
uploadInput.sendKeys(filePath);
String certificateAlias = getAlertMessageAndClose();
......
package rest.models;
import java.util.List;
/**
* Data object for Document used in Subresource.
*/
public class DocumentModel {
private List<Long> allVersions;
private Long currentResourceVersion;
private Object documentId;
private String mimeType;
private String name;
private String payload;
private Long payloadVersion;
public List<Long> getAllVersions() {
return allVersions;
}
public void setAllVersions(List<Long> allVersions) {
this.allVersions = allVersions;
}
public Long getCurrentResourceVersion() {
return currentResourceVersion;
}
public void setCurrentResourceVersion(Long currentResourceVersion) {
this.currentResourceVersion = currentResourceVersion;
}
public Object getDocumentId() {
return documentId;
}
public void setDocumentId(Object documentId) {
this.documentId = documentId;
}
public String getMimeType() {
return mimeType;
}
public void setMimeType(String mimeType) {
this.mimeType = mimeType;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPayload() {
return payload;
}
public void setPayload(String payload) {
this.payload = payload;
}
public Long getPayloadVersion() {
return payloadVersion;
}
public void setPayloadVersion(Long payloadVersion) {
this.payloadVersion = payloadVersion;
}
}
......@@ -10,6 +10,9 @@ import java.util.List;
import static ddsl.enums.ResponseCertificates.SMP_DOMAIN_01;
import static ddsl.enums.ResponseCertificates.SMP_DOMAIN_02;
/**
* Data model for Domain used for generating domains, mapping domain rest calls.
*/
public class DomainModel {
private String smlSmpId;
......
package utils;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.Writer;
public class XMLUtils {
protected final Logger log = LoggerFactory.getLogger(this.getClass());
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc;
public XMLUtils(String xmlStr) throws ParserConfigurationException {
try {
doc = dBuilder.parse(new InputSource(new StringReader(xmlStr)));
} catch (Exception e) {
log.error("Error while parsing xml", e);
}
}
public String printDoc() throws IOException {
OutputFormat format = new OutputFormat(doc);
format.setIndenting(false);
Writer out = new StringWriter();
XMLSerializer serializer = new XMLSerializer(out, format);
serializer.serialize(doc);
return out.toString();
}
public boolean isNodePresent(String nodeName) {
NodeList nList = doc.getElementsByTagName(nodeName);
return nList.getLength() != 0;
}
// public boolean isNodeContaingValue(String nodeName) {
//
// NodeList nList = doc.getChildNodes();
// for(Integer i=0; i = nList.getLength()){
//
// }
//
//
// }
}
File added
package domiSMPTests.ui;
import ddsl.DomiSMPPage;
import ddsl.dcomponents.commonComponents.members.InviteMembersWithGridPopup;
import ddsl.enums.Pages;
import domiSMPTests.SeleniumTest;
import org.openqa.selenium.WebElement;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Ignore;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
import pages.LoginPage;
......@@ -17,12 +17,15 @@ import rest.models.GroupModel;
import rest.models.MemberModel;
import rest.models.UserModel;
/**
* Test class for Edit domains page tests.
*/
public class EditDomainsPgTests extends SeleniumTest {
DomiSMPPage homePage;
LoginPage loginPage;
EditDomainsPage editDomainPage;
String domainId;
DomainModel domainModel;
UserModel adminUser;
SoftAssert soft;
......@@ -48,7 +51,7 @@ public class EditDomainsPgTests extends SeleniumTest {
}
@Test(description = "EDTDOM-01 Domain admins are able to invite/edit/remove members")
public void DomainAdminsAreAbleToInviteEditRemoveMembers() throws Exception {
public void DomainAdminsAreAbleToInviteEditRemoveMembers() {
UserModel domainMember = UserModel.generateUserWithUSERrole();
rest.users().createUser(domainMember);
......@@ -69,9 +72,8 @@ public class EditDomainsPgTests extends SeleniumTest {
soft.assertAll();
}
@Ignore
@Test(description = "EDTDOM-02 Domain admins are able to create new groups")
public void domainAdminsAreAbleToCreate() throws Exception {
public void domainAdminsAreAbleToCreate() {
GroupModel groupToBeCreated = GroupModel.generatePublicGroup();
editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
......@@ -84,14 +86,19 @@ public class EditDomainsPgTests extends SeleniumTest {
WebElement createGroup = editDomainPage.getGroupTab().getGrid().searchAndGetElementInColumn("Group name", groupToBeCreated.getGroupName());
soft.assertNotNull(createGroup);
createGroup.click();
InviteMembersWithGridPopup inviteMembersWithGridPopup = editDomainPage.getGroupTab().clickOnGroupMembersBtn();
soft.assertTrue(inviteMembersWithGridPopup.isMemberPresentByUsername(adminUser));
inviteMembersWithGridPopup.clickOnCloseBtn();
EditGroupsPage editgroupPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_GROUPS);
editgroupPage.selectDomain(domainModel, groupToBeCreated);
soft.assertAll();
}
@Test(description = "EDTDOM-03 Domain admins are not able to create duplicated groups")
public void domainAdminsAreNotAbleToCreateDuplicatedGroups() throws Exception {
public void domainAdminsAreNotAbleToCreateDuplicatedGroups() {
GroupModel duplicatedGroup = GroupModel.generatePublicGroup();
editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
......@@ -112,7 +119,7 @@ public class EditDomainsPgTests extends SeleniumTest {
}
@Test(description = "EDTDOM-04 Domain admins are able to delete groups without resources")
public void domainAdminsAreNotAbleToDeleteGroups() throws Exception {
public void domainAdminsAreNotAbleToDeleteGroups() {
GroupModel groupToBeDeleted = GroupModel.generatePublicGroup();
editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
......
......@@ -8,9 +8,11 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
import pages.LoginPage;
import pages.administration.editResourcesPage.EditResourceDocumentPage;
import pages.administration.editResourcesPage.EditResourcePage;
import rest.models.*;
import utils.TestRunData;
import utils.XMLUtils;
import java.util.Arrays;
import java.util.List;
......@@ -25,6 +27,8 @@ public class EditResourcePgTests extends SeleniumTest {
ResourceModel resourceModel;
SoftAssert soft;
MemberModel adminMember;
@BeforeMethod(alwaysRun = true)
public void beforeTest() throws Exception {
soft = new SoftAssert();
......@@ -33,7 +37,7 @@ public class EditResourcePgTests extends SeleniumTest {
groupModel = GroupModel.generatePublicGroup();
resourceModel = ResourceModel.generatePublicResourceUnregisteredToSML();
MemberModel adminMember = new MemberModel() {
adminMember = new MemberModel() {
};
adminMember.setUsername(adminUser.getUsername());
adminMember.setRoleType("ADMIN");
......@@ -112,33 +116,79 @@ public class EditResourcePgTests extends SeleniumTest {
soft.assertTrue(editResourcePage.getResourceMembersTab().getMembersGrid().isValuePresentInColumn("Username", domainMember.getUsername()));
}
@Test(description = "EDTGRP-02 Group admins are able to create new resources", priority = 0)
public void groupsAdminsAreAbleToCreateNewResources() throws Exception {
@Test(description = "EDTRES-03 Resource admins are able to add generated document", priority = 1)
public void ResourceAdminsAreAbleToAddGeneratedDocument() throws Exception {
//Generate resource Oasis 3
ResourceModel resourceModelOasis3 = ResourceModel.generatePublicResourceUnregisteredToSML();
resourceModelOasis3.setResourceTypeIdentifier(ResourceTypes.OASIS3.getName());
resourceModelOasis3 = rest.resources().createResourceForGroup(domainModel, groupModel, resourceModelOasis3);
rest.resources().addMembersToResource(domainModel, groupModel, resourceModelOasis3, adminMember);
UserModel resourseAdmin = UserModel.generateUserWithADMINrole();
rest.users().createUser(resourseAdmin);
editResourcePage.refreshPage();
editResourcePage.selectDomain(domainModel, groupModel, resourceModelOasis3);
editResourcePage.goToTab("Resource details");
EditResourceDocumentPage editResourceDocumentPage = editResourcePage.getResourceDetailsTab().clickOnEditDocument();
editResourceDocumentPage.clickOnGenerate();
editResourceDocumentPage.clickOnSave();
String currentGeneratedValue = editResourceDocumentPage.getDocumentValue();
MemberModel resourceMember = new MemberModel();
resourceMember.setUsername(resourseAdmin.getUsername());
resourceMember.setRoleType("VIEWER");
editResourceDocumentPage.clickOnValidate();
soft.assertEquals(editResourceDocumentPage.getAlertArea().getAlertMessage(), "Document is Valid.", "Generated document is not valid");
soft.assertNotNull(currentGeneratedValue, "Document is empty");
XMLUtils documentXML = new XMLUtils(currentGeneratedValue);
soft.assertTrue(documentXML.isNodePresent("CPP"), "Node is not present in generated document");
homePage.logout();
loginPage = homePage.goToLoginPage();
loginPage.login(resourseAdmin.getUsername(), TestRunData.getInstance().getNewPassword());
editResourcePage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_RESOURCES);
soft.assertTrue(editResourcePage.isCurrentUserAdministrator());
resourceMember = rest.resources().addMembersToResource(domainModel, groupModel, resourceModel, resourceMember);
//Check if viewer can see resources in Edit Resource page
//Generate resource Oasis 2
ResourceModel resourceModelOasis2 = ResourceModel.generatePublicResourceUnregisteredToSML();
resourceModelOasis2.setResourceTypeIdentifier(ResourceTypes.OASIS2.getName());
resourceModelOasis2 = rest.resources().createResourceForGroup(domainModel, groupModel, resourceModelOasis2);
rest.resources().addMembersToResource(domainModel, groupModel, resourceModelOasis2, adminMember);
editResourcePage.refreshPage();
soft.assertTrue(editResourcePage.isCurrentUserAdministrator());
editResourcePage.selectDomain(domainModel, groupModel, resourceModelOasis2);
editResourcePage.goToTab("Resource details");
editResourceDocumentPage = editResourcePage.getResourceDetailsTab().clickOnEditDocument();
editResourceDocumentPage.clickOnGenerate();
editResourceDocumentPage.clickOnSave();
String oasis2GeneratedDocumentValue = editResourceDocumentPage.getDocumentValue();
editResourceDocumentPage.clickOnValidate();
resourceMember.setRoleType("ADMIN");
rest.resources().addMembersToResource(domainModel, groupModel, resourceModel, resourceMember);
//Check if admin can see resources in Edit Resource page
soft.assertEquals(editResourceDocumentPage.getAlertArea().getAlertMessage(), "Document is Valid.", "Generated document is not valid");
soft.assertNotNull(oasis2GeneratedDocumentValue, "Document is empty");
XMLUtils oasis2DocumentXML = new XMLUtils(oasis2GeneratedDocumentValue);
soft.assertTrue(oasis2DocumentXML.isNodePresent("ns5:ServiceGroup"), " Service group Node is not present in generated document");
//Generate resource Oasis 3
ResourceModel resourceModelOasis1 = ResourceModel.generatePublicResourceUnregisteredToSML();
resourceModelOasis1.setResourceTypeIdentifier(ResourceTypes.OASIS1.getName());
resourceModelOasis1 = rest.resources().createResourceForGroup(domainModel, groupModel, resourceModelOasis1);
rest.resources().addMembersToResource(domainModel, groupModel, resourceModelOasis1, adminMember);
editResourcePage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_RESOURCES);
editResourcePage.refreshPage();
soft.assertTrue(editResourcePage.getLeftSideGrid().isValuePresentInColumn("Identifier", resourceModel.getIdentifierValue()));
editResourcePage.selectDomain(domainModel, groupModel, resourceModelOasis1);
editResourcePage.goToTab("Resource details");
editResourceDocumentPage = editResourcePage.getResourceDetailsTab().clickOnEditDocument();
editResourceDocumentPage.clickOnGenerate();
editResourceDocumentPage.clickOnSave();
String oasis1GeneratedDocumentValue = editResourceDocumentPage.getDocumentValue();
editResourceDocumentPage.clickOnValidate();
soft.assertEquals(editResourceDocumentPage.getAlertArea().getAlertMessage(), "Document is Valid.", "Generated document is not valid");
soft.assertNotNull(oasis1GeneratedDocumentValue, "Document is empty");
XMLUtils oasis1DocumentXML = new XMLUtils(oasis1GeneratedDocumentValue);
soft.assertTrue(oasis1DocumentXML.isNodePresent("ServiceGroup"), " Service group Node is not present in generated document");
soft.assertAll();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment