From d41edfbc1e4a33c7057aa64979f3d8790c307857 Mon Sep 17 00:00:00 2001 From: jcartign Date: Mon, 26 Sep 2016 16:49:49 +0200 Subject: [PATCH] Migrate modifications form spring-jdbc --- src/main/java/fr/plil/sio/persistence/api/Group.java | 13 ++++++++----- src/main/java/fr/plil/sio/persistence/api/Right.java | 16 +++++++++++----- src/main/java/fr/plil/sio/persistence/api/User.java | 5 +++++ src/test/java/fr/plil/sio/persistence/jpa/GroupServiceTest.java | 2 +- src/test/java/fr/plil/sio/persistence/jpa/RightServiceTest.java | 4 ++-- src/test/resources/application.properties | 3 ++- 6 files changed, 29 insertions(+), 14 deletions(-) diff --git a/src/main/java/fr/plil/sio/persistence/api/Group.java b/src/main/java/fr/plil/sio/persistence/api/Group.java index f82ecaa..a6920a8 100644 --- a/src/main/java/fr/plil/sio/persistence/api/Group.java +++ b/src/main/java/fr/plil/sio/persistence/api/Group.java @@ -3,8 +3,11 @@ package fr.plil.sio.persistence.api; import javax.persistence.*; import java.util.LinkedList; import java.util.List; -import java.util.Set; -import java.util.TreeSet; + +/** + * A group is unique by its name (no two groups with the same name or the same ID can exist in the database). + * A group contains a list of rights unique by their ID (no two groups with the same ID can exist in the database). + */ @Entity @Table(name = "GROUP_T") @@ -22,7 +25,7 @@ public class Group { * Users in the group. */ @OneToMany(mappedBy = "group") - private Set users = new TreeSet<>(); + private List users = new LinkedList<>(); /** * List of rights. The list CANNOT contains duplicate rights. @@ -54,11 +57,11 @@ public class Group { this.name = name; } - public Set getUsers() { + public List getUsers() { return users; } - public void setUsers(Set users) { + public void setUsers(List users) { this.users = users; } } diff --git a/src/main/java/fr/plil/sio/persistence/api/Right.java b/src/main/java/fr/plil/sio/persistence/api/Right.java index ed604d8..2cdfa40 100644 --- a/src/main/java/fr/plil/sio/persistence/api/Right.java +++ b/src/main/java/fr/plil/sio/persistence/api/Right.java @@ -1,8 +1,14 @@ package fr.plil.sio.persistence.api; import javax.persistence.*; -import java.util.HashSet; -import java.util.Set; +import java.util.LinkedList; +import java.util.List; + +/** + * A right is unique by itd ID, i.e. it can exist two rights with the same name in the database. + * A right may have a parent, null else. + * A right can have zero, one or more siblings. + */ @Entity @Table(name = "RIGHT_T") @@ -23,13 +29,13 @@ public class Right { /// the sibling right(s), eventually empty @OneToMany(mappedBy = "parent") - private Set siblings = new HashSet<>(); + private List siblings = new LinkedList<>(); - public Set getSiblings() { + public List getSiblings() { return siblings; } - public void setSiblings(Set siblings) { + public void setSiblings(List siblings) { this.siblings = siblings; } diff --git a/src/main/java/fr/plil/sio/persistence/api/User.java b/src/main/java/fr/plil/sio/persistence/api/User.java index b10a57e..89b4114 100644 --- a/src/main/java/fr/plil/sio/persistence/api/User.java +++ b/src/main/java/fr/plil/sio/persistence/api/User.java @@ -2,6 +2,11 @@ package fr.plil.sio.persistence.api; import javax.persistence.*; +/** + * An user MUST have a group in the database. + * An user is unique by it name, i.e. database cannot contain two user with the same name or the same ID. + */ + @Entity @Table(name = "USER_T") public class User { diff --git a/src/test/java/fr/plil/sio/persistence/jpa/GroupServiceTest.java b/src/test/java/fr/plil/sio/persistence/jpa/GroupServiceTest.java index af67ef0..d5f5bf6 100644 --- a/src/test/java/fr/plil/sio/persistence/jpa/GroupServiceTest.java +++ b/src/test/java/fr/plil/sio/persistence/jpa/GroupServiceTest.java @@ -69,7 +69,7 @@ public class GroupServiceTest { @Test public void deleteGroupDoesDeleteUsers() { userService.create("user1", "group"); - userService.create("user1", "group"); + userService.create("user2", "group"); assertNotNull(userService.findByName("user1")); assertNotNull(userService.findByName("user2")); groupService.delete("group"); diff --git a/src/test/java/fr/plil/sio/persistence/jpa/RightServiceTest.java b/src/test/java/fr/plil/sio/persistence/jpa/RightServiceTest.java index 905ab69..f6d0b4c 100644 --- a/src/test/java/fr/plil/sio/persistence/jpa/RightServiceTest.java +++ b/src/test/java/fr/plil/sio/persistence/jpa/RightServiceTest.java @@ -86,8 +86,8 @@ public class RightServiceTest { assertEquals(0, rightService.findByName("parent").size()); } - @Test - public void testDeleteRightIfNotFound() { + @Test(expected = IllegalArgumentException.class) + public void testDeleteRightIfNotInDatabase() { Right right = new Right(); right.setName("not-a-right"); assertFalse(rightService.delete(right)); diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index 6901e9c..d744dce 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -1,4 +1,5 @@ logging.level.org.springframework=INFO logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate=INFO -spring.datasource.url=jdbc:h2:mem:persistence;TRACE_LEVEL_FILE=4 \ No newline at end of file +spring.datasource.url=jdbc:h2:mem:persistence;TRACE_LEVEL_FILE=4; +spring.datasource.tomcat.max-active=300 \ No newline at end of file -- libgit2 0.21.2