diff --git a/src/main/java/fr/insee/demo/model/Discussion.java b/src/main/java/fr/insee/demo/model/Discussion.java new file mode 100644 index 0000000..4072b6a --- /dev/null +++ b/src/main/java/fr/insee/demo/model/Discussion.java @@ -0,0 +1,58 @@ +package fr.insee.demo.model; + +import java.util.ArrayList; +import java.util.List; + +public class Discussion { + + private List messages; + + public Discussion() { + messages = new ArrayList(); + } + + public List getMessages() { + return messages; + } + + public void setMessages(List messages) { + this.messages = messages; + } + + public void AddMessage(String message) { + HelloWorld hello = new HelloWorld(message); + messages.add(hello); + } + + public void AddMessage(HelloWorld hello) { + messages.add(hello); + } + + public String getAllDiscussion() { + + StringBuffer sb = new StringBuffer(); + for (HelloWorld hello : messages) { + sb.append("\n"); + sb.append(hello.getAuthorName()); + sb.append(" - "); + sb.append(hello.getMessage()); + sb.append("\n"); + } + return sb.toString(); + } + + public String getDiscussionsFilterByUserId(String userId) { + StringBuffer sb = new StringBuffer(); + for (HelloWorld hello : messages) { + if (userId.equals(hello.getUser().getId())) { + sb.append("\n"); + sb.append(hello.getAuthorName()); + sb.append(" - "); + sb.append(hello.getMessage()); + sb.append("\n"); + } + } + return sb.toString(); + } + +} diff --git a/src/main/java/fr/insee/demo/model/HelloWorld.java b/src/main/java/fr/insee/demo/model/HelloWorld.java index efb5232..0757e3e 100644 --- a/src/main/java/fr/insee/demo/model/HelloWorld.java +++ b/src/main/java/fr/insee/demo/model/HelloWorld.java @@ -2,12 +2,11 @@ public class HelloWorld { + private User user; private String message; - - public HelloWorld(String message){ - - this.message=message; - + + public HelloWorld(String message) { + this.message = message; } public String getMessage() { @@ -17,6 +16,21 @@ public String getMessage() { public void setMessage(String message) { this.message = message; } - - + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public String getAuthorName() { + if (user != null) { + return this.getUser().getName(); + } else { + return null; + } + } + } diff --git a/src/main/java/fr/insee/demo/model/User.java b/src/main/java/fr/insee/demo/model/User.java new file mode 100644 index 0000000..b4b0504 --- /dev/null +++ b/src/main/java/fr/insee/demo/model/User.java @@ -0,0 +1,30 @@ +package fr.insee.demo.model; + +public class User { + + private String id; + + private String name; + + public User(String id, String name) { + this.id = id; + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/src/main/java/fr/insee/demo/webservice/Messaging.java b/src/main/java/fr/insee/demo/webservice/Messaging.java index cc3e9a8..97af2fe 100644 --- a/src/main/java/fr/insee/demo/webservice/Messaging.java +++ b/src/main/java/fr/insee/demo/webservice/Messaging.java @@ -29,4 +29,15 @@ public String getMessage() throws Exception { return hello.getMessage(); } + @GET + @Path("discussion") + @Produces(MediaType.TEXT_HTML) + @ApiOperation(value = "Get discussion", notes = "Get simple conversation") + @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), + @ApiResponse(code = 500, message = "Unexpected error") }) + public String getConversation() throws Exception { + HelloWorld hello = new HelloWorld("Hey !"); + return hello.getMessage(); + } + } diff --git a/src/test/java/fr/insee/demo/TestDiscussion.java b/src/test/java/fr/insee/demo/TestDiscussion.java new file mode 100644 index 0000000..9a7ae70 --- /dev/null +++ b/src/test/java/fr/insee/demo/TestDiscussion.java @@ -0,0 +1,71 @@ +package fr.insee.demo ; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import fr.insee.demo.model.Discussion; +import fr.insee.demo.model.HelloWorld; +import fr.insee.demo.model.User; + +public class TestDiscussion { + + private Discussion discussion; + + @Before + public void initDiscussion(){ + User user1 = new User("001", "John"); + User user2 = new User("001", "Jack"); + discussion = new Discussion(); + HelloWorld hello = new HelloWorld("Hey John!"); + hello.setUser(user2); + discussion.AddMessage(hello); + HelloWorld hello2 = new HelloWorld("Hi Jack!"); + hello2.setUser(user1); + discussion.AddMessage(hello2); + HelloWorld hello3 = new HelloWorld("How are you ?"); + hello3.setUser(user1); + discussion.AddMessage(hello3); + HelloWorld hello4 = new HelloWorld("Fine, Thx, and you John, how are you ?"); + hello4.setUser(user2); + discussion.AddMessage(hello4); + HelloWorld hello5 = new HelloWorld("Fine, Thx."); + hello5.setUser(user1); + discussion.AddMessage(hello5); + + } + + + @Test + public void getAllDiscussion() { + Assert.assertEquals(discussion.getAllDiscussion(),discutionToString()); + } + + @Test + public void getDiscussionsFilterByUser() { + Assert.assertEquals(discussion.getAllDiscussion(),discutionToString()); + } + + @Test + public void assertNotNullMessage() { + HelloWorld hello = new HelloWorld("Hey !"); + Assert.assertNotNull(hello.getMessage()); + } + + + + private String discutionToString(){ + StringBuffer sb = new StringBuffer(); + for (HelloWorld hello : discussion.getMessages()){ + sb.append("\n"); + sb.append(hello.getAuthorName()); + sb.append(" - "); + sb.append(hello.getMessage()); + sb.append("\n"); + } + return sb.toString(); + } + + + +} diff --git a/src/test/java/fr/insee/demo/TestHelloWorld.java b/src/test/java/fr/insee/demo/TestHelloWorld.java index 8c4ce25..704880b 100644 --- a/src/test/java/fr/insee/demo/TestHelloWorld.java +++ b/src/test/java/fr/insee/demo/TestHelloWorld.java @@ -4,6 +4,7 @@ import org.junit.Test; import fr.insee.demo.model.HelloWorld; +import fr.insee.demo.model.User; public class TestHelloWorld { @@ -20,4 +21,27 @@ public void assertNotNullMessage() { Assert.assertNotNull(hello.getMessage()); } + @Test + public void getUserFromMessage() { + User user = new User("001", "John"); + HelloWorld hello = new HelloWorld("Hey !"); + hello.setUser(user); + Assert.assertEquals(hello.getUser().getId(),"001"); + } + + @Test + public void getAuthor() { + User user = new User("001", "John"); + HelloWorld hello = new HelloWorld("Hey !"); + hello.setUser(user); + Assert.assertEquals(hello.getAuthorName(),"John"); + } + + @Test + public void getAuthorWhenNotSpecified() { + HelloWorld hello = new HelloWorld("Hey !"); + Assert.assertNull(hello.getAuthorName()); + } + + } diff --git a/src/test/java/fr/insee/demo/TestUser.java b/src/test/java/fr/insee/demo/TestUser.java new file mode 100644 index 0000000..11c351e --- /dev/null +++ b/src/test/java/fr/insee/demo/TestUser.java @@ -0,0 +1,22 @@ +package fr.insee.demo; + +import org.junit.Assert; +import org.junit.Test; + +import fr.insee.demo.model.User; + +public class TestUser { + + @Test + public void getName() { + User user = new User("001", "John"); + Assert.assertEquals(user.getName(), "John"); + } + + @Test + public void assertNotNullUser() { + User user = new User("001", "John"); + Assert.assertNotNull(user.getId()); + } + +}