diff --git a/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java b/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java
index 59878a9beaf613fe2ce1e2803d3a6f00727d1a90..c59db824366a74eb83240620b1a02471dde8f26b 100644
--- a/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java
+++ b/domiSMP-ui-tests/src/main/java/ddsl/CommonPageWithTabsAndGrid.java
@@ -6,13 +6,10 @@ 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;
 /**
  * Generic page used for pages which have small grid in the right of the page and tabs in the left. This element gives access to action buttons and elements of the page.
  */
 public class CommonPageWithTabsAndGrid extends CommonPageWithTabs {
-    private final static Logger LOG = LoggerFactory.getLogger(CommonPageWithTabsAndGrid.class);
     @FindBy(css = "mat-form-field input")
     public WebElement filterInput;
     @FindBy(css = "data-panel >div >div> mat-toolbar button:first-of-type")
@@ -23,7 +20,6 @@ public class CommonPageWithTabsAndGrid extends CommonPageWithTabs {
     public CommonPageWithTabsAndGrid(WebDriver driver) {
         super(driver);
         PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this);
-        LOG.debug("CommonPageWithTabs is loaded");
     }
 
     public SmallGrid getLeftSideGrid() {
diff --git a/domiSMP-ui-tests/src/main/java/ddsl/DomiSMPPage.java b/domiSMP-ui-tests/src/main/java/ddsl/DomiSMPPage.java
index 8d01055bc1617632a3fd7c10cc63987e4d9e3968..1477809d8317fc4211477635eff28e2f0c7bb054 100644
--- a/domiSMP-ui-tests/src/main/java/ddsl/DomiSMPPage.java
+++ b/domiSMP-ui-tests/src/main/java/ddsl/DomiSMPPage.java
@@ -65,6 +65,7 @@ public class DomiSMPPage extends DComponent {
         actions.perform();
 
         logoutMenuBtn.click();
+        // data.destroySession();
     }
 
     public void refreshPage() {
diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java
index 989c8b63e7a6b16524ea76107f64e05ebf3b6ed6..85126f9e970c38fe1ca1b85f5188262299884623 100644
--- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java
+++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/SideNavigationComponent.java
@@ -13,6 +13,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import pages.administration.editDomainsPage.EditDomainsPage;
 import pages.administration.editGroupsPage.EditGroupsPage;
+import pages.administration.editResourcesPage.EditResourcePage;
 import pages.systemSettings.TruststorePage;
 import pages.systemSettings.UsersPage;
 import pages.systemSettings.domainsPage.DomainsPage;
@@ -121,12 +122,10 @@ public class SideNavigationComponent extends DomiSMPPage {
             openSubmenu(administrationExpand, editGroupsLnk);
             return (T) new EditGroupsPage(driver);
         }
-
-
-        //            case ADMINISTRATION_EDIT_RESOURCES:
-        //                expandSection(administrationExpand);
-        //                return new DLink(driver, editResourcesLnk);
-
+        if (page == Pages.ADMINISTRATION_EDIT_RESOURCES) {
+            openSubmenu(administrationExpand, editResourcesLnk);
+            return (T) new EditResourcePage(driver);
+        }
         if (page == Pages.SYSTEM_SETTINGS_USERS) {
             openSubmenu(systemSettingsExpand, usersLnk);
             return (T) new UsersPage(driver);
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/CreateSubresourceDetailsDialog.java b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/CreateSubresourceDetailsDialog.java
new file mode 100644
index 0000000000000000000000000000000000000000..063c1163b4af6dee8895423d9ed317bd9bce2d6e
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/CreateSubresourceDetailsDialog.java
@@ -0,0 +1,51 @@
+package pages.administration.editResourcesPage;
+
+import ddsl.dcomponents.AlertComponent;
+import ddsl.dcomponents.DComponent;
+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 rest.models.ResourceModel;
+
+public class CreateSubresourceDetailsDialog extends DComponent {
+
+
+    @FindBy(id = "identifierValue_id")
+    private WebElement subresourceIdentifierInput;
+    @FindBy(id = "identifierScheme_id")
+    private WebElement subresourceSchemeInput;
+    @FindBy(id = "createButton")
+    private WebElement createBtn;
+    private AlertComponent alertComponent = null;
+
+    public CreateSubresourceDetailsDialog(WebDriver driver) {
+        super(driver);
+        PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this);
+
+    }
+
+    public AlertComponent getAlertArea() {
+        if (alertComponent == null) {
+            alertComponent = new AlertComponent(driver);
+        }
+        return alertComponent;
+    }
+
+
+    public void fillResourceDetails(ResourceModel resourceModel) {
+        weToDInput(subresourceIdentifierInput).fill(resourceModel.getIdentifierValue());
+        weToDInput(subresourceSchemeInput).fill(resourceModel.getIdentifierScheme());
+    }
+
+    public Boolean tryClickOnSave() {
+        wait.forElementToBeClickable(createBtn);
+        if (weToDButton(createBtn).isEnabled()) {
+            weToDButton(createBtn).click();
+            return true;
+        } else {
+            return false;
+        }
+    }
+}
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourceDocumentPage.java b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourceDocumentPage.java
new file mode 100644
index 0000000000000000000000000000000000000000..bfe529f5910144b39ae5e75b57d2f0d3ca9523f9
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourceDocumentPage.java
@@ -0,0 +1,19 @@
+package pages.administration.editResourcesPage;
+
+import ddsl.DomiSMPPage;
+import org.openqa.selenium.WebDriver;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 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 {
+    private final static Logger LOG = LoggerFactory.getLogger(EditResourceDocumentPage.class);
+
+    protected EditResourceDocumentPage(WebDriver driver) {
+        super(driver);
+        LOG.debug("Loading Edit resource document page.");
+
+    }
+}
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourcePage.java b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourcePage.java
new file mode 100644
index 0000000000000000000000000000000000000000..8969a7de28467535581ba1155f54be3a7fa36771
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/EditResourcePage.java
@@ -0,0 +1,63 @@
+package pages.administration.editResourcesPage;
+
+import ddsl.CommonPageWithTabsAndGrid;
+import org.openqa.selenium.NoSuchElementException;
+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 rest.models.DomainModel;
+import rest.models.GroupModel;
+import rest.models.ResourceModel;
+
+/**
+ * Page object for the Edit resource page. This contains the locators of the page and the methods for the behaviour of the page
+ */
+public class EditResourcePage extends CommonPageWithTabsAndGrid {
+    private final static Logger LOG = LoggerFactory.getLogger(EditResourcePage.class);
+    @FindBy(id = "domain_id")
+    private WebElement domainDdl;
+    @FindBy(id = "group_id")
+    private WebElement groupDdl;
+
+    @FindBy(css = ".smp-warning-panel")
+    private WebElement notAdministratorWarning;
+
+
+    public EditResourcePage(WebDriver driver) {
+        super(driver);
+        LOG.debug("Loading Edit resources page.");
+    }
+
+    public void selectGroup(DomainModel domainModel, GroupModel groupModel) {
+        weToMatSelect(domainDdl).selectByVisibleText(domainModel.getDomainCode());
+    }
+
+    public ResourcesMembersTab getResourceMembersTab() {
+        return new ResourcesMembersTab(driver);
+    }
+
+    public ResourceDetailsTab getResourceDetailsTab() {
+        return new ResourceDetailsTab(driver);
+    }
+
+    public void selectDomain(DomainModel domainModel, GroupModel groupModel, ResourceModel resourceModel) {
+        weToMatSelect(domainDdl).selectByVisibleText(domainModel.getDomainCode());
+        weToMatSelect(groupDdl).selectByVisibleText(groupModel.getGroupName());
+        getLeftSideGrid().searchAndClickElementInColumn("Identifier", resourceModel.getIdentifierValue());
+    }
+
+    public boolean isCurrentUserAdministrator() {
+        try {
+            if (notAdministratorWarning.isDisplayed()) {
+                return true;
+            }
+            return false;
+
+        } catch (NoSuchElementException e) {
+            return false;
+        }
+    }
+
+}
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourceDetailsTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourceDetailsTab.java
new file mode 100644
index 0000000000000000000000000000000000000000..8b4f79e3d75fece3fac81cb951b71a9aa1db38d0
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourceDetailsTab.java
@@ -0,0 +1,29 @@
+package pages.administration.editResourcesPage;
+
+import ddsl.dcomponents.DComponent;
+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;
+
+/**
+ * Page object Resource details tab of Edit Resource page. This contains the locators of the page and the methods for the behaviour of the page
+ */
+public class ResourceDetailsTab extends DComponent {
+
+    @FindBy(id = "showResource")
+    private WebElement editDocumentBtn;
+
+    public ResourceDetailsTab(WebDriver driver) {
+        super(driver);
+        PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this);
+
+    }
+
+    public EditResourceDocumentPage clickOnEditDocument() throws ElementNotInteractableException {
+        weToDButton(editDocumentBtn).click();
+        return new EditResourceDocumentPage(driver);
+    }
+}
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourcesMembersTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourcesMembersTab.java
new file mode 100644
index 0000000000000000000000000000000000000000..36e248f84fe58eb90fe1f22f5250173b02034eed
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/ResourcesMembersTab.java
@@ -0,0 +1,17 @@
+package pages.administration.editResourcesPage;
+
+import ddsl.dcomponents.commonComponents.members.MembersComponent;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.support.PageFactory;
+import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
+
+/**
+ * Page object Resources members tab of Edit Resource page. This contains the locators of the page and the methods for the behaviour of the page
+ */
+public class ResourcesMembersTab extends MembersComponent {
+    public ResourcesMembersTab(WebDriver driver) {
+        super(driver);
+        PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this);
+    }
+}
+
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/SubresourceTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/SubresourceTab.java
new file mode 100644
index 0000000000000000000000000000000000000000..659309a73f26d5bf4f80a920878014779a4998ed
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editResourcesPage/SubresourceTab.java
@@ -0,0 +1,17 @@
+package pages.administration.editResourcesPage;
+
+import ddsl.dcomponents.commonComponents.members.MembersComponent;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.support.PageFactory;
+import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
+
+/**
+ * Page object Subresource tab of Edit Resource page. This contains the locators of the page and the methods for the behaviour of the page
+ */
+public class SubresourceTab extends MembersComponent {
+    public SubresourceTab(WebDriver driver) {
+        super(driver);
+        PageFactory.initElements(new AjaxElementLocatorFactory(driver, data.getWaitTimeShort()), this);
+    }
+}
+
diff --git a/domiSMP-ui-tests/src/main/java/rest/DomiSMPRestClient.java b/domiSMP-ui-tests/src/main/java/rest/DomiSMPRestClient.java
index 45f72156c9e4835e1e24d156dc2ce8d36e1a71cf..451bdc8cc344f8ed0dbbc57178e98e26cf8a6645 100644
--- a/domiSMP-ui-tests/src/main/java/rest/DomiSMPRestClient.java
+++ b/domiSMP-ui-tests/src/main/java/rest/DomiSMPRestClient.java
@@ -10,10 +10,14 @@ public class DomiSMPRestClient extends BaseRestClient {
     public DomainClient domains() {
         return new DomainClient();
     }
-
     public GroupClient groups() {
         return new GroupClient();
     }
 
+    public ResourceClient resources() {
+        return new ResourceClient();
+    }
+
+
 }
 
diff --git a/domiSMP-ui-tests/src/main/java/rest/ResourceClient.java b/domiSMP-ui-tests/src/main/java/rest/ResourceClient.java
new file mode 100644
index 0000000000000000000000000000000000000000..7a3f8d9d625a77030b5b006ffc5860e259588461
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/rest/ResourceClient.java
@@ -0,0 +1,54 @@
+package rest;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.sun.jersey.api.client.ClientResponse;
+import org.json.JSONObject;
+import rest.models.DomainModel;
+import rest.models.GroupModel;
+import rest.models.MemberModel;
+import rest.models.ResourceModel;
+import utils.TestRunData;
+
+/**
+ * Rest client for group actions
+ */
+public class ResourceClient extends BaseRestClient {
+
+    public ResourceClient() {
+        super();
+    }
+
+    public ResourceModel createResourceForGroup(DomainModel domainModel, GroupModel groupModel, ResourceModel resourceModelToBeCreated) {
+        JSONObject resourceJson = new JSONObject(resourceModelToBeCreated);
+        String createResourcePath = RestServicePaths.getCreateResourcePath(TestRunData.getInstance().getUserId(), domainModel.getDomainId(), groupModel.getGroupId());
+        ClientResponse response = jsonPUT(resource.path(createResourcePath), resourceJson);
+        if (response.getStatus() != 200) {
+            try {
+                throw new SMPRestException("Could not create resource!", response);
+            } catch (SMPRestException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        log.debug("Resource have been added!");
+        return response.getEntity(ResourceModel.class);
+    }
+
+    public MemberModel addMembersToResource(DomainModel domainModel, GroupModel groupModel, ResourceModel resourceModel, MemberModel groupMember) throws JsonProcessingException {
+        ObjectMapper mapper = new ObjectMapper();
+        String membersJson = mapper.writeValueAsString(groupMember);
+
+        String addGroupMemberPath = RestServicePaths.getResourceAddMemberPath(TestRunData.getInstance().getUserId(), domainModel.getDomainId(), groupModel.getGroupId(), resourceModel.getResourceId());
+
+        ClientResponse response = jsonPUT(resource.path(addGroupMemberPath), membersJson);
+        if (response.getStatus() != 200) {
+            try {
+                throw new SMPRestException("Could not add members to resource", response);
+            } catch (SMPRestException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        log.debug("Member: " + groupMember.getUsername() + " has been added!");
+        return response.getEntity(MemberModel.class);
+    }
+}
diff --git a/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java b/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java
index 32058cae93426412e46a6f7725c35423e248aa8a..f5a0192113d3e35505a2c930f97a96f682dd7451 100644
--- a/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java
+++ b/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java
@@ -52,4 +52,16 @@ public class RestServicePaths {
         return CONTEXT_PATH_EDIT + currentUserId + "/domain/" + domainId + "/group/" + groupId + "/member/put";
     }
 
+    //Resources
+
+    public static String getCreateResourcePath(String currentUserId, String domainId, String groupId) {
+
+        return CONTEXT_PATH_EDIT + currentUserId + "/domain/" + domainId + "/group/" + groupId + "/resource/create";
+    }
+
+    public static String getResourceAddMemberPath(String currentUserId, String domainId, String groupId, String resourceId) {
+
+        return CONTEXT_PATH_EDIT + currentUserId + "/domain/" + domainId + "/group/" + groupId + "/resource/" + resourceId + "/member/put";
+    }
+
 }
diff --git a/domiSMP-ui-tests/src/main/java/rest/models/ResourceModel.java b/domiSMP-ui-tests/src/main/java/rest/models/ResourceModel.java
index 119fb50a7c9bfb9db8fa697ac3335c30d7f64d11..37213ee3e2c52181eb729c859c54abad04e0723f 100644
--- a/domiSMP-ui-tests/src/main/java/rest/models/ResourceModel.java
+++ b/domiSMP-ui-tests/src/main/java/rest/models/ResourceModel.java
@@ -85,4 +85,16 @@ public class ResourceModel {
     public void setVisibility(String visibility) {
         this.visibility = visibility;
     }
+
+    public static ResourceModel generatePublicResourceUnregisteredToSML() {
+        ResourceModel resourceModel = new ResourceModel();
+        resourceModel.identifierScheme = StringUtils.lowerCase(Generator.randomAlphabeticalValue(3) + "-" + Generator.randomAlphaNumericValue(3) + "-" + Generator.randomAlphaNumericValue(3));
+        resourceModel.identifierValue = "AUT_resIden_" + Generator.randomAlphaNumericValue(4).toLowerCase();
+        resourceModel.smlRegistered = false;
+        resourceModel.resourceTypeIdentifier = StringUtils.lowerCase(Utils.randomEnum(ResourceTypes.values()).getName());
+        resourceModel.visibility = "PUBLIC";
+        return resourceModel;
+    }
+
+
 }
diff --git a/domiSMP-ui-tests/src/main/java/utils/TestRunData.java b/domiSMP-ui-tests/src/main/java/utils/TestRunData.java
index f07c5094397bdaed3636ce9e556445c76cdc5cab..1a6020274092bf988f5d6f5934b578c0607160c4 100644
--- a/domiSMP-ui-tests/src/main/java/utils/TestRunData.java
+++ b/domiSMP-ui-tests/src/main/java/utils/TestRunData.java
@@ -116,6 +116,11 @@ public class TestRunData {
         this.cookies = cookies;
     }
 
+    public void destroySession() {
+        setUserId(null);
+        getCookies().clear();
+
+    }
     public void setUserId(String userId) {
         this.userId = userId;
     }
diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditGroupsPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditGroupsPgTests.java
index 06f35f31d8ad96495f539df7959c8d87442d6d18..0979b64d3fdd282335d0abb5ed83e2c03030a748 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditGroupsPgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditGroupsPgTests.java
@@ -11,6 +11,7 @@ import pages.LoginPage;
 import pages.administration.editGroupsPage.CreateResourceDetailsDialog;
 import pages.administration.editGroupsPage.EditGroupsPage;
 import rest.models.*;
+import utils.TestRunData;
 
 import java.util.Arrays;
 import java.util.List;
@@ -36,7 +37,7 @@ public class EditGroupsPgTests extends SeleniumTest {
         adminMember.setRoleType("ADMIN");
 
         MemberModel superMember = new MemberModel();
-        superMember.setUsername(data.getAdminUsername());
+        superMember.setUsername(TestRunData.getInstance().getAdminUsername());
         superMember.setRoleType("ADMIN");
 
         //create user
@@ -62,7 +63,7 @@ public class EditGroupsPgTests extends SeleniumTest {
 
         homePage = new DomiSMPPage(driver);
         loginPage = homePage.goToLoginPage();
-        loginPage.login(adminUser.getUsername(), data.getNewPassword());
+        loginPage.login(adminUser.getUsername(), TestRunData.getInstance().getNewPassword());
         editGroupPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_GROUPS);
     }
 
diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditResourcePgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditResourcePgTests.java
new file mode 100644
index 0000000000000000000000000000000000000000..d2feadc2003c93371376fa0b8fa4ef36d363f2e0
--- /dev/null
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditResourcePgTests.java
@@ -0,0 +1,144 @@
+package domiSMPTests.ui;
+
+import ddsl.DomiSMPPage;
+import ddsl.enums.Pages;
+import ddsl.enums.ResourceTypes;
+import domiSMPTests.SeleniumTest;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+import org.testng.asserts.SoftAssert;
+import pages.LoginPage;
+import pages.administration.editResourcesPage.EditResourcePage;
+import rest.models.*;
+import utils.TestRunData;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class EditResourcePgTests extends SeleniumTest {
+    DomiSMPPage homePage;
+    LoginPage loginPage;
+    EditResourcePage editResourcePage;
+    UserModel adminUser;
+    DomainModel domainModel;
+    GroupModel groupModel;
+    ResourceModel resourceModel;
+    SoftAssert soft;
+
+    @BeforeMethod(alwaysRun = true)
+    public void beforeTest() throws Exception {
+        soft = new SoftAssert();
+        domainModel = DomainModel.generatePublicDomainModelWithSML();
+        adminUser = UserModel.generateUserWithADMINrole();
+        groupModel = GroupModel.generatePublicGroup();
+        resourceModel = ResourceModel.generatePublicResourceUnregisteredToSML();
+
+        MemberModel adminMember = new MemberModel() {
+        };
+        adminMember.setUsername(adminUser.getUsername());
+        adminMember.setRoleType("ADMIN");
+
+        MemberModel superMember = new MemberModel();
+        superMember.setUsername(TestRunData.getInstance().getAdminUsername());
+        superMember.setRoleType("ADMIN");
+
+        //create user
+        rest.users().createUser(adminUser).getString("userId");
+
+        //create domain
+        domainModel = rest.domains().createDomain(domainModel);
+
+        //add users to domain
+        rest.domains().addMembersToDomain(domainModel, adminMember);
+        rest.domains().addMembersToDomain(domainModel, superMember);
+
+        //add resources to domain
+        List<ResourceTypes> resourcesToBeAdded = Arrays.asList(ResourceTypes.OASIS1, ResourceTypes.OASIS3, ResourceTypes.OASIS2);
+        domainModel = rest.domains().addResourcesToDomain(domainModel, resourcesToBeAdded);
+
+        //create group for domain
+        groupModel = rest.domains().createGroupForDomain(domainModel, groupModel);
+
+        //add users to groups
+        rest.groups().addMembersToGroup(domainModel, groupModel, adminMember);
+
+        //add resource to group
+        resourceModel = rest.resources().createResourceForGroup(domainModel, groupModel, resourceModel);
+        rest.resources().addMembersToResource(domainModel, groupModel, resourceModel, adminMember);
+
+
+        homePage = new DomiSMPPage(driver);
+        loginPage = homePage.goToLoginPage();
+        loginPage.login(adminUser.getUsername(), TestRunData.getInstance().getNewPassword());
+        editResourcePage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_RESOURCES);
+    }
+
+    @Test(description = "EDTRES-01 Resource admins are able to invite/edit/remove resource members", priority = 0)
+    public void resourceAdminsAreAbleToInviteEditRemoveMembers() {
+
+        UserModel domainMember = UserModel.generateUserWithUSERrole();
+        rest.users().createUser(domainMember);
+
+        editResourcePage.selectDomain(domainModel, groupModel, resourceModel);
+        editResourcePage.goToTab("Members");
+        //Add user
+        editResourcePage.getResourceMembersTab().getInviteMemberBtn().click();
+        editResourcePage.getResourceMembersTab().getInviteMembersPopup().selectMember(domainMember.getUsername(), "VIEWER");
+        soft.assertTrue(editResourcePage.getResourceMembersTab().getMembersGrid().isValuePresentInColumn("Username", domainMember.getUsername()));
+
+        //Change role of user
+        editResourcePage.getResourceMembersTab().changeRoleOfUser(domainMember.getUsername(), "ADMIN");
+        String currentRoleTypeOfuser = editResourcePage.getResourceMembersTab().getMembersGrid().getColumnValueForSpecificRow("Username", domainMember.getUsername(), "Role type");
+        soft.assertEquals(currentRoleTypeOfuser, "ADMIN");
+
+        //Remove user
+        editResourcePage.getResourceMembersTab().removeUser(domainMember.getUsername());
+        soft.assertFalse(editResourcePage.getResourceMembersTab().getMembersGrid().isValuePresentInColumn("Username", domainMember.getUsername()));
+
+        soft.assertAll();
+    }
+
+    @Test(description = "EDTRES-02 Resource admins are to view their resources", priority = 1)
+    public void resourceAdminsAreAbleToViewTheirResources() {
+
+        UserModel domainMember = UserModel.generateUserWithUSERrole();
+        rest.users().createUser(domainMember);
+
+        editResourcePage.selectDomain(domainModel, groupModel, resourceModel);
+        editResourcePage.goToTab("Members");
+        //Add user
+        editResourcePage.getResourceMembersTab().getInviteMemberBtn().click();
+        editResourcePage.getResourceMembersTab().getInviteMembersPopup().selectMember(domainMember.getUsername(), "VIEWER");
+        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 {
+
+        UserModel resourseAdmin = UserModel.generateUserWithADMINrole();
+        rest.users().createUser(resourseAdmin);
+
+        MemberModel resourceMember = new MemberModel();
+        resourceMember.setUsername(resourseAdmin.getUsername());
+        resourceMember.setRoleType("VIEWER");
+
+        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
+        editResourcePage.refreshPage();
+        soft.assertTrue(editResourcePage.isCurrentUserAdministrator());
+
+        resourceMember.setRoleType("ADMIN");
+        rest.resources().addMembersToResource(domainModel, groupModel, resourceModel, resourceMember);
+        //Check if admin can see resources in Edit Resource page
+
+        editResourcePage.refreshPage();
+        soft.assertTrue(editResourcePage.getLeftSideGrid().isValuePresentInColumn("Identifier", resourceModel.getIdentifierValue()));
+        soft.assertAll();
+    }
+}
diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java
index cf9eb0bed6da8bdde1c54bbbb99b9633945c08cb..d0e07c87184abb1d7c8f0a89ab96d930b1eeb5bf 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/KeystorePgTests.java
@@ -73,7 +73,7 @@ public class KeystorePgTests extends SeleniumTest {
         soft.assertAll();
     }
 
-    @Test(description = "KEYS-03 SSystem admin is able to import duplicated keystore", priority = 1)
+    @Test(description = "KEYS-04 SSystem admin is able to import duplicated keystore", priority = 1)
     public void systemAdminIsAbleToImportDuplicatedKeyStores() throws Exception {
         String path = FileUtils.getAbsoluteKeystorePath("valid_keystore.jks");
 
diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java
index 598506a70542a05cf6aa5c408e9ae70ac5db0c15..4df7fc19e831db0039ffd6f20e53dc2e3c160ea7 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java
@@ -53,7 +53,7 @@ public class PropertiesPgTests extends SeleniumTest {
         soft.assertAll();
     }
 
-    @Test(description = "PRP-5 Value is validated according to expected format (URL")
+    @Test(description = "PRP-5 Value is validated according to expected format (URL)", priority = 4)
     public void propertyValueURLIsValidatedAccordingToExpectedFormat() throws Exception {
 
         String property = "bdmsl.integration.url";
diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java
index 2135517feddb219107802ce54d0e3c96d12c08ba..0019f6ddc19f98fc21f4c0d4b1f09657d376a71b 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/TrustorePgTests.java
@@ -34,11 +34,7 @@ public class TrustorePgTests extends SeleniumTest {
         soft.assertEquals(truststorepage.getValidToValue(), "22/3/2033, 10:49:22");
         soft.assertEquals(truststorepage.getIssuerValue(), "C=BE,O=eDelivery,CN=red_gw");
         soft.assertEquals(truststorepage.getSerialNumberValue(), "110fa0d8");
-
-
         soft.assertAll();
-
-
     }
 
     @Test(description = "TRST-02 System admin is able to import certificates")
@@ -60,10 +56,8 @@ public class TrustorePgTests extends SeleniumTest {
         String duplicatedCertificateALias = truststorepage.addCertificateAndReturnAlias(path);
         soft.assertNotNull(duplicatedCertificateALias);
         soft.assertTrue(truststorepage.getLeftSideGrid().isValuePresentInColumn("Alias", duplicatedCertificateALias));
-
         soft.assertAll();
 
-
     }
 
 }
diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java
index b122295e7e09b2781661265d3482e7c05b5dcd15..8301f79754c6e7f885fb2c64cbc3c29c35fae67f 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/UsersPgTests.java
@@ -51,7 +51,7 @@ public class UsersPgTests extends SeleniumTest {
 
     }
 
-    @Test(description = "USR-02 USR-02 System admin is not able to create duplicated user")
+    @Test(description = "USR-02 System admin is not able to create duplicated user")
     public void systemAdminIsNotAbleToCreateDuplicatedUser() throws Exception {
 
         loginPage.login(data.getAdminUser().get("username"), data.getAdminUser().get("password"));