Merge branch 'Feature/delete_my_account' into 'master'

Feature/delete my account

See merge request cse1105/2018-2019/oopp-group-43/template!83
This commit is contained in:
Merel Steenbergen
2019-04-10 14:20:49 +00:00
7 changed files with 71 additions and 3 deletions

View File

@@ -400,7 +400,7 @@ public class CalculatorController {
}
try {
extraActivityController.updateExtras();
} catch (Exception ex) {
} catch (NullPointerException ex) {
System.out.println("continue");
}
Float footprint = userService.saveFootprint(userService.currentUser.getName());

View File

@@ -332,4 +332,20 @@ public class UserService {
.build().encode().toUri(), List.class);
return result;
}
/**
* Removes a user from the database.
* @param name the username of the current user.
*/
@SuppressWarnings("Duplicates")
public void deleteAccount(String name) {
HttpHeaders headers = new HttpHeaders();
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/deleteAccount")
.queryParam("name", name);
HttpEntity<?> entity = new HttpEntity<>(headers);
System.out.println(builder.build().encode().toUri());
ResponseEntity<String> authenticateResponse = this.restTemplate.getForEntity(builder.build()
.encode().toUri(), String.class);
}
}

View File

@@ -152,8 +152,6 @@ public class UserServiceTest {
@Test
public void removeFriendTest() throws Exception {
userService.addFriend("Eric", "Ceren");
Mockito.verify(userService).addFriend("Eric", "Ceren");
userService.removeFriend("Eric", "Ceren");
Mockito.verify(userService).removeFriend("Eric", "Ceren");
}
@@ -169,6 +167,12 @@ public class UserServiceTest {
userService.getResults("mika");
Mockito.verify(userService).getResults("mika");
}
@Test
public void deleteAccountTest() throws Exception {
userService.deleteAccount("merel");
Mockito.verify(userService).deleteAccount("merel");
}
}

View File

@@ -195,5 +195,14 @@ public class UserController {
public Map<String, String> getResults(@RequestParam(value = "name") String name) {
return userService.getResults(name);
}
/**
* This method deletes a user from the database.
* @param name name of the user
*/
@RequestMapping("/deleteAccount")
public void deleteAccount(@RequestParam(value = "name") String name) {
userService.deleteAccount(name);
}
}

View File

@@ -303,4 +303,15 @@ public class UserService {
}
return result;
}
/**
* This method gets the list of all users.
*/
public void deleteAccount(String name) {
User user = userRepository.findByName(name);
if (user == null) {
throw new ApplicationException("User doesn't exist");
}
userRepository.delete(user);
}
}

View File

@@ -262,4 +262,16 @@ public class UserControllerTest {
assertEquals("mika", arg1Captor.getValue());
}
@Test
public void deleteAccountTest() throws Exception {
ArgumentCaptor<String> arg1Captor = ArgumentCaptor.forClass(String.class);
mvc.perform(get("/deleteAccount")
.param("name", "merel")
.accept(MediaType.APPLICATION_JSON))
.andDo(print())
.andExpect(status().isOk());
verify(userService, times(1)).deleteAccount(arg1Captor.capture());
assertEquals("merel", arg1Captor.getValue());
}
}

View File

@@ -2,6 +2,9 @@ package greenify.server.service;
import static org.junit.Assert.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import greenify.common.ApplicationException;
@@ -326,4 +329,17 @@ public class UserServiceTest {
public void getAchievementsTest() {
assertEquals(AllAchievements.getDefaults(), userService.getAchievements("alex"));
}
@Test
public void deleteAccountException() {
assertThrows(ApplicationException.class, () -> userService.deleteAccount("merel"));
}
@Test
public void deleteAccount() {
User alex = new User(1L, "alex", "password");
doNothing().when(userRepository).delete(alex);
userService.deleteAccount("alex");
verify(userRepository, times(1)).delete(alex);
}
}