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("Animal friend", "You have eaten 10 vegetarian meals", 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("", "", false)
|
||||
new Achievement("Let it shine", "You installed solar panels", false)
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
@@ -191,6 +191,8 @@ public class InputValidator {
|
||||
map.put("bike", false);
|
||||
map.put("temperature", false);
|
||||
map.put("solar_panels", false);
|
||||
map.put("vegetarian", false);
|
||||
map.put("public_transport", false);
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,6 @@ package greenify.server.service;
|
||||
|
||||
import greenify.server.InputValidator;
|
||||
import greenify.server.data.model.User;
|
||||
import greenify.server.data.repository.UserRepository;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -13,9 +12,6 @@ public class AchievementService {
|
||||
@Autowired
|
||||
UserService userService;
|
||||
|
||||
@Autowired
|
||||
UserRepository userRepository;
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(UserService.class);
|
||||
|
||||
/**
|
||||
@@ -28,8 +24,7 @@ public class AchievementService {
|
||||
achieveGreenSaver(user);
|
||||
achieveAnimalFriend(user);
|
||||
achieveTomDumoulin(user);
|
||||
achieveBelowAverage(user);
|
||||
userRepository.save(user);
|
||||
achieveLetItShine(user);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -39,7 +34,6 @@ public class AchievementService {
|
||||
public void achieveGettingStarted(User user) {
|
||||
if (!user.getFootPrintInputs().equals(InputValidator.getDefaultValues())) {
|
||||
userService.setAchievement(user.getName(), "Starting off", true);
|
||||
userRepository.save(user);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +44,6 @@ public class AchievementService {
|
||||
public void achieveSocialButterfly(User user) {
|
||||
if (user.getFriends().size() >= 3) {
|
||||
userService.setAchievement(user.getName(), "Social butterfly", true);
|
||||
userRepository.save(user);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,7 +54,6 @@ public class AchievementService {
|
||||
public void achieveGreenSaver(User user) {
|
||||
if (43-user.getFootPrint() > 38) {
|
||||
userService.setAchievement(user.getName(), "Green saver", true);
|
||||
userRepository.save(user);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,9 +62,8 @@ public class AchievementService {
|
||||
* @param user user for whom achiev4 changes
|
||||
*/
|
||||
public void achieveAnimalFriend(User user) {
|
||||
if (user.getExtraInputs().get("Vegetarian meal")) {
|
||||
if (user.getExtraInputs().get("vegetarian")) {
|
||||
userService.setAchievement(user.getName(), "Animal friend", true);
|
||||
userRepository.save(user);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,9 +72,8 @@ public class AchievementService {
|
||||
* @param user user for whom achiev5 changes
|
||||
*/
|
||||
public void achieveTomDumoulin(User user) {
|
||||
if (user.getExtraInputs().get("Bike used")) {
|
||||
if (user.getExtraInputs().get("bike")) {
|
||||
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.
|
||||
* @param user user for whom achiev6 changes
|
||||
*/
|
||||
public void achieveBelowAverage(User user) {
|
||||
if (Integer.parseInt(user.getFootPrintInputs().get("input_footprint_shopping_food_meatfisheggs_default")) < Integer.parseInt("2.4")) {
|
||||
userService.setAchievement(user.getName(), "Below average", true);
|
||||
userRepository.save(user);
|
||||
public void achieveLetItShine(User user) {
|
||||
if (user.getExtraInputs().get("solar_panels")) {
|
||||
userService.setAchievement(user.getName(), "Let it shine", true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,11 @@ package greenify.server.service;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
|
||||
import greenify.server.data.model.User;
|
||||
import greenify.server.data.repository.UserRepository;
|
||||
import greenify.server.InputValidator;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -24,6 +27,14 @@ public class AchievementServiceTest {
|
||||
}
|
||||
}
|
||||
|
||||
@TestConfiguration
|
||||
static class AchievementServiceConfiguration {
|
||||
@Bean
|
||||
public AchievementService achievementService() {
|
||||
return new AchievementService();
|
||||
}
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
@@ -33,7 +44,7 @@ public class AchievementServiceTest {
|
||||
@MockBean
|
||||
private CalculatorService calculatorService;
|
||||
|
||||
@MockBean
|
||||
@Autowired
|
||||
private AchievementService achievementService;
|
||||
|
||||
/**
|
||||
@@ -44,28 +55,60 @@ public class AchievementServiceTest {
|
||||
User alex = new User(1L, "alex", "password");
|
||||
when(userRepository.findByName(alex.getName()))
|
||||
.thenReturn(alex);
|
||||
User lola = new User(2L, "lola", "password");
|
||||
when(userRepository.findByName(lola.getName()))
|
||||
.thenReturn(lola);
|
||||
userService.setInput("alex","input_footprint_shopping_food_otherfood", "9.9");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateAchievementsTest() {
|
||||
User alex = userRepository.findByName("alex");
|
||||
userService.setInput("alex", "input_size", "5");
|
||||
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(false, userService.getAchievement("alex", "Social butterfly"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void achieveGettingStartedTest() {
|
||||
User alex = userRepository.findByName("alex");
|
||||
userService.setInput("alex", "input_size", "5");
|
||||
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"));
|
||||
}
|
||||
|
||||
@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