UPDATE:: added achievements to user class
This commit is contained in:
@@ -1,12 +1,14 @@
|
|||||||
package greenify.server.data.model;
|
package greenify.server.data.model;
|
||||||
|
|
||||||
import greenify.common.ApplicationException;
|
import greenify.common.ApplicationException;
|
||||||
|
import greenify.server.AllAchievements;
|
||||||
import greenify.server.InputValidator;
|
import greenify.server.InputValidator;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@@ -47,6 +49,9 @@ public class User {
|
|||||||
@JoinColumn
|
@JoinColumn
|
||||||
private Collection<User> friends;
|
private Collection<User> friends;
|
||||||
|
|
||||||
|
@ElementCollection
|
||||||
|
private List<Achievement> achievements;
|
||||||
|
|
||||||
public User() {}
|
public User() {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -60,7 +65,8 @@ public class User {
|
|||||||
this.name = name;
|
this.name = name;
|
||||||
this.password = password;
|
this.password = password;
|
||||||
this.setFootPrintInputs(InputValidator.getDefaultValues());
|
this.setFootPrintInputs(InputValidator.getDefaultValues());
|
||||||
this.friends = new ArrayList<User>();
|
this.friends = new ArrayList<>();
|
||||||
|
this.setAchievements(AllAchievements.getDefaults());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -160,7 +166,7 @@ public class User {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a friend to the friendslist of the user.
|
* Adds a friend to the friends list of the user.
|
||||||
* @param user the friend you want to add.
|
* @param user the friend you want to add.
|
||||||
*/
|
*/
|
||||||
public void addFriend(User user) {
|
public void addFriend(User user) {
|
||||||
@@ -172,6 +178,22 @@ public class User {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the achievements of the user.
|
||||||
|
* @param achievements achievements of the user
|
||||||
|
*/
|
||||||
|
public void setAchievements(List<Achievement> achievements) {
|
||||||
|
this.achievements = achievements;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method gets the achievements of the user.
|
||||||
|
* @return achievements of the user
|
||||||
|
*/
|
||||||
|
public List<Achievement> getAchievements() {
|
||||||
|
return this.achievements;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method gets a human readable (JSON) object.
|
* This method gets a human readable (JSON) object.
|
||||||
* @return the JSON form of the object.
|
* @return the JSON form of the object.
|
||||||
@@ -183,8 +205,8 @@ public class User {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the name and score of the friends in JSON. Needed for the leaderboard.
|
* Returns the name and score of the friends in JSON. Needed for the leader board.
|
||||||
* @return a JSON object of the friendlist with only names and scores.
|
* @return a JSON object of the friend list with only names and scores.
|
||||||
*/
|
*/
|
||||||
public String friendsToString() {
|
public String friendsToString() {
|
||||||
String result = "friends=[";
|
String result = "friends=[";
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package greenify.server.data.model;
|
package greenify.server.data.model;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.*;
|
||||||
import static org.junit.Assert.assertNotEquals;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
|
|
||||||
import greenify.common.ApplicationException;
|
import greenify.common.ApplicationException;
|
||||||
|
|
||||||
|
import greenify.server.AllAchievements;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -99,7 +99,7 @@ public class UserTest {
|
|||||||
User second = new User(1L, "merel", "password");
|
User second = new User(1L, "merel", "password");
|
||||||
assertEquals(first.getFriends(), second.getFriends());
|
assertEquals(first.getFriends(), second.getFriends());
|
||||||
first.addFriend(second);
|
first.addFriend(second);
|
||||||
ArrayList<User> test = new ArrayList<User>();
|
ArrayList<User> test = new ArrayList<>();
|
||||||
test.add(second);
|
test.add(second);
|
||||||
assertEquals(first.getFriends(), test);
|
assertEquals(first.getFriends(), test);
|
||||||
}
|
}
|
||||||
@@ -108,9 +108,7 @@ public class UserTest {
|
|||||||
public void addYourselfTest() {
|
public void addYourselfTest() {
|
||||||
User test = new User(1L, "greenify", "password");
|
User test = new User(1L, "greenify", "password");
|
||||||
assertEquals(test.getFriends(), new ArrayList<User>());
|
assertEquals(test.getFriends(), new ArrayList<User>());
|
||||||
assertThrows(ApplicationException.class, () -> {
|
assertThrows(ApplicationException.class, () -> test.addFriend(test));
|
||||||
test.addFriend(test);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -131,4 +129,17 @@ public class UserTest {
|
|||||||
first.setFriends(friends);
|
first.setFriends(friends);
|
||||||
assertEquals(friends, first.getFriends());
|
assertEquals(friends, first.getFriends());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getAchievementsTest() {
|
||||||
|
User user = new User(1L, "greenify", "password");
|
||||||
|
assertEquals(user.getAchievements(), AllAchievements.getDefaults());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setAchievementsTest() {
|
||||||
|
User user = new User(1L, "greenify", "password");
|
||||||
|
user.setAchievements(null);
|
||||||
|
assertNull(user.getAchievements());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user