From b3a0ddaa688fc2ddf73bea697c8cb9398d78f83b Mon Sep 17 00:00:00 2001 From: Merel Steenbergen Date: Wed, 20 Mar 2019 15:44:47 +0100 Subject: [PATCH 1/7] Retry adding friends. Server down again --- build.gradle | 6 +++--- .../java/greenify/server/data/model/User.java | 12 ++++++++++++ .../greenify/server/rest/UserController.java | 16 ++++++++++++++-- .../greenify/server/service/UserService.java | 14 ++++++++++++++ .../server/service/UserServiceTest.java | 17 +++++++++++++++++ 5 files changed, 60 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 2b6ed72..98f5661 100644 --- a/build.gradle +++ b/build.gradle @@ -18,9 +18,9 @@ apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' apply plugin: 'application' -application { - mainClassName = 'greenify.server.Application' -} +//application { +// mainClassName = 'greenify.server.Application' +//} repositories { mavenCentral() diff --git a/src/Server/src/main/java/greenify/server/data/model/User.java b/src/Server/src/main/java/greenify/server/data/model/User.java index 6ba6f73..7ce97b9 100644 --- a/src/Server/src/main/java/greenify/server/data/model/User.java +++ b/src/Server/src/main/java/greenify/server/data/model/User.java @@ -2,6 +2,8 @@ package greenify.server.data.model; import lombok.Data; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -27,6 +29,8 @@ public class User { private int veganMeal; + private ArrayList friends; + public User() {} /** @@ -41,6 +45,7 @@ public class User { this.name = name; this.password = password; this.veganMeal = veganMeal; + this.friends = new ArrayList(); } /** @@ -91,6 +96,13 @@ public class User { this.veganMeal = veganMeal; } + public List getFriends(){ + return this.friends; + } + + public void addFriend(User user){ + friends.add(user); + } /** * Returns a human readable object. It's in JSON. diff --git a/src/Server/src/main/java/greenify/server/rest/UserController.java b/src/Server/src/main/java/greenify/server/rest/UserController.java index 3236f39..b460a03 100644 --- a/src/Server/src/main/java/greenify/server/rest/UserController.java +++ b/src/Server/src/main/java/greenify/server/rest/UserController.java @@ -32,8 +32,6 @@ public class UserController { return userService.loginUser(name, password); } - - /** * adds a vegetarian meal to the user. * @param id the id of the user @@ -46,4 +44,18 @@ public class UserController { //addVeganMeal method of the userService userService.addVeganMeal(id, name); } + + /** + * adds a friend to the user. + * @param id the id of the user + * @param name thr username of the user + */ + @RequestMapping("/addVeganMeal") + public void addVeganMeal(@RequestParam(value = "id") Long id, + @RequestParam(value = "name") String name, + @RequestParam(value = "friend") String friend) { + //here the requestParams are the id and name of the user and the name of the friend, + // because that is needed for the addFriendmethod of the userService + userService.addFriend(id, name, friend); + } } \ No newline at end of file diff --git a/src/Server/src/main/java/greenify/server/service/UserService.java b/src/Server/src/main/java/greenify/server/service/UserService.java index 7ddd5f3..62e212b 100644 --- a/src/Server/src/main/java/greenify/server/service/UserService.java +++ b/src/Server/src/main/java/greenify/server/service/UserService.java @@ -79,6 +79,20 @@ public class UserService { + ", name=" + user.getName() + ")"); } + /** + * add vegan meal to the user. + * @param id the id of the user + * @param name the name of the user + */ + public void addFriend(Long id, String name, String friend) { + User user = userRepository.findByName(name); + User add = userRepository.findByName(friend); + user.addFriend(user); + userRepository.save(user); + logger.info("Added friend to user(id=" + user.getId() + + ", name=" + user.getName() + ")"); + } + @GetMapping(path = "/all") @ResponseBody public Iterable getAllUsers() { diff --git a/src/Server/src/test/java/greenify/server/service/UserServiceTest.java b/src/Server/src/test/java/greenify/server/service/UserServiceTest.java index a1ed76c..a2bd145 100644 --- a/src/Server/src/test/java/greenify/server/service/UserServiceTest.java +++ b/src/Server/src/test/java/greenify/server/service/UserServiceTest.java @@ -18,6 +18,9 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Bean; import org.springframework.test.context.junit4.SpringRunner; +import java.util.ArrayList; +import java.util.List; + @RunWith(SpringRunner.class) public class UserServiceTest { @TestConfiguration @@ -71,4 +74,18 @@ public class UserServiceTest { userService.loginUser(null, null); }); } + + @Test + public void addFriendTest() { + User user = new User(1l,"Merel", "password", 0); + User friend = new User(2l, "Ellis", "pass", 0); + userService.registerUser("Merel", "password"); + userService.registerUser("Ellis", "pass"); + assertEquals(user.getFriends(), new ArrayList()); + userService.addFriend(1l,"Merel", "Ëllis"); + List ellis = new ArrayList(); + ((ArrayList) ellis).add(friend); + assertEquals(user.getFriends(), ellis); + } + } From fb69ec280d9757f4ca73ec8257670846a1273ad1 Mon Sep 17 00:00:00 2001 From: Merel Steenbergen Date: Thu, 21 Mar 2019 16:09:23 +0100 Subject: [PATCH 2/7] Added testing for the friend list and equals in User class in Server --- .../java/greenify/server/data/model/User.java | 9 ++++- .../greenify/server/data/model/UserTest.java | 40 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/Server/src/main/java/greenify/server/data/model/User.java b/src/Server/src/main/java/greenify/server/data/model/User.java index 7ce97b9..9433d06 100644 --- a/src/Server/src/main/java/greenify/server/data/model/User.java +++ b/src/Server/src/main/java/greenify/server/data/model/User.java @@ -1,5 +1,7 @@ package greenify.server.data.model; +import greenify.common.ApplicationException; +import greenify.server.Application; import lombok.Data; import java.util.ArrayList; @@ -101,7 +103,12 @@ public class User { } public void addFriend(User user){ - friends.add(user); + if(!user.equals(this)) { + friends.add(user); + } + else { + throw new ApplicationException("Cannnot add yourself as a friend"); + } } /** diff --git a/src/Server/src/test/java/greenify/server/data/model/UserTest.java b/src/Server/src/test/java/greenify/server/data/model/UserTest.java index 5283d6b..455541b 100644 --- a/src/Server/src/test/java/greenify/server/data/model/UserTest.java +++ b/src/Server/src/test/java/greenify/server/data/model/UserTest.java @@ -1,11 +1,18 @@ package greenify.server.data.model; +import static greenify.server.data.model.User.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import greenify.common.ApplicationException; +import greenify.server.Application; import org.junit.Test; +import java.util.ArrayList; + public class UserTest { @Test public void setAndGetTest() { @@ -28,6 +35,13 @@ public class UserTest { assertEquals("User(id=1, name=greenify, password=password, veganMeal=3)", user.toString()); } + @Test + public void equalsNullTest(){ + User first = new User(1L, "greenify", "password", 0); + User second = null; + assertNotEquals(first, second); + } + @Test public void equalsTest() { User first = new User(1L, "greenify", "password", 3); @@ -46,6 +60,12 @@ public class UserTest { assertFalse(first.equals(second)); } + @Test + public void sameEqualsTest(){ + User user = new User(6l, "Merel", "password", 0); + assertEquals(user, user); + } + @Test public void instanceOfTest() { User first = new User(); @@ -60,5 +80,25 @@ public class UserTest { assertEquals(first, second); assertEquals(first.hashCode(), second.hashCode()); } + + @Test + public void addFriendTest(){ + User user = new User(1l, "user", "friends", 0); + User friend = new User(2l, "friend", "friends", 0); + assertEquals(user.getFriends(), new ArrayList()); + user.addFriend(friend); + ArrayList list = new ArrayList(); + list.add(friend); + assertEquals(user.getFriends(), list); + } + + @Test + public void addYourselfTest(){ + User user = new User(1l, "user", "friends", 0); + assertThrows(ApplicationException.class, () -> { + user.addFriend(user); + }); + assertEquals(user.getFriends(), new ArrayList()); + } } From 6323fd06ebd62e1faf792ee9b3757f2bf6ee760a Mon Sep 17 00:00:00 2001 From: Merel Steenbergen Date: Thu, 21 Mar 2019 16:14:50 +0100 Subject: [PATCH 3/7] FIX: Bug fixed, Server now works again --- .../src/main/java/greenify/server/rest/UserController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Server/src/main/java/greenify/server/rest/UserController.java b/src/Server/src/main/java/greenify/server/rest/UserController.java index b460a03..7e58a88 100644 --- a/src/Server/src/main/java/greenify/server/rest/UserController.java +++ b/src/Server/src/main/java/greenify/server/rest/UserController.java @@ -50,7 +50,7 @@ public class UserController { * @param id the id of the user * @param name thr username of the user */ - @RequestMapping("/addVeganMeal") + @RequestMapping("/addFriend") public void addVeganMeal(@RequestParam(value = "id") Long id, @RequestParam(value = "name") String name, @RequestParam(value = "friend") String friend) { From e69e08ad15c771bd07a23ab95c10cc1533e26d7b Mon Sep 17 00:00:00 2001 From: Merel Steenbergen Date: Fri, 22 Mar 2019 18:44:59 +0100 Subject: [PATCH 4/7] EDIT: Try to fix server, again --- .../greenify/client/rest/UserService.java | 20 ++++++++++++++++++ .../java/greenify/server/data/model/User.java | 17 +++++++++++++-- .../greenify/server/data/model/UserTest.java | 21 +++++++++++++++++++ 3 files changed, 56 insertions(+), 2 deletions(-) diff --git a/src/Client/src/main/java/greenify/client/rest/UserService.java b/src/Client/src/main/java/greenify/client/rest/UserService.java index ced0ec2..b28340b 100644 --- a/src/Client/src/main/java/greenify/client/rest/UserService.java +++ b/src/Client/src/main/java/greenify/client/rest/UserService.java @@ -99,6 +99,26 @@ public class UserService { return this.restTemplate.getForObject(builder.build().encode().toUri(), UserDto.class); } + /** + * a user adds vegan meal. + * @param id the id of the user + * @param name the username of the user + * @return a userDTO + */ + @SuppressWarnings("Duplicates") + public UserDto addFriend(Long id, String name, String friend) { + //this method is almost the same as the registerUser one, but with a different link + HttpHeaders headers = new HttpHeaders(); + headers.set("Accept", MediaType.APPLICATION_JSON_VALUE); + UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/addFriend") + .queryParam("id", id) + .queryParam("name", name) + .queryParam("friend", friend); + HttpEntity entity = new HttpEntity<>(headers); + System.out.println(builder.build().encode().toUri()); + return this.restTemplate.getForObject(builder.build().encode().toUri(), UserDto.class); + } + @RequestMapping("/userData") public int getVeganData(@RequestParam(value = "veganMeal") int veganMeal) { return veganMeal; diff --git a/src/Server/src/main/java/greenify/server/data/model/User.java b/src/Server/src/main/java/greenify/server/data/model/User.java index 9433d06..5020710 100644 --- a/src/Server/src/main/java/greenify/server/data/model/User.java +++ b/src/Server/src/main/java/greenify/server/data/model/User.java @@ -111,14 +111,27 @@ public class User { } } + public String friendsToString(){ + String result = ""; + for(User u : friends){ + result += u.getId() + ", "; + } + result = result.substring(0, result.lastIndexOf(",")); + return result; + } + /** * Returns a human readable object. It's in JSON. * @return the JSON form of the object. */ @Override public String toString() { - return "User(id=" + this.id + ", name=" + this.name + ", password=" - + this.password + ", veganMeal=" + this.veganMeal + ")"; + String result = "User(id=" + this.id + ", name=" + this.name + ", password=" + + this.password + ", veganMeal=" + this.veganMeal + ", friends=["; + result += friendsToString() + "])"; + +// result += ")"; + return result; } @Override diff --git a/src/Server/src/test/java/greenify/server/data/model/UserTest.java b/src/Server/src/test/java/greenify/server/data/model/UserTest.java index 455541b..b3721c7 100644 --- a/src/Server/src/test/java/greenify/server/data/model/UserTest.java +++ b/src/Server/src/test/java/greenify/server/data/model/UserTest.java @@ -27,6 +27,7 @@ public class UserTest { assertEquals(user.getPassword(), "password"); assertEquals(user.getVeganMeal(), 3); assertEquals(user, testUser); + assertEquals(user.getFriends(), new ArrayList()); } @Test @@ -100,5 +101,25 @@ public class UserTest { }); assertEquals(user.getFriends(), new ArrayList()); } + + @Test + public void JsonTest(){ + User user = new User(1l, "user", "friends", 0); + User friend = new User(2l, "friend", "friends", 0); + assertEquals(user.getFriends(), new ArrayList()); + user.addFriend(friend); + ArrayList list = new ArrayList(); + list.add(friend); + assertEquals(user.getFriends(), list); + System.out.println(user.toString()); + } + + @Test + public void friendsToStringTest(){ + User user = new User(4l, "user", "pass", 0); + User friend = new User (5l, "friend", "pass", 0); + user.addFriend(friend); + System.out.println(user.friendsToString()); + } } From 12c2ebab4e49f1b0706f877163e3347ab72feb99 Mon Sep 17 00:00:00 2001 From: Merel Steenbergen Date: Fri, 22 Mar 2019 20:20:39 +0100 Subject: [PATCH 5/7] Debugging in progress. FindByName returns null again. --- src/.classpath | 7 ------- src/.project | 17 ----------------- .../java/greenify/server/data/model/User.java | 6 ++++-- .../greenify/server/data/model/UserTest.java | 2 +- .../server/service/UserServiceTest.java | 13 +++++++++---- 5 files changed, 14 insertions(+), 31 deletions(-) delete mode 100644 src/.classpath delete mode 100644 src/.project diff --git a/src/.classpath b/src/.classpath deleted file mode 100644 index 757e1b8..0000000 --- a/src/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/.project b/src/.project deleted file mode 100644 index d4fb5ff..0000000 --- a/src/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - OOPP - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/src/Server/src/main/java/greenify/server/data/model/User.java b/src/Server/src/main/java/greenify/server/data/model/User.java index 5020710..4bced0a 100644 --- a/src/Server/src/main/java/greenify/server/data/model/User.java +++ b/src/Server/src/main/java/greenify/server/data/model/User.java @@ -114,9 +114,11 @@ public class User { public String friendsToString(){ String result = ""; for(User u : friends){ - result += u.getId() + ", "; + result += u.getName() + ", "; + } + if(result.endsWith(", ")){ + result = result.substring(0, result.lastIndexOf(",")); } - result = result.substring(0, result.lastIndexOf(",")); return result; } diff --git a/src/Server/src/test/java/greenify/server/data/model/UserTest.java b/src/Server/src/test/java/greenify/server/data/model/UserTest.java index b3721c7..0006108 100644 --- a/src/Server/src/test/java/greenify/server/data/model/UserTest.java +++ b/src/Server/src/test/java/greenify/server/data/model/UserTest.java @@ -33,7 +33,7 @@ public class UserTest { @Test public void toStringTest() { User user = new User(1L, "greenify", "password", 3); - assertEquals("User(id=1, name=greenify, password=password, veganMeal=3)", user.toString()); + assertEquals("User(id=1, name=greenify, password=password, veganMeal=3, friends=[])", user.toString()); } @Test diff --git a/src/Server/src/test/java/greenify/server/service/UserServiceTest.java b/src/Server/src/test/java/greenify/server/service/UserServiceTest.java index a2bd145..9c74476 100644 --- a/src/Server/src/test/java/greenify/server/service/UserServiceTest.java +++ b/src/Server/src/test/java/greenify/server/service/UserServiceTest.java @@ -82,10 +82,15 @@ public class UserServiceTest { userService.registerUser("Merel", "password"); userService.registerUser("Ellis", "pass"); assertEquals(user.getFriends(), new ArrayList()); - userService.addFriend(1l,"Merel", "Ëllis"); - List ellis = new ArrayList(); - ((ArrayList) ellis).add(friend); - assertEquals(user.getFriends(), ellis); + + //STILL TELLS ME NULL + System.out.println(userRepository.findByName("Merel")); + + +// userService.addFriend(1l,"Merel", "Ellis"); +// List ellis = new ArrayList(); +// ((ArrayList) ellis).add(friend); +// assertEquals(user.getFriends(), ellis); } } From 6385beec0673f0a8f917aa3473f0a6a2af53d01d Mon Sep 17 00:00:00 2001 From: Merel Steenbergen Date: Fri, 22 Mar 2019 21:51:09 +0100 Subject: [PATCH 6/7] FIX: Tests now work --- .../greenify/server/service/UserService.java | 2 +- .../server/service/UserServiceTest.java | 34 +++++++------------ 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/Server/src/main/java/greenify/server/service/UserService.java b/src/Server/src/main/java/greenify/server/service/UserService.java index 62e212b..b305a0f 100644 --- a/src/Server/src/main/java/greenify/server/service/UserService.java +++ b/src/Server/src/main/java/greenify/server/service/UserService.java @@ -87,7 +87,7 @@ public class UserService { public void addFriend(Long id, String name, String friend) { User user = userRepository.findByName(name); User add = userRepository.findByName(friend); - user.addFriend(user); + user.addFriend(add); userRepository.save(user); logger.info("Added friend to user(id=" + user.getId() + ", name=" + user.getName() + ")"); diff --git a/src/Server/src/test/java/greenify/server/service/UserServiceTest.java b/src/Server/src/test/java/greenify/server/service/UserServiceTest.java index 9c74476..3dbcfb9 100644 --- a/src/Server/src/test/java/greenify/server/service/UserServiceTest.java +++ b/src/Server/src/test/java/greenify/server/service/UserServiceTest.java @@ -42,14 +42,17 @@ public class UserServiceTest { */ @Before public void setUp() { - User alex = new User(1L, "alex", "password", 0); - when(userRepository.findByName(alex.getName())) - .thenReturn(alex); + User user = new User(1L, "user", "password", 0); + when(userRepository.findByName(user.getName())) + .thenReturn(user); + User friend = new User(2L, "friend", "password", 0); + when(userRepository.findByName(friend.getName())) + .thenReturn(friend); } @Test public void validLoginTest() { - String name = "alex"; + String name = "user"; String password = "password"; UserDto found = userService.loginUser(name, password); assertEquals(found.getName(), name); @@ -57,8 +60,8 @@ public class UserServiceTest { @Test public void userRegisterTest() { - User user = new User(1L, "name", "password", 0); - UserDto registered = userService.registerUser(user.getName(), user.getPassword()); + User test = new User(1L, "name", "password", 0); + UserDto registered = userService.registerUser(test.getName(), test.getPassword()); assertEquals(registered.getName(), "name"); } @@ -69,7 +72,6 @@ public class UserServiceTest { @Test public void invalidLoginTest() { - User user = null; assertThrows(ApplicationException.class, () -> { userService.loginUser(null, null); }); @@ -77,20 +79,10 @@ public class UserServiceTest { @Test public void addFriendTest() { - User user = new User(1l,"Merel", "password", 0); - User friend = new User(2l, "Ellis", "pass", 0); - userService.registerUser("Merel", "password"); - userService.registerUser("Ellis", "pass"); - assertEquals(user.getFriends(), new ArrayList()); - - //STILL TELLS ME NULL - System.out.println(userRepository.findByName("Merel")); - - -// userService.addFriend(1l,"Merel", "Ellis"); -// List ellis = new ArrayList(); -// ((ArrayList) ellis).add(friend); -// assertEquals(user.getFriends(), ellis); + userService.addFriend(1L,"user", "friend"); + List test = new ArrayList(); + test.add(userRepository.findByName("friend")); + assertEquals(userRepository.findByName("user").getFriends(), test); } } From f8315700d9b4499bd44e135ef4b703869742b9e4 Mon Sep 17 00:00:00 2001 From: Merel Steenbergen Date: Fri, 22 Mar 2019 21:57:05 +0100 Subject: [PATCH 7/7] FIX: Uncomment mainClassName --- build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 98f5661..2b6ed72 100644 --- a/build.gradle +++ b/build.gradle @@ -18,9 +18,9 @@ apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' apply plugin: 'application' -//application { -// mainClassName = 'greenify.server.Application' -//} +application { + mainClassName = 'greenify.server.Application' +} repositories { mavenCentral()