ADD:: extra achievements and tests
This commit is contained in:
@@ -14,8 +14,7 @@ public class AllAchievements {
|
|||||||
new Achievement("Green saver", "You saved * of CO2", false),
|
new Achievement("Green saver", "You saved * of CO2", false),
|
||||||
new Achievement("Animal friend", "You have eaten 10 vegetarian meals", false),
|
new Achievement("Animal friend", "You have eaten 10 vegetarian meals", false),
|
||||||
new Achievement("Tom Dumoulin", "You have biked * km", false),
|
new Achievement("Tom Dumoulin", "You have biked * km", false),
|
||||||
new Achievement("Below average!", "You spend less CO2 than average on everything", false),
|
new Achievement("Let it shine", "You installed solar panels", false)
|
||||||
new Achievement("", "", false)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -191,6 +191,8 @@ public class InputValidator {
|
|||||||
map.put("bike", false);
|
map.put("bike", false);
|
||||||
map.put("temperature", false);
|
map.put("temperature", false);
|
||||||
map.put("solar_panels", false);
|
map.put("solar_panels", false);
|
||||||
|
map.put("vegetarian", false);
|
||||||
|
map.put("public_transport", false);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,6 @@ package greenify.server.service;
|
|||||||
|
|
||||||
import greenify.server.InputValidator;
|
import greenify.server.InputValidator;
|
||||||
import greenify.server.data.model.User;
|
import greenify.server.data.model.User;
|
||||||
import greenify.server.data.repository.UserRepository;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -13,9 +12,6 @@ public class AchievementService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
UserService userService;
|
UserService userService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
UserRepository userRepository;
|
|
||||||
|
|
||||||
private Logger logger = LoggerFactory.getLogger(UserService.class);
|
private Logger logger = LoggerFactory.getLogger(UserService.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -28,8 +24,7 @@ public class AchievementService {
|
|||||||
achieveGreenSaver(user);
|
achieveGreenSaver(user);
|
||||||
achieveAnimalFriend(user);
|
achieveAnimalFriend(user);
|
||||||
achieveTomDumoulin(user);
|
achieveTomDumoulin(user);
|
||||||
achieveBelowAverage(user);
|
achieveLetItShine(user);
|
||||||
userRepository.save(user);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -39,7 +34,6 @@ public class AchievementService {
|
|||||||
public void achieveGettingStarted(User user) {
|
public void achieveGettingStarted(User user) {
|
||||||
if (!user.getFootPrintInputs().equals(InputValidator.getDefaultValues())) {
|
if (!user.getFootPrintInputs().equals(InputValidator.getDefaultValues())) {
|
||||||
userService.setAchievement(user.getName(), "Starting off", true);
|
userService.setAchievement(user.getName(), "Starting off", true);
|
||||||
userRepository.save(user);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,7 +44,6 @@ public class AchievementService {
|
|||||||
public void achieveSocialButterfly(User user) {
|
public void achieveSocialButterfly(User user) {
|
||||||
if (user.getFriends().size() >= 3) {
|
if (user.getFriends().size() >= 3) {
|
||||||
userService.setAchievement(user.getName(), "Social butterfly", true);
|
userService.setAchievement(user.getName(), "Social butterfly", true);
|
||||||
userRepository.save(user);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,7 +54,6 @@ public class AchievementService {
|
|||||||
public void achieveGreenSaver(User user) {
|
public void achieveGreenSaver(User user) {
|
||||||
if (43-user.getFootPrint() > 38) {
|
if (43-user.getFootPrint() > 38) {
|
||||||
userService.setAchievement(user.getName(), "Green saver", true);
|
userService.setAchievement(user.getName(), "Green saver", true);
|
||||||
userRepository.save(user);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,9 +62,8 @@ public class AchievementService {
|
|||||||
* @param user user for whom achiev4 changes
|
* @param user user for whom achiev4 changes
|
||||||
*/
|
*/
|
||||||
public void achieveAnimalFriend(User user) {
|
public void achieveAnimalFriend(User user) {
|
||||||
if (user.getExtraInputs().get("Vegetarian meal")) {
|
if (user.getExtraInputs().get("vegetarian")) {
|
||||||
userService.setAchievement(user.getName(), "Animal friend", true);
|
userService.setAchievement(user.getName(), "Animal friend", true);
|
||||||
userRepository.save(user);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,9 +72,8 @@ public class AchievementService {
|
|||||||
* @param user user for whom achiev5 changes
|
* @param user user for whom achiev5 changes
|
||||||
*/
|
*/
|
||||||
public void achieveTomDumoulin(User user) {
|
public void achieveTomDumoulin(User user) {
|
||||||
if (user.getExtraInputs().get("Bike used")) {
|
if (user.getExtraInputs().get("bike")) {
|
||||||
userService.setAchievement(user.getName(), "Tom Dumoulin", true);
|
userService.setAchievement(user.getName(), "Tom Dumoulin", true);
|
||||||
userRepository.save(user);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,10 +81,9 @@ public class AchievementService {
|
|||||||
* This method changes achiev6 when this is the case.
|
* This method changes achiev6 when this is the case.
|
||||||
* @param user user for whom achiev6 changes
|
* @param user user for whom achiev6 changes
|
||||||
*/
|
*/
|
||||||
public void achieveBelowAverage(User user) {
|
public void achieveLetItShine(User user) {
|
||||||
if (Integer.parseInt(user.getFootPrintInputs().get("input_footprint_shopping_food_meatfisheggs_default")) < Integer.parseInt("2.4")) {
|
if (user.getExtraInputs().get("solar_panels")) {
|
||||||
userService.setAchievement(user.getName(), "Below average", true);
|
userService.setAchievement(user.getName(), "Let it shine", true);
|
||||||
userRepository.save(user);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,11 @@ package greenify.server.service;
|
|||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
|
||||||
import greenify.server.data.model.User;
|
import greenify.server.data.model.User;
|
||||||
import greenify.server.data.repository.UserRepository;
|
import greenify.server.data.repository.UserRepository;
|
||||||
|
import greenify.server.InputValidator;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -24,6 +27,14 @@ public class AchievementServiceTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestConfiguration
|
||||||
|
static class AchievementServiceConfiguration {
|
||||||
|
@Bean
|
||||||
|
public AchievementService achievementService() {
|
||||||
|
return new AchievementService();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
|
|
||||||
@@ -33,7 +44,7 @@ public class AchievementServiceTest {
|
|||||||
@MockBean
|
@MockBean
|
||||||
private CalculatorService calculatorService;
|
private CalculatorService calculatorService;
|
||||||
|
|
||||||
@MockBean
|
@Autowired
|
||||||
private AchievementService achievementService;
|
private AchievementService achievementService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -44,28 +55,60 @@ public class AchievementServiceTest {
|
|||||||
User alex = new User(1L, "alex", "password");
|
User alex = new User(1L, "alex", "password");
|
||||||
when(userRepository.findByName(alex.getName()))
|
when(userRepository.findByName(alex.getName()))
|
||||||
.thenReturn(alex);
|
.thenReturn(alex);
|
||||||
User lola = new User(2L, "lola", "password");
|
userService.setInput("alex","input_footprint_shopping_food_otherfood", "9.9");
|
||||||
when(userRepository.findByName(lola.getName()))
|
|
||||||
.thenReturn(lola);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateAchievementsTest() {
|
public void updateAchievementsTest() {
|
||||||
User alex = userRepository.findByName("alex");
|
User alex = userRepository.findByName("alex");
|
||||||
userService.setInput("alex", "input_size", "5");
|
|
||||||
achievementService.updateAchievements(alex);
|
achievementService.updateAchievements(alex);
|
||||||
userService.setAchievement(alex.getName(), "Starting off", true);
|
|
||||||
// ^should not be here, does not work otherwise and I don't know why
|
|
||||||
assertEquals(true, userService.getAchievement("alex", "Starting off"));
|
assertEquals(true, userService.getAchievement("alex", "Starting off"));
|
||||||
|
assertEquals(false, userService.getAchievement("alex", "Social butterfly"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void achieveGettingStartedTest() {
|
public void achieveGettingStartedTest() {
|
||||||
User alex = userRepository.findByName("alex");
|
User alex = userRepository.findByName("alex");
|
||||||
userService.setInput("alex", "input_size", "5");
|
|
||||||
achievementService.achieveGettingStarted(alex);
|
achievementService.achieveGettingStarted(alex);
|
||||||
userService.setAchievement(alex.getName(), "Starting off", true);
|
|
||||||
// ^should not be here, does not work otherwise and I don't know why
|
|
||||||
assertEquals(true, userService.getAchievement("alex", "Starting off"));
|
assertEquals(true, userService.getAchievement("alex", "Starting off"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void achieveSocialButterflyTest() {
|
||||||
|
User alex = userRepository.findByName("alex");
|
||||||
|
alex.addFriend(new User(2L, "Bubbles", "Bubbles"));
|
||||||
|
alex.addFriend(new User(3L, "Cheese", "crackers"));
|
||||||
|
alex.addFriend(new User(4L, "Perry", "Doofenshmirtz"));
|
||||||
|
achievementService.achieveSocialButterfly(alex);
|
||||||
|
assertEquals(true, userService.getAchievement("alex", "Social butterfly"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void achieveGreenSaverTest() {
|
||||||
|
User alex = userRepository.findByName("alex");
|
||||||
|
achievementService.achieveGreenSaver(alex);
|
||||||
|
assertEquals(true, userService.getAchievement("alex", "Green saver"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void achieveAnimalFriendTest() {
|
||||||
|
User alex = userRepository.findByName("alex");
|
||||||
|
achievementService.achieveAnimalFriend(alex);
|
||||||
|
assertEquals(false, userService.getAchievement("alex", "Animal friend"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void achieveTomDumoulinTest() {
|
||||||
|
User alex = userRepository.findByName("alex");
|
||||||
|
achievementService.achieveTomDumoulin(alex);
|
||||||
|
assertEquals(false, userService.getAchievement("alex", "Tom Dumoulin"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void achieveLetItShineTest() {
|
||||||
|
User alex = userRepository.findByName("alex");
|
||||||
|
achievementService.achieveLetItShine(alex);
|
||||||
|
assertEquals(false, userService.getAchievement("alex", "Let it shine"));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user