diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/GroupServiceTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/GroupServiceTest.java
index d6ab5af0029f352ecb7dee9055380513eb98251b..3136a7253e101843d8b0d3722a9ba2998fefc820 100644
--- a/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/GroupServiceTest.java
+++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/service/group/GroupServiceTest.java
@@ -9,6 +9,7 @@ import ntnu.idatt2016.v233.SmartMat.repository.ShoppingListRepository;
 import ntnu.idatt2016.v233.SmartMat.repository.group.FridgeRepository;
 import ntnu.idatt2016.v233.SmartMat.repository.group.GroupRepository;
 import ntnu.idatt2016.v233.SmartMat.repository.group.UserGroupAssoRepository;
+import ntnu.idatt2016.v233.SmartMat.util.GroupUtil;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
@@ -18,8 +19,7 @@ import org.mockito.MockitoAnnotations;
 import java.util.List;
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
 
 public class GroupServiceTest {
@@ -60,7 +60,7 @@ public class GroupServiceTest {
         verify(groupRepository).findByGroupName(groupName);
     }
 
-    /**
+
     @Test
     void testCreateGroup() {
         // Arrange
@@ -76,11 +76,13 @@ public class GroupServiceTest {
 
         // Assert
         assertEquals(group, result);
+        assertNotNull(result.getLinkCode());
+        
         verify(groupRepository).findByGroupName(groupName);
         verify(groupRepository).findAllLinkCode();
         verify(groupRepository).save(group);
     }
-     */
+
 
     @Test
     void testAddFridgeToGroup() {
@@ -138,4 +140,256 @@ public class GroupServiceTest {
         assertTrue(result);
         verify(userGroupAssoRepository).findById(userGroupAsso.getId());
     }
+
+    @Test
+    void openOrCloseGroup(){
+        // Arrange
+        long groupId = 1L;
+        Group group = new Group();
+        group.setGroupId(groupId);
+        group.setOpen(false);
+        when(groupRepository.findByGroupId(groupId)).thenReturn(Optional.of(group));
+        when(groupRepository.save(group)).thenReturn(group);
+
+        // Act
+        groupService.OpenOrCloseGroup(groupId);
+
+        // Assert
+        assertTrue(group.getOpen());
+
+
+
+        groupService.OpenOrCloseGroup(groupId);
+
+        // Assert
+        assertFalse(group.getOpen());
+        verify(groupRepository, times(2)).findByGroupId(groupId);
+        verify(groupRepository, times(2)).save(group);
+    }
+
+    @Test
+    void removeUserFromGroup(){
+        Group group = new Group();
+        group.setGroupId(1L);
+        group.setOpen(false);
+
+        User user = User.builder()
+                .username("test")
+                .build();
+
+        UserGroupAsso userGroupAsso = UserGroupAsso.builder()
+                .user(user)
+                .group(group)
+                .id(UserGroupId.builder()
+                        .groupId(group.getGroupId())
+                        .username(user.getUsername())
+                        .build())
+                .build();
+
+        user.addGroup(userGroupAsso);
+        group.addUser(userGroupAsso);
+
+        when(userGroupAssoRepository.findById(userGroupAsso.getId())).thenReturn(Optional.of(userGroupAsso));
+        when(groupRepository.findByGroupId(group.getGroupId())).thenReturn(Optional.of(group));
+
+
+        assertTrue(groupService.removeUserFromGroup(userGroupAsso));
+
+        verify(userGroupAssoRepository).delete(userGroupAsso);
+
+
+    }
+
+    @Test
+    void setLevelByGroupId(){
+            // Arrange
+        long groupId = 1L;
+        Group group = new Group();
+        group.setGroupId(groupId);
+        group.setLevel(1);
+        group.setPoints(10);
+        when(groupRepository.findByGroupId(groupId)).thenReturn(Optional.of(group));
+        when(groupRepository.save(group)).thenReturn(group);
+
+        // Act
+        groupService.setLevelByGroupId(groupId, group.getPoints());
+
+        // Assert
+        assertEquals(0, group.getLevel());
+        verify(groupRepository).findByGroupId(groupId);
+        verify(groupRepository).save(group);
+    }
+
+    @Test
+    void getProgressOfLevel(){
+        // Arrange
+        long groupId = 1L;
+        Group group = new Group();
+        group.setGroupId(groupId);
+        group.setLevel(1);
+        group.setPoints(100);
+        when(groupRepository.findByGroupId(groupId)).thenReturn(Optional.of(group));
+
+        // Act
+        Optional<Integer> result = groupService.getProgressOfLevel(groupId);
+
+        // Assert
+        assertTrue(result.isPresent());
+
+        assertEquals(GroupUtil.getProgressOfLevel(group.getPoints()), result.get());
+        verify(groupRepository).findByGroupId(groupId);
+    }
+
+    @Test
+    void getUserGroupAsso(){
+        Group group = new Group();
+        group.setGroupId(1L);
+        group.setOpen(false);
+
+        User user = User.builder()
+                .username("test")
+                .build();
+
+        UserGroupAsso userGroupAsso = UserGroupAsso.builder()
+                .user(user)
+                .group(group)
+                .id(UserGroupId.builder()
+                        .groupId(group.getGroupId())
+                        .username(user.getUsername())
+                        .build())
+                .build();
+
+        user.addGroup(userGroupAsso);
+        group.addUser(userGroupAsso);
+
+
+        when(userGroupAssoRepository.findById(userGroupAsso.getId())).thenReturn(Optional.of(userGroupAsso));
+
+        Optional<UserGroupAsso> result = groupService.getUserGroupAsso(userGroupAsso.getId().getUsername(),
+                userGroupAsso.getId().getGroupId());
+
+        assertTrue(result.isPresent());
+
+        assertEquals(userGroupAsso, result.get());
+
+        verify(userGroupAssoRepository).findById(userGroupAsso.getId());
+
+    }
+
+    @Test
+    void getUserGroupAssoAuthority(){
+        Group group = new Group();
+        group.setGroupId(1L);
+        group.setOpen(false);
+
+        User user = User.builder()
+                .username("test")
+                .build();
+
+        UserGroupAsso userGroupAsso = UserGroupAsso.builder()
+                .user(user)
+                .group(group)
+                .groupAuthority("USER")
+                .id(UserGroupId.builder()
+                        .groupId(group.getGroupId())
+                        .username(user.getUsername())
+                        .build())
+                .build();
+
+        user.addGroup(userGroupAsso);
+        group.addUser(userGroupAsso);
+
+        when(userGroupAssoRepository.findById(userGroupAsso.getId())).thenReturn(Optional.of(userGroupAsso));
+
+        String result = groupService.getUserGroupAssoAuthority(userGroupAsso.getId().getUsername(),
+                userGroupAsso.getId().getGroupId());
+
+
+        assertEquals("USER", result);
+
+        verify(userGroupAssoRepository).findById(userGroupAsso.getId());
+
+    }
+
+    @Test
+    void getGroupById(){
+        // Arrange
+        long groupId = 1L;
+        Group group = new Group();
+        group.setGroupId(groupId);
+        when(groupRepository.findById(groupId)).thenReturn(Optional.of(group));
+
+        // Act
+        Optional<Group> result = groupService.getGroupById(groupId);
+
+        // Assert
+        assertTrue(result.isPresent());
+        assertEquals(group, result.get());
+        verify(groupRepository).findById(groupId);
+    }
+
+    @Test
+    void getGroupById_notFound(){
+        // Arrange
+        long groupId = 1L;
+        Group group = new Group();
+        group.setGroupId(groupId);
+        when(groupRepository.findById(groupId)).thenReturn(Optional.of(group));
+
+        // Act
+        Optional<Group> result = groupService.getGroupById(5L);
+
+        // Assert
+        assertTrue(result.isEmpty());
+        verify(groupRepository).findById(5L);
+    }
+
+    @Test
+    void updateUserGroupAsso(){
+        Group group = new Group();
+        group.setGroupId(1L);
+        group.setOpen(false);
+
+        User user = User.builder()
+                .username("test")
+                .build();
+
+        UserGroupAsso userGroupAsso = UserGroupAsso.builder()
+                .user(user)
+                .group(group)
+                .groupAuthority("USER")
+                .id(UserGroupId.builder()
+                        .groupId(group.getGroupId())
+                        .username(user.getUsername())
+                        .build())
+                .build();
+
+        user.addGroup(userGroupAsso);
+        group.addUser(userGroupAsso);
+
+        when(userGroupAssoRepository.findById(userGroupAsso.getId())).thenReturn(Optional.of(userGroupAsso));
+        when(userGroupAssoRepository.save(any(UserGroupAsso.class))).thenReturn(UserGroupAsso.builder()
+                .id(UserGroupId.builder()
+                        .groupId(group.getGroupId())
+                        .username(user.getUsername())
+                        .build())
+                .groupAuthority("ADMIN")
+                .group(group)
+                .user(user)
+                .build());
+
+        UserGroupAsso result = groupService.updateUserGroupAsso(UserGroupAsso.builder()
+                        .id(UserGroupId.builder()
+                                .groupId(group.getGroupId())
+                                .username(user.getUsername())
+                                .build())
+                        .groupAuthority("ADMIN")
+                        .group(group)
+                        .user(user)
+                .build());
+
+
+        assertEquals("ADMIN", result.getGroupAuthority());
+        verify(userGroupAssoRepository).save(any(UserGroupAsso.class));
+    }
 }