Skip to content
Snippets Groups Projects
Commit 8f57a56a authored by Birk Øvstetun Narvhus's avatar Birk Øvstetun Narvhus
Browse files

added tests fro group service

parent 8f35ca6b
No related branches found
No related tags found
No related merge requests found
...@@ -9,6 +9,7 @@ import ntnu.idatt2016.v233.SmartMat.repository.ShoppingListRepository; ...@@ -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.FridgeRepository;
import ntnu.idatt2016.v233.SmartMat.repository.group.GroupRepository; import ntnu.idatt2016.v233.SmartMat.repository.group.GroupRepository;
import ntnu.idatt2016.v233.SmartMat.repository.group.UserGroupAssoRepository; 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.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks; import org.mockito.InjectMocks;
...@@ -18,8 +19,7 @@ import org.mockito.MockitoAnnotations; ...@@ -18,8 +19,7 @@ import org.mockito.MockitoAnnotations;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
public class GroupServiceTest { public class GroupServiceTest {
...@@ -60,7 +60,7 @@ public class GroupServiceTest { ...@@ -60,7 +60,7 @@ public class GroupServiceTest {
verify(groupRepository).findByGroupName(groupName); verify(groupRepository).findByGroupName(groupName);
} }
/**
@Test @Test
void testCreateGroup() { void testCreateGroup() {
// Arrange // Arrange
...@@ -76,11 +76,13 @@ public class GroupServiceTest { ...@@ -76,11 +76,13 @@ public class GroupServiceTest {
// Assert // Assert
assertEquals(group, result); assertEquals(group, result);
assertNotNull(result.getLinkCode());
verify(groupRepository).findByGroupName(groupName); verify(groupRepository).findByGroupName(groupName);
verify(groupRepository).findAllLinkCode(); verify(groupRepository).findAllLinkCode();
verify(groupRepository).save(group); verify(groupRepository).save(group);
} }
*/
@Test @Test
void testAddFridgeToGroup() { void testAddFridgeToGroup() {
...@@ -138,4 +140,256 @@ public class GroupServiceTest { ...@@ -138,4 +140,256 @@ public class GroupServiceTest {
assertTrue(result); assertTrue(result);
verify(userGroupAssoRepository).findById(userGroupAsso.getId()); 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));
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment