diff --git a/docker-compose.yml b/docker-compose.yml index 6f555f01d8514c71654c9322429f0bda189b2578..06e81b6bdaaeb71c6ba76d87517a5b87d3dbb60f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,5 +24,5 @@ services: ports: - 8007:8181 volumes: - - /data/mozen_data/store:/home/data + - /data/mozen_data/store:/data restart: unless-stopped diff --git a/mozen/src/main/java/mozen/model/Model.java b/mozen/src/main/java/mozen/model/Model.java index 1be7cc0fca871a12bcce9c3e948084726e97b3b6..f0bcaa618e77a49210037740af29e8cdf642087e 100644 --- a/mozen/src/main/java/mozen/model/Model.java +++ b/mozen/src/main/java/mozen/model/Model.java @@ -122,10 +122,18 @@ public class Model implements Serializable{ @OneToMany(mappedBy = "model", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true) private Set<Comment> comments; + @Basic + @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST}) + private Set<User> upvotes; + + @Basic + @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST}) + private Set<User> downvotes; + public Model() { } - public Model(Long id, String name, String shortDescription, String longDescription, Date added, Date lastModified, int votes, double performance, String performanceUnit, double performanceIndex, int parameterCount, String fileName, String contentId, long contentLength, String fileType, String checksum, boolean isVerified, User author, Set<Tag> tags, Set<CustomLayer> customLayers, Set<Comment> comments) { + public Model(Long id, String name, String shortDescription, String longDescription, Date added, Date lastModified, int votes, double performance, String performanceUnit, double performanceIndex, int parameterCount, String fileName, String contentId, long contentLength, String fileType, String checksum, boolean isVerified, User author, Set<Tag> tags, Set<CustomLayer> customLayers, Set<Comment> comments, Set<User> upvotes, Set<User> downvotes) { this.id = id; this.name = name; this.shortDescription = shortDescription; @@ -147,8 +155,10 @@ public class Model implements Serializable{ this.tags = tags; this.customLayers = customLayers; this.comments = comments; + this.upvotes = upvotes; + this.downvotes = downvotes; } - + @JsonIgnore public double getPerformanceIndex() { return this.performanceIndex; @@ -325,5 +335,22 @@ public class Model implements Serializable{ this.fileName = fileName; } + @JsonIgnore + public Set<User> getUpvotes() { + return this.upvotes; + } + + public void setUpvotes(Set<User> upvotes) { + this.upvotes = upvotes; + } + + @JsonIgnore + public Set<User> getDownvotes() { + return this.downvotes; + } + + public void setDownvotes(Set<User> downvotes) { + this.downvotes = downvotes; + } } \ No newline at end of file diff --git a/mozen/src/test/java/mozen/business/UserManagerTest.java b/mozen/src/test/java/mozen/business/UserManagerTest.java index 574a0e8df55bf18a9a35c532e456342d45c6510d..5ab01ce53028526c031c8d476deae96a46383428 100644 --- a/mozen/src/test/java/mozen/business/UserManagerTest.java +++ b/mozen/src/test/java/mozen/business/UserManagerTest.java @@ -11,6 +11,7 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import mozen.messages.SignupMessage; +import mozen.messages.UserUpdateMessage; import mozen.model.User; @SpringBootTest @@ -20,12 +21,12 @@ public class UserManagerTest { @Test @Transactional - void addUserTest () { + void addUserTest() { SignupMessage message = new SignupMessage(); message.setEmail("test@test.com"); message.setUsername("testuser"); message.setPassword("1234"); - + User user = userManager.addUser(message); assertEquals(message.getEmail(), user.getEmail()); @@ -35,7 +36,7 @@ public class UserManagerTest { @Test @Transactional - void getUserTest () { + void getUserTest() { User user = userManager.addUser(new SignupMessage("testuser", "1234", "test@test.com")); User userFind = userManager.getUser(user.getId()); @@ -45,7 +46,7 @@ public class UserManagerTest { @Test @Transactional - void getUserByUsernameTest () { + void getUserByUsernameTest() { User user = userManager.addUser(new SignupMessage("testuser", "1234", "test@test.com")); User userFind = userManager.getUserByUsername(user.getUsername()); @@ -54,8 +55,46 @@ public class UserManagerTest { } @Test - void updateUserTest () { - assertTrue(true); + void updateUserTest() { + User user = userManager.addUser(new SignupMessage("testuser", "1234", "test@test.com")); + + UserUpdateMessage message = new UserUpdateMessage(); + message.setId(user.getId()); + message.setUsername("newtestuser"); + message.setEmail("newtest@test.com"); + + try { + userManager.updateUser(user, message); + } catch (Exception e) { + assertTrue(false); + } + + User userFind = userManager.getUser(user.getId()); + assertEquals(message.getUsername(), userFind.getUsername()); + assertEquals(message.getEmail(), userFind.getEmail()); + assertEquals(message.getUsername(), userFind.getUsername()); + } + + @Test + void updateUserNotRightTest() { + User user = userManager.addUser(new SignupMessage("testuser", "1234", "test@test.com")); + User user2 = userManager.addUser(new SignupMessage("testuser2", "1234", "test2@test.com")); + + UserUpdateMessage message = new UserUpdateMessage(); + message.setId(user.getId()); + message.setUsername("newtestuser"); + message.setEmail("newtest@test.com"); + + try { + userManager.updateUser(user2, message); + assertTrue(false); + } catch (Exception e) { + assertTrue(true); + User userFind = userManager.getUser(user.getId()); + assertEquals(message.getUsername(), userFind.getUsername()); + assertEquals(message.getEmail(), userFind.getEmail()); + assertEquals(message.getUsername(), userFind.getUsername()); + } } @Test diff --git a/mozen/src/test/java/mozen/web/UserControllerTest.java b/mozen/src/test/java/mozen/web/UserControllerTest.java index 34310e26b3336e85aadcb1143a2f23afcea0a5e1..558323d9484bc1f0b3f18cf969cda87545ed9547 100644 --- a/mozen/src/test/java/mozen/web/UserControllerTest.java +++ b/mozen/src/test/java/mozen/web/UserControllerTest.java @@ -7,5 +7,5 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; @ExtendWith(SpringExtension.class) @SpringBootTest public class UserControllerTest { - + } \ No newline at end of file