Skip to content
Snippets Groups Projects
Commit 067bc55a authored by Anders Austlid's avatar Anders Austlid
Browse files

Added repository saving of user and group when saving a user-group association

parent 317271ce
No related branches found
No related tags found
No related merge requests found
......@@ -8,6 +8,7 @@ import ntnu.idatt2016.v233.SmartMat.entity.group.UserGroupAsso;
import ntnu.idatt2016.v233.SmartMat.entity.user.User;
import ntnu.idatt2016.v233.SmartMat.repository.group.GroupRepository;
import ntnu.idatt2016.v233.SmartMat.repository.group.UserGroupAssoRepository;
import ntnu.idatt2016.v233.SmartMat.repository.user.UserRepository;
import org.springframework.stereotype.Service;
import java.util.List;
......@@ -19,6 +20,7 @@ public class UserGroupAssoService {
private UserGroupAssoRepository userGroupAssoRepository;
private GroupRepository groupRepository;
private final UserRepository userRepository;
public void save(User user, Group group, boolean primaryGroup) {
UserGroupAsso userGroupTable1 = new UserGroupAsso();
......@@ -35,6 +37,9 @@ public class UserGroupAssoService {
user.addGroup(userGroupTable1);
group.addUser(userGroupTable1);
groupRepository.save(group);
userRepository.save(user);
}
/**
......
......@@ -4,60 +4,61 @@ import ntnu.idatt2016.v233.SmartMat.entity.group.Group;
import ntnu.idatt2016.v233.SmartMat.entity.group.UserGroupId;
import ntnu.idatt2016.v233.SmartMat.entity.group.UserGroupAsso;
import ntnu.idatt2016.v233.SmartMat.entity.user.User;
import ntnu.idatt2016.v233.SmartMat.repository.group.GroupRepository;
import ntnu.idatt2016.v233.SmartMat.repository.group.UserGroupAssoRepository;
import ntnu.idatt2016.v233.SmartMat.repository.user.UserRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
@ExtendWith(MockitoExtension.class)
class UserGroupAssoServiceTest {
public class UserGroupAssoServiceTest {
@Mock
UserGroupAssoRepository userGroupAssoRepository;
private UserGroupAssoRepository userGroupAssoRepository;
@InjectMocks
UserGroupAssoService userGroupAssoService;
@Test
void save() {
UserGroupAsso tempAsso = new UserGroupAsso();
User user = new User();
user.setFirstName("test");
user.setLastName("test");
user.setUsername("test");
Group tempgroup = new Group();
tempgroup.setGroupName("test");
tempAsso.setId(UserGroupId.builder().username(user.getUsername())
.groupId(tempgroup.getGroupId()).build());
tempAsso.setGroup(tempgroup);
tempAsso.setUser(user);
tempAsso.setPrimaryGroup(true);
tempgroup.addUser(tempAsso);
user.addGroup(tempAsso);
when(userGroupAssoRepository.save(tempAsso))
.thenReturn(tempAsso);
userGroupAssoService.save(user, tempgroup, true);
//make sure the correct assisiation is saved
verify(userGroupAssoRepository, times(1)).save(tempAsso);
@Mock
private GroupRepository groupRepository;
@Mock
private UserRepository userRepository;
assertEquals(user.getGroup().get(0), tempgroup.getUser().get(0));
@InjectMocks
private UserGroupAssoService userGroupAssoService;
private User user;
private Group group;
private UserGroupAsso userGroupAsso;
@BeforeEach
public void setUp() {
user = new User();
user.setUsername("testUser");
group = new Group();
group.setGroupId(1L);
userGroupAsso = new UserGroupAsso();
userGroupAsso.setUser(user);
userGroupAsso.setGroup(group);
userGroupAsso.setPrimaryGroup(true);
userGroupAsso.setId(UserGroupId.builder()
.groupId(group.getGroupId())
.username(user.getUsername())
.build());
}
@Test
public void testSave() {
userGroupAssoService.save(user, group, true);
verify(userGroupAssoRepository, times(1)).save(userGroupAsso);
verify(userRepository, times(1)).save(user);
verify(groupRepository, times(1)).save(group);
}
}
\ No newline at end of file
}
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