diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/Grid/SmallGrid.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/Grid/SmallGrid.java
index 21865c5e36ee27ce1661314969892d0212b4ce06..8b21fe07da7b0d864e91fc4fa4ae81e640415f8f 100644
--- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/Grid/SmallGrid.java
+++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/Grid/SmallGrid.java
@@ -103,6 +103,45 @@ public class SmallGrid extends DComponent {
         }
         return false;
     }
+
+    public String getColumnValueForSpecificRow(String columnNameToSearch, String valueToSearch, String searchedColumnValue) {
+        wait.forXMillis(100);
+        Integer numOfPages = getGridPagination().getTotalPageNumber();
+        List<WebElement> rowHeaders = getGridHeaders();
+        int columnIndex = -1;
+        int searchedColumnIndex = -1;
+
+        for (int i = 0; i < rowHeaders.size(); i++) {
+            if (rowHeaders.get(i).getText().equals(columnNameToSearch)) {
+                columnIndex = i;
+            } else if (rowHeaders.get(i).getText().equals(searchedColumnValue)) {
+                searchedColumnIndex = i;
+            }
+            if (columnIndex != -1 && searchedColumnIndex != -1) {
+                break;
+            }
+        }
+
+        if (columnIndex == -1 || searchedColumnIndex == -1) {
+            LOG.debug("Search value was not found in the grid");
+            return null;
+        }
+        for (int pageNr = 1; pageNr < numOfPages + 1; pageNr++) {
+
+            List<WebElement> rows = getRows();
+            for (WebElement row : rows) {
+                List<WebElement> cells = getCells(row);
+                WebElement currentCell = cells.get(columnIndex);
+                if (currentCell.getText().equals(valueToSearch)) {
+                    LOG.debug("[{}] found on page [{}]", valueToSearch, pageNr);
+                    return cells.get(searchedColumnIndex).getText();
+                }
+            }
+            getGridPagination().goToNextPage();
+
+        }
+        return null;
+    }
     public void searchAndClickElementInColumn(String columnName, String value) {
 
         wait.forXMillis(100);
@@ -117,7 +156,6 @@ public class SmallGrid extends DComponent {
         }
         if (columnIndex == -1) {
             LOG.error("No element found");
-            ;
         }
         for (int pageNr = 1; pageNr < numOfPages + 1; pageNr++) {
 
diff --git a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/subcategoryTab/SubcategoryTabComponent.java b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/subcategoryTab/SubcategoryTabComponent.java
index 529dfab8fc577cef631a0ff47036bf26c4e27322..93fc4e7d30e615b1243c4839095714cbdcb15264 100644
--- a/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/subcategoryTab/SubcategoryTabComponent.java
+++ b/domiSMP-ui-tests/src/main/java/ddsl/dcomponents/commonComponents/subcategoryTab/SubcategoryTabComponent.java
@@ -36,7 +36,7 @@ public class SubcategoryTabComponent extends DComponent {
         return new SmallGrid(driver, rightSidePanel);
     }
 
-    public void create() throws ElementNotInteractableException {
+    protected void create() throws ElementNotInteractableException {
         weToDButton(createBtn).click();
     }
 
diff --git a/domiSMP-ui-tests/src/main/java/ddsl/enums/ResourceTypes.java b/domiSMP-ui-tests/src/main/java/ddsl/enums/ResourceTypes.java
index 4d63a784b67374eaef8cbea9212d011f397f13b6..c889ab45ab397734dce4654409071aec9aa6c1f5 100644
--- a/domiSMP-ui-tests/src/main/java/ddsl/enums/ResourceTypes.java
+++ b/domiSMP-ui-tests/src/main/java/ddsl/enums/ResourceTypes.java
@@ -15,7 +15,6 @@ public enum ResourceTypes {
 
     ResourceTypes(String name) {
         this.name = name;
-
     }
 
 
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/CreateGroupDetailsDialog.java b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/CreateGroupDetailsDialog.java
index 2f92e02bc4e6f042a45e73ad22dd30aff78827ee..d9d418986ad100fc2e37f87333c814f97ea24db3 100644
--- a/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/CreateGroupDetailsDialog.java
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editDomainsPage/CreateGroupDetailsDialog.java
@@ -29,11 +29,6 @@ public class CreateGroupDetailsDialog extends DComponent {
 
     }
 
-//    public AlertComponent getAlertArea() {
-//        return new AlertComponent(driver);
-//    }
-
-
     public AlertComponent getAlertArea(){
         if (  alertComponent == null){
             alertComponent = new AlertComponent(driver);
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/CreateResourceDetailsDialog.java b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/CreateResourceDetailsDialog.java
new file mode 100644
index 0000000000000000000000000000000000000000..01972941a72add59ff6ed56b915e422368fabb9c
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/CreateResourceDetailsDialog.java
@@ -0,0 +1,57 @@
+package pages.administration.editGroupsPage;
+
+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 CreateResourceDetailsDialog extends DComponent {
+
+    @FindBy(id = "resourceTypeIdentifier")
+    private WebElement resourceTypeDdl;
+    @FindBy(id = "identifierValue_id")
+    private WebElement resourceIdentifierInput;
+    @FindBy(id = "identifierScheme_id")
+    private WebElement resourceSchemeInput;
+    @FindBy(id = "visibility_id")
+    private WebElement resourceVisibilityDdl;
+    @FindBy(id = "saveButton")
+    private WebElement saveBtn;
+    private AlertComponent alertComponent = null;
+
+    public CreateResourceDetailsDialog(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) {
+        weToDSelect(resourceTypeDdl).selectValue(resourceModel.getResourceTypeIdentifier());
+        weToDInput(resourceIdentifierInput).fill(resourceModel.getIdentifierValue());
+        weToDInput(resourceSchemeInput).fill(resourceModel.getIdentifierScheme());
+
+        weToDSelect(resourceVisibilityDdl).selectValue(resourceModel.getVisibility());
+    }
+
+    public Boolean tryClickOnSave() {
+        wait.forElementToBeClickable(saveBtn);
+        if (weToDButton(saveBtn).isEnabled()) {
+            weToDButton(saveBtn).click();
+            return true;
+        } else {
+            return false;
+        }
+    }
+}
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/EditGroupsPage.java b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/EditGroupsPage.java
index 2cd13a80b0c7efef7f0170aa0e1ed3ada7ba5a04..e728928f077e2c330805a55a44b0206ec42b30a0 100644
--- a/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/EditGroupsPage.java
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/EditGroupsPage.java
@@ -4,7 +4,6 @@ import ddsl.CommonPageWithTabs;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.FindBy;
-import org.openqa.selenium.support.ui.Select;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import rest.models.DomainModel;
@@ -17,7 +16,7 @@ public class EditGroupsPage extends CommonPageWithTabs {
     @FindBy(id = "domain_id")
     private WebElement domainDdl;
     @FindBy(id = "group_id")
-    private Select groupDdl;
+    private WebElement groupDdl;
 
     public EditGroupsPage(WebDriver driver) {
         super(driver);
@@ -28,12 +27,17 @@ public class EditGroupsPage extends CommonPageWithTabs {
         weToMatSelect(domainDdl).selectByVisibleText(domainModel.getDomainCode());
     }
 
-    public GroupMembersTab getDomainMembersTab() {
+    public GroupMembersTab getGroupMembersTab() {
         return new GroupMembersTab(driver);
     }
 
-    public ResourceTab getGroupTab() {
+    public ResourceTab getResourceTab() {
         return new ResourceTab(driver);
     }
 
+    public void selectDomain(DomainModel domainModel, GroupModel groupModel) {
+        weToMatSelect(domainDdl).selectByVisibleText(domainModel.getDomainCode());
+        weToMatSelect(groupDdl).selectByVisibleText(groupModel.getGroupName());
+    }
+
 }
diff --git a/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/ResourceTab.java b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/ResourceTab.java
index e6168652e390b56cfcb2039fcb2235951005f270..1f0a3b821bc1b4db4abd8d4500c68aa6bbfa975a 100644
--- a/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/ResourceTab.java
+++ b/domiSMP-ui-tests/src/main/java/pages/administration/editGroupsPage/ResourceTab.java
@@ -5,7 +5,6 @@ import org.openqa.selenium.ElementNotInteractableException;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.support.PageFactory;
 import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
-import pages.administration.editDomainsPage.CreateGroupDetailsDialog;
 /**
  * Page object Resource tab of EditGroups page. This contains the locators of the page and the methods for the behaviour of the page
  */
@@ -16,8 +15,8 @@ public class ResourceTab extends SubcategoryTabComponent {
 
     }
 
-    public CreateGroupDetailsDialog clickOnCreateNewResource() throws ElementNotInteractableException {
+    public CreateResourceDetailsDialog clickOnCreateNewResource() throws ElementNotInteractableException {
         create();
-        return new CreateGroupDetailsDialog(driver);
+        return new CreateResourceDetailsDialog(driver);
     }
 }
diff --git a/domiSMP-ui-tests/src/main/java/rest/BaseRestClient.java b/domiSMP-ui-tests/src/main/java/rest/BaseRestClient.java
index 8e3bab9989e26bd065b0c74b56576c0965246580..34031ec10fb101add3361cb3ed149460023c510c 100644
--- a/domiSMP-ui-tests/src/main/java/rest/BaseRestClient.java
+++ b/domiSMP-ui-tests/src/main/java/rest/BaseRestClient.java
@@ -41,15 +41,7 @@ public class BaseRestClient {
     //	---------------------------------------Default request methods -------------------------------------------------
     protected ClientResponse requestPUT(WebResource resource, JSONObject body, String type) {
 
-        if (!isLoggedIn()) {
-            log.info("User is not loggedin");
-            try {
-                createSession();
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-
+        startSession();
         WebResource.Builder builder = decorateBuilder(resource);
 
         return builder.type(type).put(ClientResponse.class, body.toString());
@@ -57,15 +49,7 @@ public class BaseRestClient {
 
     protected ClientResponse requestPUT(WebResource resource, String body, String type) {
 
-        if (!isLoggedIn()) {
-            log.info("User is not loggedin");
-            try {
-                createSession();
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-
+        startSession();
         WebResource.Builder builder = decorateBuilder(resource);
 
         return builder.type(type).put(ClientResponse.class, body);
@@ -80,15 +64,7 @@ public class BaseRestClient {
     }
 
     protected ClientResponse requestPOST(WebResource resource, String body) {
-        if (!isLoggedIn()) {
-            log.info("User is not loggedin");
-            try {
-                createSession();
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-
+        startSession();
         WebResource.Builder builder = decorateBuilder(resource);
 
         return builder.type(MediaType.APPLICATION_JSON).post(ClientResponse.class, body);
@@ -114,7 +90,7 @@ public class BaseRestClient {
         return builder;
     }
 
-    public void createSession() throws Exception {
+    private void createNewSession() throws Exception {
         log.debug("Rest client using to login: " + this.username);
         HashMap<String, String> params = new HashMap<>();
         params.put("username", this.username);
@@ -156,11 +132,21 @@ public class BaseRestClient {
         return mytoken;
     }
 
-    public boolean isLoggedIn() {
+    private boolean isLoggedIn() {
 
         WebResource.Builder builder = decorateBuilder(resource.path(RestServicePaths.CONNECTED));
         int response = builder.get(ClientResponse.class).getStatus();
         log.debug("Connected endpoint returns: " + response);
         return (!(response == 401));
     }
+
+    public void startSession() {
+        if (!isLoggedIn()) {
+            try {
+                createNewSession();
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
 }
diff --git a/domiSMP-ui-tests/src/main/java/rest/DomainClient.java b/domiSMP-ui-tests/src/main/java/rest/DomainClient.java
index 4c01579eab4c21ba228bc4f765dcf7e4106484ed..c2c224c9f5eeb35ed0aeda6e85ddbb1cc2622787 100644
--- a/domiSMP-ui-tests/src/main/java/rest/DomainClient.java
+++ b/domiSMP-ui-tests/src/main/java/rest/DomainClient.java
@@ -6,6 +6,7 @@ import com.sun.jersey.api.client.ClientResponse;
 import ddsl.enums.ResourceTypes;
 import org.json.JSONObject;
 import rest.models.DomainModel;
+import rest.models.GroupModel;
 import rest.models.MemberModel;
 import utils.TestRunData;
 
@@ -21,22 +22,11 @@ public class DomainClient extends BaseRestClient {
         super();
     }
 
-    public JSONObject createDomain(DomainModel domainModel) {
+    public DomainModel createDomain(DomainModel domainModel) {
 
         JSONObject domainJson = new JSONObject(domainModel);
-
-        if (!isLoggedIn()) {
-            try {
-                createSession();
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-
         String createDomainPath = RestServicePaths.getCreateDomainPath(TestRunData.getInstance().getUserId());
-
         ClientResponse response = jsonPUT(resource.path(createDomainPath), domainJson);
-        JSONObject responseBody = new JSONObject(response.getEntity(String.class));
         if (response.getStatus() != 200) {
             try {
                 throw new SMPRestException("Could not create domain", response);
@@ -45,22 +35,13 @@ public class DomainClient extends BaseRestClient {
             }
         }
         log.debug("Domain: " + domainModel.getDomainCode() + "  has been created successfully!");
-        return responseBody;
-
+        return response.getEntity(DomainModel.class);
     }
 
-
-    public MemberModel addMembersToDomain(String domainId, MemberModel domainMember) throws JsonProcessingException {
+    public MemberModel addMembersToDomain(DomainModel domainModel, MemberModel domainMember) throws JsonProcessingException {
         ObjectMapper mapper = new ObjectMapper();
         String membersJson = mapper.writeValueAsString(domainMember);
-        if (!isLoggedIn()) {
-            try {
-                createSession();
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-        String addMemberPath = RestServicePaths.getDomainAddMemberPath(TestRunData.getInstance().getUserId(), domainId);
+        String addMemberPath = RestServicePaths.getDomainAddMemberPath(TestRunData.getInstance().getUserId(), domainModel.getDomainId());
 
         ClientResponse response = jsonPUT(resource.path(addMemberPath), membersJson);
         if (response.getStatus() != 200) {
@@ -74,7 +55,7 @@ public class DomainClient extends BaseRestClient {
         return response.getEntity(MemberModel.class);
     }
 
-    public DomainModel addResourcesToDomain(String domainId, List<ResourceTypes> resourceTypesList) throws JsonProcessingException {
+    public DomainModel addResourcesToDomain(DomainModel domainModel, List<ResourceTypes> resourceTypesList) throws JsonProcessingException {
         ObjectMapper mapper = new ObjectMapper();
         List<String> resourceListToBeAdded = new ArrayList<>();
         for (ResourceTypes resourceType : resourceTypesList) {
@@ -82,14 +63,7 @@ public class DomainClient extends BaseRestClient {
         }
 
         String resourceTypes = mapper.writeValueAsString(resourceListToBeAdded);
-        if (!isLoggedIn()) {
-            try {
-                createSession();
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-        String addMemberPath = RestServicePaths.getAddResourcePath(TestRunData.getInstance().getUserId(), resourceTypes);
+        String addMemberPath = RestServicePaths.getAddResourcePath(TestRunData.getInstance().getUserId(), domainModel.getDomainId());
         ClientResponse response = requestPOST(resource.path(addMemberPath), resourceTypes);
         if (response.getStatus() != 200) {
             try {
@@ -101,4 +75,19 @@ public class DomainClient extends BaseRestClient {
         log.debug("Resources have been added!");
         return response.getEntity(DomainModel.class);
     }
+
+    public GroupModel createGroupForDomain(DomainModel domainModel, GroupModel groupToBeCreated) {
+        JSONObject groupJson = new JSONObject(groupToBeCreated);
+        String createGroupPath = RestServicePaths.getCreateGroupPath(TestRunData.getInstance().getUserId(), domainModel.getDomainId());
+        ClientResponse response = jsonPUT(resource.path(createGroupPath), groupJson);
+        if (response.getStatus() != 200) {
+            try {
+                throw new SMPRestException("Could not create group!", response);
+            } catch (SMPRestException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        log.debug("Group have been added!");
+        return response.getEntity(GroupModel.class);
+    }
 }
diff --git a/domiSMP-ui-tests/src/main/java/rest/DomiSMPRestClient.java b/domiSMP-ui-tests/src/main/java/rest/DomiSMPRestClient.java
index 8818ef18297e686a3467fe27c9841e100ddd92da..45f72156c9e4835e1e24d156dc2ce8d36e1a71cf 100644
--- a/domiSMP-ui-tests/src/main/java/rest/DomiSMPRestClient.java
+++ b/domiSMP-ui-tests/src/main/java/rest/DomiSMPRestClient.java
@@ -4,15 +4,16 @@ public class DomiSMPRestClient extends BaseRestClient {
     public DomiSMPRestClient() {
         super();
     }
-
-    // -------------------------------------------- get clients -----------------------------------------------------------
     public UserClient users() {
         return new UserClient(username, password);
     }
-
     public DomainClient domains() {
         return new DomainClient();
     }
 
+    public GroupClient groups() {
+        return new GroupClient();
+    }
+
 }
 
diff --git a/domiSMP-ui-tests/src/main/java/rest/GroupClient.java b/domiSMP-ui-tests/src/main/java/rest/GroupClient.java
new file mode 100644
index 0000000000000000000000000000000000000000..a25adef5698f5bf8655eca0308c5f38332a0dc06
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/rest/GroupClient.java
@@ -0,0 +1,37 @@
+package rest;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.sun.jersey.api.client.ClientResponse;
+import rest.models.DomainModel;
+import rest.models.GroupModel;
+import rest.models.MemberModel;
+import utils.TestRunData;
+
+/**
+ * Rest client for group actions
+ */
+public class GroupClient extends BaseRestClient {
+
+    public GroupClient() {
+        super();
+    }
+
+    public MemberModel addMembersToGroup(DomainModel domainModel, GroupModel groupModel, MemberModel groupMember) throws JsonProcessingException {
+        ObjectMapper mapper = new ObjectMapper();
+        String membersJson = mapper.writeValueAsString(groupMember);
+
+        String addGroupMemberPath = RestServicePaths.getGroupAddMemberPath(TestRunData.getInstance().getUserId(), domainModel.getDomainId(), groupModel.getGroupId());
+
+        ClientResponse response = jsonPUT(resource.path(addGroupMemberPath), membersJson);
+        if (response.getStatus() != 200) {
+            try {
+                throw new SMPRestException("Could not add members to group", 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 db1bd29575970abfa8c7ac1839177c4f8f4df4d2..32058cae93426412e46a6f7725c35423e248aa8a 100644
--- a/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java
+++ b/domiSMP-ui-tests/src/main/java/rest/RestServicePaths.java
@@ -41,4 +41,15 @@ public class RestServicePaths {
     }
 
 
+    //Groups
+    public static String getCreateGroupPath(String currentUserId, String domainId) {
+
+        return CONTEXT_PATH_EDIT + currentUserId + "/domain/" + domainId + "/group/create";
+    }
+
+    public static String getGroupAddMemberPath(String currentUserId, String domainId, String groupId) {
+
+        return CONTEXT_PATH_EDIT + currentUserId + "/domain/" + domainId + "/group/" + groupId + "/member/put";
+    }
+
 }
diff --git a/domiSMP-ui-tests/src/main/java/rest/UserClient.java b/domiSMP-ui-tests/src/main/java/rest/UserClient.java
index 3e3f1554fee9a8a0ebefc68f83fda54b4bd3c870..c17805b8615ef8fc395c599746a63d04b2349b01 100644
--- a/domiSMP-ui-tests/src/main/java/rest/UserClient.java
+++ b/domiSMP-ui-tests/src/main/java/rest/UserClient.java
@@ -5,31 +5,18 @@ import org.json.JSONObject;
 import rest.models.UserModel;
 import utils.TestRunData;
 
+/**
+ * Rest client for user actions
+ */
 public class UserClient extends BaseRestClient {
-
-
-    /**
-     * Rest client for user actions
-     */
-
     public UserClient(String username, String password) {
         super(username, password);
     }
-
     public JSONObject createUser(UserModel user) {
 
         JSONObject usrObj = new JSONObject(user);
-
-        if (!isLoggedIn()) {
-            try {
-                createSession();
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-
+        startSession();
         String usersPath = RestServicePaths.getUsersPath(TestRunData.getInstance().getUserId());
-
         ClientResponse response = jsonPUT(resource.path(usersPath), usrObj);
         JSONObject responseBody = new JSONObject(response.getEntity(String.class));
         // extract userId to be used in the Paths of the requests
@@ -53,13 +40,10 @@ public class UserClient extends BaseRestClient {
 
     public JSONObject changePassword(String forUserId, String newPassword) {
 
-
         String changePasswordPath = RestServicePaths.getChangePasswordPath(TestRunData.getInstance().getUserId(), forUserId);
         JSONObject passwordChangeBody = new JSONObject();
         passwordChangeBody.put("currentPassword", password);
         passwordChangeBody.put("newPassword", newPassword);
-
-
         ClientResponse response = jsonPUT(resource.path(changePasswordPath), passwordChangeBody);
         return new JSONObject(response.getEntity(String.class));
     }
diff --git a/domiSMP-ui-tests/src/main/java/rest/models/DomainModel.java b/domiSMP-ui-tests/src/main/java/rest/models/DomainModel.java
index 1c3d1b8d4195ee8e85d1a37579f6cb4b1de20368..f6173cbef632199979734da5056d06dbaaa68613 100644
--- a/domiSMP-ui-tests/src/main/java/rest/models/DomainModel.java
+++ b/domiSMP-ui-tests/src/main/java/rest/models/DomainModel.java
@@ -1,9 +1,12 @@
 package rest.models;
 
 import ddsl.enums.ResponseCertificates;
+import org.apache.commons.lang3.StringUtils;
 import utils.Generator;
 import utils.Utils;
 
+import java.util.List;
+
 import static ddsl.enums.ResponseCertificates.SMP_DOMAIN_01;
 import static ddsl.enums.ResponseCertificates.SMP_DOMAIN_02;
 
@@ -11,6 +14,7 @@ public class DomainModel {
 
     private String smlSmpId;
     private String domainCode;
+    private String domainId;
     private boolean smlRegistered;
     private String visibility;
     private String smlClientKeyAlias;
@@ -18,32 +22,14 @@ public class DomainModel {
     private String smlSubdomain;
     private String smlParticipantIdentifierRegExp;
     private boolean smlClientCertAuth;
-    private int status;
-
+    private Object actionMessage;
+    private Object defaultResourceTypeIdentifier;
+    private List<Object> groups;
+    private Long index;
+    private List<String> resourceDefinitions;
+    private Long status;
     public DomainModel() {
     }
-
-    public static DomainModel generatePublicDomainModelWithoutSML() {
-        DomainModel domainModel = new DomainModel();
-        domainModel.domainCode = "AUTDom" + Generator.randomAlphaNumeric(6);
-        domainModel.signatureKeyAlias = Utils.randomEnum(ResponseCertificates.values()).getName();
-        domainModel.visibility = "PUBLIC";
-        return domainModel;
-    }
-
-    public static DomainModel generatePublicDomainModelWithSML() {
-        DomainModel domainModel = new DomainModel();
-        domainModel.domainCode = "AUTDom" + Generator.randomAlphaNumeric(6);
-        domainModel.signatureKeyAlias = Utils.randomEnum(new ResponseCertificates[]{SMP_DOMAIN_01, SMP_DOMAIN_02}).getName();
-        domainModel.visibility = "PUBLIC";
-        domainModel.smlClientCertAuth = true;
-        domainModel.smlSubdomain = "AUTDomSML" + Generator.randomAlphaNumeric(6);
-        domainModel.smlSmpId = "AUTSMLSMP" + Generator.randomAlphaNumeric(4);
-        domainModel.smlClientKeyAlias = Utils.randomEnum(new ResponseCertificates[]{SMP_DOMAIN_01, SMP_DOMAIN_02}).toString().toLowerCase();
-        return domainModel;
-    }
-
-
     public String getSmlSmpId() {
         return smlSmpId;
     }
@@ -80,8 +66,92 @@ public class DomainModel {
         return smlClientCertAuth;
     }
 
-    public int getStatus() {
-        return status;
+    public void setIndex(Long index) {
+        this.index = index;
+    }
+
+    public void setStatus(Long status) {
+        this.status = status;
+    }
+
+    public void setResourceDefinitions(List<String> resourceDefinitions) {
+        this.resourceDefinitions = resourceDefinitions;
+    }
+
+    public void setSmlSmpId(String smlSmpId) {
+        this.smlSmpId = smlSmpId;
+    }
+
+    public void setDomainCode(String domainCode) {
+        this.domainCode = domainCode;
+    }
+
+    public String getDomainId() {
+        return domainId;
+    }
+
+    public void setDomainId(String domainId) {
+        this.domainId = domainId;
+    }
+
+    public void setSmlRegistered(boolean smlRegistered) {
+        this.smlRegistered = smlRegistered;
+    }
+
+    public void setVisibility(String visibility) {
+        this.visibility = visibility;
+    }
+
+    public void setSmlClientKeyAlias(String smlClientKeyAlias) {
+        this.smlClientKeyAlias = smlClientKeyAlias;
+    }
+
+    public void setSignatureKeyAlias(String signatureKeyAlias) {
+        this.signatureKeyAlias = signatureKeyAlias;
+    }
+
+    public void setSmlSubdomain(String smlSubdomain) {
+        this.smlSubdomain = smlSubdomain;
+    }
+
+    public void setSmlParticipantIdentifierRegExp(String smlParticipantIdentifierRegExp) {
+        this.smlParticipantIdentifierRegExp = smlParticipantIdentifierRegExp;
+    }
+
+    public void setSmlClientCertAuth(boolean smlClientCertAuth) {
+        this.smlClientCertAuth = smlClientCertAuth;
+    }
+
+    public void setActionMessage(Object actionMessage) {
+        this.actionMessage = actionMessage;
+    }
+
+    public void setDefaultResourceTypeIdentifier(Object defaultResourceTypeIdentifier) {
+        this.defaultResourceTypeIdentifier = defaultResourceTypeIdentifier;
+    }
+
+    public void setGroups(List<Object> groups) {
+        this.groups = groups;
+    }
+
+    public static DomainModel generatePublicDomainModelWithSML() {
+        DomainModel domainModel = new DomainModel();
+        domainModel.domainCode = "AUTDom" + Generator.randomAlphaNumericValue(6);
+        domainModel.signatureKeyAlias = Utils.randomEnum(new ResponseCertificates[]{SMP_DOMAIN_01, SMP_DOMAIN_02}).getName();
+        domainModel.visibility = "PUBLIC";
+        domainModel.smlClientCertAuth = true;
+        domainModel.smlSubdomain = "AUTDomSML" + Generator.randomAlphaNumericValue(6);
+        domainModel.smlSmpId = "AUTSMLSMP" + Generator.randomAlphaNumericValue(4);
+        domainModel.smlClientKeyAlias = StringUtils.lowerCase(Utils.randomEnum(new ResponseCertificates[]{SMP_DOMAIN_01, SMP_DOMAIN_02}).toString());
+        return domainModel;
+    }
+
+    public static DomainModel generatePublicDomainModelWithoutSML() {
+        DomainModel domainModel = new DomainModel();
+        domainModel.domainCode = "AUTDom" + Generator.randomAlphaNumericValue(6);
+        domainModel.signatureKeyAlias = Utils.randomEnum(ResponseCertificates.values()).getName();
+        domainModel.visibility = "PUBLIC";
+        return domainModel;
     }
 }
 
diff --git a/domiSMP-ui-tests/src/main/java/rest/models/GroupModel.java b/domiSMP-ui-tests/src/main/java/rest/models/GroupModel.java
index cf5e6a666c0ae6efc48e5a6ecbabb1dff2e889d5..dfc9576909a8b4b59f5d55dfb6af17ba32fb68c0 100644
--- a/domiSMP-ui-tests/src/main/java/rest/models/GroupModel.java
+++ b/domiSMP-ui-tests/src/main/java/rest/models/GroupModel.java
@@ -1,50 +1,73 @@
 package rest.models;
 
-
 import utils.Generator;
 
+
 public class GroupModel {
     private String groupName;
     private String visibility;
     private String groupDescription;
+    private Object actionMessage;
+    private String groupId;
+    private Long index;
+    private Long status;
 
-    public static GroupModel generatePublicDomain() {
-        GroupModel groupModel = new GroupModel();
-        groupModel.groupName = ("AUT_groupName_" + Generator.randomAlphaNumeric(4)).toLowerCase();
-        groupModel.groupDescription = Generator.randomAlphaNumeric(10).toLowerCase();
-        groupModel.visibility = "PUBLIC";
-        return groupModel;
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
     }
 
-    public static GroupModel generatePrivateDomain() {
-        GroupModel groupModel = new GroupModel();
-        groupModel.groupName = ("AUT_groupName_" + Generator.randomAlphaNumeric(4)).toLowerCase();
-        groupModel.groupDescription = Generator.randomAlphaNumeric(10).toLowerCase();
-        groupModel.visibility = "PRIVATE";
-        return groupModel;
+    public void setVisibility(String visibility) {
+        this.visibility = visibility;
     }
 
-    public String getGroupName() {
-        return groupName;
+    public void setGroupDescription(String groupDescription) {
+        this.groupDescription = groupDescription;
     }
 
-    public void setGroupName(String groupName) {
-        this.groupName = groupName;
+    public void setActionMessage(Object actionMessage) {
+        this.actionMessage = actionMessage;
     }
 
-    public String getVisibility() {
-        return visibility;
+    public String getGroupId() {
+        return groupId;
     }
 
-    public void setVisibility(String visibility) {
-        this.visibility = visibility;
+    public void setGroupId(String groupId) {
+        this.groupId = groupId;
     }
 
+    public void setIndex(Long index) {
+        this.index = index;
+    }
+
+    public void setStatus(Long status) {
+        this.status = status;
+    }
+
+    public String getGroupName() {
+        return groupName;
+    }
+    public String getVisibility() {
+        return visibility;
+    }
     public String getGroupDescription() {
         return groupDescription;
     }
 
-    public void setGroupDescription(String groupDescription) {
-        this.groupDescription = groupDescription;
+    public static GroupModel generatePublicGroup() {
+        GroupModel groupModel = new GroupModel();
+        groupModel.groupName = ("AUT_groupName_" + Generator.randomAlphaNumericValue(4)).toLowerCase();
+        groupModel.groupDescription = Generator.randomAlphaNumericValue(10).toLowerCase();
+        groupModel.visibility = "PUBLIC";
+        return groupModel;
+    }
+
+    public static GroupModel generatePrivateGroup() {
+        GroupModel groupModel = new GroupModel();
+        groupModel.groupName = ("AUT_groupName_" + Generator.randomAlphaNumericValue(4)).toLowerCase();
+        groupModel.groupDescription = Generator.randomAlphaNumericValue(10).toLowerCase();
+        groupModel.visibility = "PRIVATE";
+        return groupModel;
     }
+
 }
diff --git a/domiSMP-ui-tests/src/main/java/rest/models/ResourceModel.java b/domiSMP-ui-tests/src/main/java/rest/models/ResourceModel.java
new file mode 100644
index 0000000000000000000000000000000000000000..119fb50a7c9bfb9db8fa697ac3335c30d7f64d11
--- /dev/null
+++ b/domiSMP-ui-tests/src/main/java/rest/models/ResourceModel.java
@@ -0,0 +1,88 @@
+
+package rest.models;
+
+import ddsl.enums.ResourceTypes;
+import org.apache.commons.lang3.StringUtils;
+import utils.Generator;
+import utils.Utils;
+
+import static utils.Utils.getAllEnumValues;
+
+
+public class ResourceModel {
+
+    private Object actionMessage;
+    private String identifierScheme;
+    private String identifierValue;
+    private Long index;
+    private String resourceId;
+    private String resourceTypeIdentifier;
+    private Boolean smlRegistered;
+    private Long status;
+    private String visibility;
+
+    public static ResourceModel generatePublicResource() {
+        ResourceModel resourceModel = new ResourceModel();
+        resourceModel.resourceTypeIdentifier = StringUtils.lowerCase(Utils.randomEnum(getAllEnumValues(ResourceTypes.class)).getName());
+        resourceModel.identifierValue = ("AUT_resourceIdentifier_" + Generator.randomAlphaNumericValue(4)).toLowerCase();
+        resourceModel.identifierScheme = Generator.randomAlphabeticalValue(4).toLowerCase() + "-" + Generator.randomAlphaNumericValue(4).toLowerCase() + "-" + Generator.randomAlphaNumericValue(4).toLowerCase();
+        resourceModel.visibility = "PUBLIC";
+        return resourceModel;
+    }
+
+    public String getIdentifierScheme() {
+        return identifierScheme;
+    }
+
+    public void setIdentifierScheme(String identifierScheme) {
+        this.identifierScheme = identifierScheme;
+    }
+
+    public String getIdentifierValue() {
+        return identifierValue;
+    }
+
+    public void setIdentifierValue(String identifierValue) {
+        this.identifierValue = identifierValue;
+    }
+
+    public String getResourceId() {
+        return resourceId;
+    }
+
+    public void setResourceId(String resourceId) {
+        this.resourceId = resourceId;
+    }
+
+    public String getResourceTypeIdentifier() {
+        return resourceTypeIdentifier;
+    }
+
+    public void setResourceTypeIdentifier(String resourceTypeIdentifier) {
+        this.resourceTypeIdentifier = resourceTypeIdentifier;
+    }
+
+    public void setActionMessage(Object actionMessage) {
+        this.actionMessage = actionMessage;
+    }
+
+    public void setIndex(Long index) {
+        this.index = index;
+    }
+
+    public void setSmlRegistered(Boolean smlRegistered) {
+        this.smlRegistered = smlRegistered;
+    }
+
+    public void setStatus(Long status) {
+        this.status = status;
+    }
+
+    public String getVisibility() {
+        return visibility;
+    }
+
+    public void setVisibility(String visibility) {
+        this.visibility = visibility;
+    }
+}
diff --git a/domiSMP-ui-tests/src/main/java/rest/models/UserModel.java b/domiSMP-ui-tests/src/main/java/rest/models/UserModel.java
index d44e011578a376a6170b6c974a23bdb4932d9cd0..64fd115e8317016d24668525d5d3a9e12519b922 100644
--- a/domiSMP-ui-tests/src/main/java/rest/models/UserModel.java
+++ b/domiSMP-ui-tests/src/main/java/rest/models/UserModel.java
@@ -16,6 +16,9 @@ public class UserModel {
     private String smpTheme;
     private String smpLocale;
 
+    public UserModel() {
+    }
+
     public UserModel(String username, boolean active, String role, String emailAddress, String fullName, String smpTheme, String smpLocale) {
         this.username = username;
         this.active = active;
@@ -26,9 +29,6 @@ public class UserModel {
         this.smpLocale = smpLocale;
     }
 
-    public UserModel() {
-    }
-
     public String getUserId() {
         return userId;
     }
@@ -96,11 +96,11 @@ public class UserModel {
 
     public static UserModel generateUserWithUSERrole() {
         UserModel userModel = new UserModel();
-        userModel.username = ("AUT_username_" + Generator.randomAlphaNumeric(4)).toLowerCase();
+        userModel.username = ("AUT_username_" + Generator.randomAlphaNumericValue(4)).toLowerCase();
         userModel.active = true;
         userModel.role = ApplicationRoles.USER;
-        userModel.emailAddress = "AUT_email_" + Generator.randomAlphaNumeric(4) + "@automation.com";
-        userModel.fullName = "AUT_fullname_" + Generator.randomAlphaNumeric(4);
+        userModel.emailAddress = "AUT_email_" + Generator.randomAlphaNumericValue(4) + "@automation.com";
+        userModel.fullName = "AUT_fullname_" + Generator.randomAlphaNumericValue(4);
         userModel.smpTheme = SMPThemes.getRandomTheme();
         userModel.smpLocale = "English";
         return userModel;
@@ -108,11 +108,11 @@ public class UserModel {
 
     public static UserModel generateUserWithADMINrole() {
         UserModel userModel = new UserModel();
-        userModel.username = ("AUT_username_" + Generator.randomAlphaNumeric(4)).toLowerCase();
+        userModel.username = ("AUT_username_" + Generator.randomAlphaNumericValue(4)).toLowerCase();
         userModel.active = true;
         userModel.role = ApplicationRoles.SYSTEM_ADMIN;
-        userModel.emailAddress = "AUT_email_" + Generator.randomAlphaNumeric(4) + "@automation.com";
-        userModel.fullName = "AUT_fullname_" + Generator.randomAlphaNumeric(4);
+        userModel.emailAddress = "AUT_email_" + Generator.randomAlphaNumericValue(4) + "@automation.com";
+        userModel.fullName = "AUT_fullname_" + Generator.randomAlphaNumericValue(4);
         userModel.smpTheme = SMPThemes.getRandomTheme();
         userModel.smpLocale = "English";
         return userModel;
@@ -120,8 +120,8 @@ public class UserModel {
 
     public static UserModel generateUserProfileData() {
         UserModel userModel = new UserModel();
-        userModel.emailAddress = "AUT_email_" + Generator.randomAlphaNumeric(4) + "@automation.com";
-        userModel.fullName = "AUT_fullname_" + Generator.randomAlphaNumeric(4);
+        userModel.emailAddress = "AUT_email_" + Generator.randomAlphaNumericValue(4) + "@automation.com";
+        userModel.fullName = "AUT_fullname_" + Generator.randomAlphaNumericValue(4);
         userModel.smpTheme = SMPThemes.getRandomTheme();
         userModel.smpLocale = "English";
         return userModel;
diff --git a/domiSMP-ui-tests/src/main/java/utils/Generator.java b/domiSMP-ui-tests/src/main/java/utils/Generator.java
index d44721cd17cc4c0bea268fbe860386b880568be3..120c89647fb6ec8cd15f0abff4671e5aa12b08f1 100644
--- a/domiSMP-ui-tests/src/main/java/utils/Generator.java
+++ b/domiSMP-ui-tests/src/main/java/utils/Generator.java
@@ -2,8 +2,10 @@ package utils;
 
 public class Generator {
     private static final String ALPHA_NUMERIC_STRING = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+    private static final String ALPHABETICAL_STRING = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 
-    public static String randomAlphaNumeric(int count) {
+
+    public static String randomAlphaNumericValue(int count) {
         StringBuilder builder = new StringBuilder();
         while (count-- != 0) {
             int character = (int) (Math.random() * ALPHA_NUMERIC_STRING.length());
@@ -12,6 +14,15 @@ public class Generator {
         return builder.toString();
     }
 
+    public static String randomAlphabeticalValue(int count) {
+        StringBuilder builder = new StringBuilder();
+        while (count-- != 0) {
+            int character = (int) (Math.random() * ALPHABETICAL_STRING.length());
+            builder.append(ALPHABETICAL_STRING.charAt(character));
+        }
+        return builder.toString();
+    }
+
 
 }
 
diff --git a/domiSMP-ui-tests/src/main/java/utils/TestRunData.java b/domiSMP-ui-tests/src/main/java/utils/TestRunData.java
index 01fc5bff527b1d042fc2cf26ed097f30162d4d55..f07c5094397bdaed3636ce9e556445c76cdc5cab 100644
--- a/domiSMP-ui-tests/src/main/java/utils/TestRunData.java
+++ b/domiSMP-ui-tests/src/main/java/utils/TestRunData.java
@@ -153,6 +153,10 @@ public class TestRunData {
         return getUser(ApplicationRoles.SYSTEM_ADMIN);
     }
 
+    public String getAdminUsername() {
+        return getUser(ApplicationRoles.SYSTEM_ADMIN).get("username");
+    }
+
     public String getDefaultPassword() {
         return getPropertyValue(TestEnvironmentProperty.TEST_DATA_PASSWORD_DEFAULT);
     }
diff --git a/domiSMP-ui-tests/src/main/java/utils/Utils.java b/domiSMP-ui-tests/src/main/java/utils/Utils.java
index 37b3ecbf1776bf09264610414f4e4ba753590fa4..e0e79d554b6c97d0238de716ac7b24b4a3a1dc90 100644
--- a/domiSMP-ui-tests/src/main/java/utils/Utils.java
+++ b/domiSMP-ui-tests/src/main/java/utils/Utils.java
@@ -10,6 +10,10 @@ public class Utils {
         return values[x];
     }
 
+    public static <T extends Enum<T>> T[] getAllEnumValues(Class<T> enumClass) {
+        return enumClass.getEnumConstants();
+    }
+
     public static String getAliasFromMessage(String message){
         Pattern pattern = Pattern.compile("(?<= \\[)(.*?)(?=\\])");
         Matcher matcher = pattern.matcher(message);
diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java
index cbfd7c5349649e6f0fc9a04a0ccee0088ed4e3ce..a3c5b1a99901fa4f8820e2932e15d3f965a96828 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/DomainsPgTests.java
@@ -14,11 +14,10 @@ import pages.systemSettings.domainsPage.DomainsPage;
 import rest.models.DomainModel;
 import rest.models.UserModel;
 
+/**
+ * This class has the tests against Domains Page
+ */
 public class DomainsPgTests extends SeleniumTest {
-
-    /**
-     * This class has the tests against Domains Page
-     */
     DomiSMPPage homePage;
     LoginPage loginPage;
     DomainsPage domainsPage;
@@ -35,7 +34,7 @@ public class DomainsPgTests extends SeleniumTest {
 
 
     @Test(description = "DOM-01 System admin is able to create Domains")
-    public void SystemAdminIsAbleToCreateDomains() throws Exception {
+    public void SystemAdminIsAbleToCreateDomains() {
         DomainModel domainModel = DomainModel.generatePublicDomainModelWithoutSML();
 
         domainsPage.getCreateDomainBtn().click();
diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditDomainsPgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditDomainsPgTests.java
index 4c43ea4ee0616ece2c794638c0e6d08f600ff73a..2c9b6e02d02d56cc3c4d29b8c09408b666db4873 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditDomainsPgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditDomainsPgTests.java
@@ -3,7 +3,6 @@ package domiSMPTests.ui;
 import ddsl.DomiSMPPage;
 import ddsl.enums.Pages;
 import domiSMPTests.SeleniumTest;
-import org.json.JSONObject;
 import org.openqa.selenium.WebElement;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Ignore;
@@ -39,9 +38,8 @@ public class EditDomainsPgTests extends SeleniumTest {
         domainMember.setRoleType("ADMIN");
 
         rest.users().createUser(adminUser);
-        JSONObject domainJson = rest.domains().createDomain(domainModel);
-        domainId = domainJson.get("domainId").toString();
-        rest.domains().addMembersToDomain(domainId, domainMember);
+        domainModel = rest.domains().createDomain(domainModel);
+        rest.domains().addMembersToDomain(domainModel, domainMember);
 
         homePage = new DomiSMPPage(driver);
         loginPage = homePage.goToLoginPage();
@@ -51,64 +49,30 @@ public class EditDomainsPgTests extends SeleniumTest {
 
     @Test(description = "EDTDOM-01 Domain admins are able to invite/edit/remove members")
     public void DomainAdminsAreAbleToInviteEditRemoveMembers() throws Exception {
-        UserModel memberUser = UserModel.generateUserWithADMINrole();
-        rest.users().createUser(memberUser);
+        UserModel domainMember = UserModel.generateUserWithUSERrole();
+        rest.users().createUser(domainMember);
 
-        //Invite user as VIEW and check if he has admin rights for domain
-        editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
+        //Add user
         editDomainPage.getDomainMembersTab().getInviteMemberBtn().click();
-        editDomainPage.getDomainMembersTab().getInviteMembersPopup().selectMember(memberUser.getUsername(), "VIEWER");
-        WebElement userMemberElement = editDomainPage.getDomainMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", memberUser.getUsername());
-        soft.assertNotNull(userMemberElement, "Invited user is found");
-
-        //check if user has admin rights to domain as VIEWER
-        homePage.logout();
-        homePage.goToLoginPage();
-        loginPage.login(memberUser.getUsername(), data.getNewPassword());
-        EditDomainsPage editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
-        WebElement domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
-        soft.assertNull(domainElement, "Domain found for user which doesn't have rights");
-
-        homePage.logout();
-        loginPage = homePage.goToLoginPage();
-        loginPage.login(adminUser.getUsername(), data.getNewPassword());
-        editDomainPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
-        editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
-        editDomainPage.getDomainMembersTab().changeRoleOfUser(memberUser.getUsername(), "ADMIN");
+        editDomainPage.getDomainMembersTab().getInviteMembersPopup().selectMember(domainMember.getUsername(), "VIEWER");
+        soft.assertTrue(editDomainPage.getDomainMembersTab().getMembersGrid().isValuePresentInColumn("Username", domainMember.getUsername()));
 
-        //check if user has admin rights to domain as Admin
-        homePage.logout();
-        homePage.goToLoginPage();
-        loginPage.login(memberUser.getUsername(), data.getNewPassword());
-        editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
-        domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
-        soft.assertNotNull(domainElement, "Domain found for user which doesn't have rights");
+        //Change role of user
+        editDomainPage.getDomainMembersTab().changeRoleOfUser(domainMember.getUsername(), "ADMIN");
+        String currentRoleTypeOfuser = editDomainPage.getDomainMembersTab().getMembersGrid().getColumnValueForSpecificRow("Username", domainMember.getUsername(), "Role type");
+        soft.assertEquals(currentRoleTypeOfuser, "ADMIN");
 
+        //Remove user
+        editDomainPage.getDomainMembersTab().removeUser(domainMember.getUsername());
+        soft.assertFalse(editDomainPage.getDomainMembersTab().getMembersGrid().isValuePresentInColumn("Username", domainMember.getUsername()));
 
-        //Remove member user and check if he has access to the domain
-        homePage.logout();
-        homePage.goToLoginPage();
-        loginPage.login(adminUser.getUsername(), data.getNewPassword());
-        editDomainPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
-        editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
-        editDomainPage.getDomainMembersTab().removeUser(memberUser.getUsername());
-        userMemberElement = editDomainPage.getDomainMembersTab().getMembersGrid().searchAndGetElementInColumn("Username", memberUser.getUsername());
-        soft.assertNull(userMemberElement, "Domain found for user which doesn't have rights");
-
-        homePage.logout();
-        homePage.goToLoginPage();
-        loginPage.login(memberUser.getUsername(), data.getNewPassword());
-        editDomainsPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
-        domainElement = editDomainsPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode());
-        soft.assertNull(domainElement, "Domain found for user which doesn't have rights");
         soft.assertAll();
-
     }
 
     @Ignore
     @Test(description = "EDTDOM-02 Domain admins are able to create new groups")
     public void domainAdminsAreAbleToCreate() throws Exception {
-        GroupModel groupToBeCreated = GroupModel.generatePublicDomain();
+        GroupModel groupToBeCreated = GroupModel.generatePublicGroup();
         editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
 
         editDomainPage.goToTab("Group");
@@ -128,7 +92,7 @@ public class EditDomainsPgTests extends SeleniumTest {
 
     @Test(description = "EDTDOM-03 Domain admins are not able to create duplicated groups")
     public void domainAdminsAreNotAbleToCreateDuplicatedGroups() throws Exception {
-        GroupModel duplicatedGroup = GroupModel.generatePublicDomain();
+        GroupModel duplicatedGroup = GroupModel.generatePublicGroup();
 
         editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
         editDomainPage.goToTab("Group");
@@ -149,7 +113,7 @@ public class EditDomainsPgTests extends SeleniumTest {
 
     @Test(description = "EDTDOM-04 Domain admins are able to delete groups without resources")
     public void domainAdminsAreNotAbleToDeleteGroups() throws Exception {
-        GroupModel groupToBeDeleted = GroupModel.generatePublicDomain();
+        GroupModel groupToBeDeleted = GroupModel.generatePublicGroup();
 
         editDomainPage.getLeftSideGrid().searchAndGetElementInColumn("Domain code", domainModel.getDomainCode()).click();
         editDomainPage.goToTab("Group");
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 25629381d77de543596d221374557315f1270bf4..06f35f31d8ad96495f539df7959c8d87442d6d18 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditGroupsPgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/EditGroupsPgTests.java
@@ -4,15 +4,13 @@ import ddsl.DomiSMPPage;
 import ddsl.enums.Pages;
 import ddsl.enums.ResourceTypes;
 import domiSMPTests.SeleniumTest;
-import org.json.JSONObject;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 import org.testng.asserts.SoftAssert;
 import pages.LoginPage;
-import pages.administration.editDomainsPage.EditDomainsPage;
-import rest.models.DomainModel;
-import rest.models.MemberModel;
-import rest.models.UserModel;
+import pages.administration.editGroupsPage.CreateResourceDetailsDialog;
+import pages.administration.editGroupsPage.EditGroupsPage;
+import rest.models.*;
 
 import java.util.Arrays;
 import java.util.List;
@@ -20,10 +18,10 @@ import java.util.List;
 public class EditGroupsPgTests extends SeleniumTest {
     DomiSMPPage homePage;
     LoginPage loginPage;
-    EditDomainsPage editDomainPage;
-    String domainId;
-    DomainModel domainModel;
+    EditGroupsPage editGroupPage;
     UserModel adminUser;
+    DomainModel domainModel;
+    GroupModel groupModel;
     SoftAssert soft;
 
     @BeforeMethod(alwaysRun = true)
@@ -31,28 +29,77 @@ public class EditGroupsPgTests extends SeleniumTest {
         soft = new SoftAssert();
         domainModel = DomainModel.generatePublicDomainModelWithSML();
         adminUser = UserModel.generateUserWithADMINrole();
+        groupModel = GroupModel.generatePublicGroup();
+        MemberModel adminMember = new MemberModel() {
+        };
+        adminMember.setUsername(adminUser.getUsername());
+        adminMember.setRoleType("ADMIN");
+
+        MemberModel superMember = new MemberModel();
+        superMember.setUsername(data.getAdminUsername());
+        superMember.setRoleType("ADMIN");
+
+        //create user
+        rest.users().createUser(adminUser).getString("userId");
 
-        MemberModel domainMember = new MemberModel();
-        domainMember.setUsername(adminUser.getUsername());
-        domainMember.setRoleType("ADMIN");
+        //create domain
+        domainModel = rest.domains().createDomain(domainModel);
 
-        rest.users().createUser(adminUser);
-        JSONObject domainJson = rest.domains().createDomain(domainModel);
-        domainId = domainJson.get("domainId").toString();
-        rest.domains().addMembersToDomain(domainId, domainMember);
+        //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);
 
-        rest.domains().addResourcesToDomain(domainId, resourcesToBeAdded);
 
         homePage = new DomiSMPPage(driver);
         loginPage = homePage.goToLoginPage();
         loginPage.login(adminUser.getUsername(), data.getNewPassword());
-        editDomainPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_DOMAINS);
+        editGroupPage = homePage.getSidebar().navigateTo(Pages.ADMINISTRATION_EDIT_GROUPS);
+    }
+
+    @Test(description = "EDTGRP-01 Group admins are able to invite/edit/remove group members", priority = 2)
+    public void groupAdminsAreAbleToInviteEditRemoveMembers() {
+
+        UserModel domainMember = UserModel.generateUserWithUSERrole();
+        rest.users().createUser(domainMember);
+
+        editGroupPage.selectDomain(domainModel, groupModel);
+        //Add user
+        editGroupPage.getGroupMembersTab().getInviteMemberBtn().click();
+        editGroupPage.getGroupMembersTab().getInviteMembersPopup().selectMember(domainMember.getUsername(), "VIEWER");
+        soft.assertTrue(editGroupPage.getGroupMembersTab().getMembersGrid().isValuePresentInColumn("Username", domainMember.getUsername()));
+
+        //Change role of user
+        editGroupPage.getGroupMembersTab().changeRoleOfUser(domainMember.getUsername(), "ADMIN");
+        String currentRoleTypeOfuser = editGroupPage.getGroupMembersTab().getMembersGrid().getColumnValueForSpecificRow("Username", domainMember.getUsername(), "Role type");
+        soft.assertEquals(currentRoleTypeOfuser, "ADMIN");
+
+        //Remove user
+        editGroupPage.getGroupMembersTab().removeUser(domainMember.getUsername());
+        soft.assertFalse(editGroupPage.getGroupMembersTab().getMembersGrid().isValuePresentInColumn("Username", domainMember.getUsername()));
+
+        soft.assertAll();
     }
 
-    @Test(description = "EDTDOM-01 Domain admins are able to invite/edit/remove members")
-    public void domainAdminsAreAbleToInviteEditRemoveMembers(){
+    @Test(description = "EDTGRP-02 Group admins are able to create new resources", priority = 0)
+    public void groupsAdminsAreAbleToCreateNewResources() {
+        ResourceModel resourceModel = ResourceModel.generatePublicResource();
 
+        editGroupPage.selectDomain(domainModel, groupModel);
+        editGroupPage.goToTab("Resources");
+        CreateResourceDetailsDialog createResourceDetailsDialog = editGroupPage.getResourceTab().clickOnCreateNewResource();
+        createResourceDetailsDialog.fillResourceDetails(resourceModel);
+        createResourceDetailsDialog.tryClickOnSave();
+        soft.assertTrue(editGroupPage.getResourceTab().getGrid().isValuePresentInColumn("Identifier", resourceModel.getIdentifierValue()));
+        soft.assertAll();
     }
 }
diff --git a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java
index 2c391ee2aeba48fa6f16fcabe018914cc423ea67..e01db86f744405a79c0db5bdceb9081e427146db 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/ProfilePgTests.java
@@ -150,7 +150,7 @@ public class ProfilePgTests extends SeleniumTest {
         String oldPasswordExpiresOn = profilePage.profileData.getPasswordExpiresOnValue();
 
         //profilePage.profileData.setChangePasswordBtn.click();
-        String newPass = "Edeltest!23456789Edelt" + Generator.randomAlphaNumeric(4);
+        String newPass = "Edeltest!23456789Edelt" + Generator.randomAlphaNumericValue(4);
         SetChangePasswordDialog setChangePasswordDialog = profilePage.profileData.clickOnChangePassword();
         setChangePasswordDialog.fillChangePassword(data.getNewPassword(), newPass);
         homePage = setChangePasswordDialog.TryClickOnChangePassword();
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 33f3de66bf7d1f5ef660e90e0a73b9e22d3bdfcf..598506a70542a05cf6aa5c408e9ae70ac5db0c15 100644
--- a/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java
+++ b/domiSMP-ui-tests/src/test/java/domiSMPTests/ui/PropertiesPgTests.java
@@ -57,7 +57,7 @@ public class PropertiesPgTests extends SeleniumTest {
     public void propertyValueURLIsValidatedAccordingToExpectedFormat() throws Exception {
 
         String property = "bdmsl.integration.url";
-        String wrongValue1 = Generator.randomAlphaNumeric(6);
+        String wrongValue1 = Generator.randomAlphaNumericValue(6);
         String wrongValue2 = wrongValue1 + ".com";
         String wrongValue3 = "www." + wrongValue1 + ".com";
 
@@ -97,7 +97,7 @@ public class PropertiesPgTests extends SeleniumTest {
     public void propertyValueEmailIsValidatedAccordingToExpectedFormat() throws Exception {
 
         String property = "smp.alert.mail.from";
-        String wrongValue1 = Generator.randomAlphaNumeric(6);
+        String wrongValue1 = Generator.randomAlphaNumericValue(6);
         String wrongValue2 = wrongValue1 + "@yahoo";
         String wrongValue3 = wrongValue1 + ".com";
 
@@ -137,7 +137,7 @@ public class PropertiesPgTests extends SeleniumTest {
     public void propertyValueCRONexpressionIsValidatedAccordingToExpectedFormat() throws Exception {
 
         String property = "smp.alert.credentials.cronJobExpression";
-        String wrongValue1 = Generator.randomAlphaNumeric(6);
+        String wrongValue1 = Generator.randomAlphaNumericValue(6);
         String wrongValue2 = "0 0/1 * * * * *";
         String wrongValue3 = "0 A * * * * ";
 
@@ -177,7 +177,7 @@ public class PropertiesPgTests extends SeleniumTest {
     public void propertyValueNumericIsValidatedAccordingToExpectedFormat() throws Exception {
 
         String property = "smp.ui.session.idle_timeout.user";
-        String wrongValue1 = Generator.randomAlphaNumeric(6);
+        String wrongValue1 = Generator.randomAlphaNumericValue(6);
         String wrongValue2 = "333333333333333333333333333333333333333333333333333333";
         String wrongValue3 = "0 A * * * * ";