package de.passau.uni.sec.compose.id.core.persistence; import de.passau.uni.sec.compose.id.core.persistence.entities.Group; import de.passau.uni.sec.compose.id.core.persistence.entities.User; import de.passau.uni.sec.compose.id.core.persistence.repository.GroupRepository; import de.passau.uni.sec.compose.id.core.persistence.repository.UserRepository; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import java.util.Date; import java.util.UUID; import static org.junit.Assert.*; public class TestGroupRepository extends IntegrationTestBase { @Qualifier("groupRepository") @Autowired GroupRepository groupRepository; @Qualifier("userRepository") @Autowired UserRepository userRepository; private String user_id; @Before public void createUser() { User u = new User(); u.setLastModified(new Date(System.currentTimeMillis())); user_id = UUID.randomUUID().toString(); u.setId(user_id); userRepository.saveAndFlush(u); } /** * Tests the user repository by adding a user. */ @Test public void testAddGroup() { Group g = new Group(); User u = userRepository.getOne(user_id); g.setOwner(u); g.setId(UUID.randomUUID().toString()); g.setLastModified(new Date(System.currentTimeMillis())); g.setName("new group"); groupRepository.saveAndFlush(g); Group g1 = groupRepository.getOne(g.getId()); assertEquals(g, g1); } @Test public void testGetGroup() { Group g = new Group(); g.setId(UUID.randomUUID().toString()); g.setName("new group"); g.setLastModified(new Date(System.currentTimeMillis())); groupRepository.saveAndFlush(g); Group g1 = groupRepository.getOne(g.getId()); assertEquals(g, g1); } @Test(expected = javax.persistence.EntityNotFoundException.class) public void testGetNotExistentGroup() { /* javax.persistence.EntityNotFoundException is only thrown if the returned value is accessed, NOT during getOne() */ assertNull(groupRepository.getOne(UUID.randomUUID().toString())); } @Test public void testUpdateGroup() { Group g = new Group(); User u = userRepository.getOne(user_id); g.setOwner(u); g.setId(UUID.randomUUID().toString()); g.setName("new group"); g.setLastModified(new Date(System.currentTimeMillis())); groupRepository.saveAndFlush(g); g = groupRepository.getOne(g.getId()); g.setName("new group for"); groupRepository.saveAndFlush(g); Group g1 = groupRepository.getOne(g.getId()); assertEquals(g1.getName(), "new group for"); } }