Commit 4e3e24c9a6011960fb04d9409a9333c25532aadc

Authored by msahmane
1 parent 60e63100

Amélioration des tests de Group

src/main/java/fr/plil/sio/persistence/jdbc/GroupRepositoryJdbc.java
... ... @@ -11,6 +11,7 @@ import javax.sql.DataSource;
11 11 import java.sql.ResultSet;
12 12 import java.sql.SQLException;
13 13 import java.sql.Statement;
  14 +import java.util.List;
14 15  
15 16 @Repository
16 17 public class GroupRepositoryJdbc implements GroupRepository {
... ... @@ -63,7 +64,7 @@ public class GroupRepositoryJdbc implements GroupRepository {
63 64 stmt.executeUpdate("INSERT INTO GROUP_T (NAME_C) VALUES (\'" + group.getName() + "\')",
64 65 Statement.RETURN_GENERATED_KEYS);
65 66 rs = stmt.getGeneratedKeys();
66   - if (rs.next()) {
  67 + if (rs.next()) {
67 68 group.setId(rs.getLong(1));
68 69 } else {
69 70 throw new UnsupportedOperationException("default in key access");
... ... @@ -113,8 +114,36 @@ public class GroupRepositoryJdbc implements GroupRepository {
113 114  
114 115 @Override
115 116 public boolean addRight(String groupName, Right right){
116   -
117   - return false;
  117 + Statement stmt = null;
  118 + ResultSet rs = null;
  119 + try{
  120 + stmt = dataSource.getConnection().createStatement();
  121 + if(this.findByName(groupName) != null && right.getId() != null)
  122 + stmt.executeUpdate("INSERT INTO GROUP_RIGHTS VALUES("+this.findByName(groupName).getId()+","+right.getId()+")",
  123 + Statement.RETURN_GENERATED_KEYS);
  124 + rs = stmt.getGeneratedKeys();
  125 + if(rs.next()){
  126 + List<Right> rights = this.findByName(groupName).getRights();
  127 + rights.add(right);
  128 + this.findByName(groupName).setRights(rights);
  129 + return true;
  130 + }else{
  131 + return false;
  132 + }
  133 + }catch(SQLException e){
  134 + throw new UnsupportedOperationException("sql exception", e);
  135 + }finally{
  136 + try{
  137 + if(rs != null){
  138 + rs.close();
  139 + }
  140 + if(stmt != null){
  141 + stmt.close();
  142 + }
  143 + }catch(SQLException e){
  144 + throw new UnsupportedOperationException("sql exception during close", e);
  145 + }
  146 + }
118 147 }
119 148  
120 149 public boolean removeRight(String groupName, Right right){
... ...
src/test/java/fr/plil/sio/persistence/jdbc/AbstractServiceSupport.java
... ... @@ -24,11 +24,18 @@ public abstract class AbstractServiceSupport {
24 24 private static final String create_table_user = "CREATE TABLE USER_T (USER_ID INT NOT NULL AUTO_INCREMENT, "+
25 25 "NAME_U VARCHAR(50) UNIQUE NOT NULL, PRIMARY KEY(USER_ID), GROUP_U INT, FOREIGN KEY(GROUP_U) REFERENCES GROUP_T(GROUP_ID)) ";
26 26  
  27 + private static final String create_table_rg = "CREATE TABLE GROUP_RIGHTS (G_ID INT NOT NULL, R_ID INT NOT NULL,"+
  28 + "PRIMARY KEY(G_ID,R_ID),"+
  29 + "FOREIGN KEY(G_ID) REFERENCES GROUP_T(GROUP_ID),"+
  30 + "FOREIGN KEY(R_ID) REFERENCES RIGHT_T(RIGHT_ID))";
  31 +
27 32 private static final String drop_table_group = "DROP TABLE GROUP_T";
28 33  
29 34 private static final String drop_table_right = "DROP TABLE RIGHT_T";
30 35  
31 36 private static final String drop_table_user = "DROP TABLE USER_T";
  37 +
  38 + private static final String drop_table_rg = "DROP TABLE GROUP_RIGHTS";
32 39  
33 40 @Autowired
34 41 private DataSource dataSource;
... ... @@ -44,6 +51,7 @@ public abstract class AbstractServiceSupport {
44 51 stmt.executeUpdate(create_table_group);
45 52 stmt.executeUpdate(create_table_right);
46 53 stmt.executeUpdate(create_table_user);
  54 + stmt.executeUpdate(create_table_rg);
47 55 closeConnection();
48 56 }
49 57  
... ... @@ -54,6 +62,7 @@ public abstract class AbstractServiceSupport {
54 62 stmt.executeUpdate(drop_table_group);
55 63 stmt.executeUpdate(drop_table_right);
56 64 stmt.executeUpdate(drop_table_user);
  65 + stmt.executeUpdate(drop_table_rg);
57 66 closeConnection();
58 67 }
59 68  
... ...
src/test/java/fr/plil/sio/persistence/jdbc/GroupServiceTest.java
... ... @@ -81,7 +81,7 @@ public class GroupServiceTest extends AbstractServiceSupport {
81 81 public void deleteGroupDoesDeleteUsers() {
82 82 logger.info("deleteGroupDoesDeleteUsers");
83 83 userService.create("user1", "group");
84   - userService.create("user1", "group");
  84 + userService.create("user2", "group");
85 85 assertNotNull(userService.findByName("user1"));
86 86 assertNotNull(userService.findByName("user2"));
87 87 groupService.delete("group");
... ...