Skip to content
Snippets Groups Projects
Commit 844e9e5e authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Started groups persistence and retrieval implementation

parent fe1de660
Branches
Tags
No related merge requests found
...@@ -9,3 +9,9 @@ security.oauth2.client.scope=openid,email,profile ...@@ -9,3 +9,9 @@ security.oauth2.client.scope=openid,email,profile
security.oauth2.resource.jwk.key-set-uri=http://localhost/rap-ia2/auth/oidc/jwks security.oauth2.resource.jwk.key-set-uri=http://localhost/rap-ia2/auth/oidc/jwks
logging.level.org.springframework.security=DEBUG logging.level.org.springframework.security=DEBUG
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.MariaDBDialect
spring.datasource.url=jdbc:mysql://localhost:3306/gms?useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=gms
spring.datasource.password=gms
package it.inaf.ia2.gms.persistence;
import it.inaf.ia2.gms.persistence.model.Group;
import it.inaf.ia2.gms.persistence.model.User;
import java.util.Arrays;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.junit4.SpringRunner;
@DataJpaTest
@AutoConfigureTestDatabase
@RunWith(SpringRunner.class)
public class GroupsRepositoryTest {
@Autowired
private UsersRepository usersRepository;
@Autowired
private GroupsRepository groupsRepository;
@Test
public void testCreateGroup() {
User user1 = new User();
user1.setId("user1");
user1 = usersRepository.save(user1);
User user2 = new User();
user2.setId("user2");
user2 = usersRepository.save(user2);
Group group = new Group();
group.setId("parent-group");
group.setName("Parent");
// Test cascade persist
Group childGroup = new Group();
childGroup.setId("child-group");
childGroup.setName("Child 1");
group.setGroupsMembers(Arrays.asList(childGroup));
group = groupsRepository.save(group);
// Test cascade merge
Group childGroup2 = new Group();
childGroup2.setId("child-group-2");
childGroup2.setName("Child 2");
group.getGroupsMembers().add(childGroup2);
groupsRepository.save(group);
// Reload
group = groupsRepository.findById("parent-group").get();
assertEquals("Parent", group.getName());
assertEquals(2, group.getGroupsMembers().size());
assertEquals("Child 1", group.getGroupsMembers().get(0).getName());
assertEquals("Child 2", group.getGroupsMembers().get(1).getName());
}
}
package it.inaf.ia2.gms.persistence;
import it.inaf.ia2.gms.persistence.model.Group;
import it.inaf.ia2.gms.persistence.model.User;
import it.inaf.ia2.gms.persistence.model.UserGroup;
import it.inaf.ia2.gms.service.GroupsService;
import it.inaf.ia2.gms.service.model.GroupNode;
import it.inaf.ia2.gms.service.model.Permission;
import java.util.List;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.junit4.SpringRunner;
@DataJpaTest
@AutoConfigureTestDatabase
@RunWith(SpringRunner.class)
public class NestedGroupsIntegrationTest {
@Autowired
private UsersRepository usersRepository;
@Autowired
private GroupsRepository groupsRepository;
@Autowired
private PermissionsRepository permissionsRepository;
@Test
public void testNestedGroupRetrieval() {
GroupsService groupsService = new GroupsService(groupsRepository, usersRepository, permissionsRepository);
// Create user
User user = new User();
user.setId("user");
user = usersRepository.save(user);
// Setup groups
Group lbt = groupsService.addGroup(GroupsService.ROOT, "LBT");
Group lbtInaf = groupsService.addGroup(lbt.getId(), "INAF");
Group lbtInafProgram = groupsService.addGroup(lbtInaf.getId(), "P1");
// Setup permissions
UserGroup permission = new UserGroup();
permission.setUser(user);
permission.setGroup(lbtInafProgram);
permission.setPermission(Permission.MANAGE_MEMBERS);
permissionsRepository.save(permission);
List<GroupNode> groupNodes = groupsService.getSubgroups(GroupsService.ROOT, user.getId());
assertEquals(1, groupNodes.size());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment