Instructions
Requirements and Specifications
Source Code
CREATE MESSAGE HANDLER
package handler;
import dao.MessageDao;
import dto.MessageDto;
import java.util.List;
import org.testng.Assert;
import org.testng.annotations.Test;
import server.Server;
public class CreateMessageHandlerTest {
@Test
public void createMessageTest(){
MessageDto messageDto = new MessageDto();
messageDto.setMessage(String.valueOf(Math.random()));
messageDto.setFromId(String.valueOf(Math.random()));
messageDto.setToId(String.valueOf(Math.random()));
String test1 = "POST /createMessage HTTP/1.1\n"
+ "Host: test\n"
+ "Connection: Keep-Alive\n"
+ "\n"
+ GsonTool.gson.toJson(messageDto);
String response = Server.processRequest(test1);
String[] responseParts = response.split("\n");
Assert.assertEquals(responseParts[0], "HTTP/1.1 200 OK");
List<MessageDto> messageDtos = MessageDao.getInstance().getAll();
Assert.assertEquals(messageDtos.size(), 1);
Assert.assertNotNull(messageDtos.get(0).getUniqueId());
Assert.assertEquals(messageDtos.get(0).getMessage(), messageDto.getMessage());
}
}
CREATE USER HANDLER
package handler;
import com.google.gson.Gson;
import dao.UserDao;
import dto.UserDto;
import java.util.List;
import org.testng.Assert;
import org.testng.annotations.Test;
import server.Server;
public class CreateUserHandlerTest {
private static final Gson gson = new Gson();
@Test
public void createUserTest(){
String user1 = String.valueOf(Math.random());
UserDto user = new UserDto();
user.setUserName(user1);
String test1 = "POST /createUser HTTP/1.1\n"
+ "Host: test\n"
+ "Connection: Keep-Alive\n"
+ "\n"
+ gson.toJson(user);
String response = Server.processRequest(test1);
String[] responseParts = response.split("\n");
Assert.assertEquals(responseParts[0], "HTTP/1.1 200 OK");
List<UserDto> users = UserDao.getInstance().getAll();
Assert.assertEquals(users.size(), 1);
Assert.assertNotNull(users.get(0).getUniqueId());
Assert.assertEquals(users.get(0).getUserName(), user1);
}
}
GET MESSAGES HANDLER
package handler;
import com.google.gson.reflect.TypeToken;
import dao.MessageDao;
import dto.MessageDto;
import org.testng.Assert;
import org.testng.annotations.Test;
import response.RestApiAppResponse;
import server.Server;
public class GetMessagesHandlerTest {
@Test
public void createUserTest() {
String fromUserId = String.valueOf(Math.random());
String toUserId = String.valueOf(Math.random());
String toUserId2 = String.valueOf(Math.random());
String messageId1 = String.valueOf(Math.random());
MessageDto messageDto1 = new MessageDto(messageId1);
messageDto1.setToId(toUserId);
messageDto1.setFromId(fromUserId);
messageDto1.setMessage(String.valueOf(Math.random()));
String messageId2 = String.valueOf(Math.random());
MessageDto messageDto2 = new MessageDto(messageId2);
messageDto2.setToId(toUserId2);
messageDto2.setFromId(fromUserId);
MessageDao messageDao = MessageDao.getInstance();
messageDao.put(messageDto1);
messageDao.put(messageDto2);
String test1 = "GET /getMessages?fromId=" + fromUserId + "&toId=" + toUserId + " HTTP/1.1\n"
+ "Host: test\n"
+ "Connection: Keep-Alive\n"
+ "\n";
System.out.println(test1);
String response = Server.processRequest(test1);
String[] responseParts = response.split("\n");
Assert.assertEquals(responseParts[0], "HTTP/1.1 200 OK");
RestApiAppResponse<MessageDto> messages = GsonTool.gson.fromJson(responseParts[2],
new TypeToken<RestApiAppResponse<MessageDto>>() {
}.getType());
Assert.assertEquals(messages.data.size(), 1);
Assert.assertEquals(messages.data.get(0).getUniqueId(), messageDto1.getUniqueId());
Assert.assertEquals(messages.data.get(0).getToId(), messageDto1.getToId());
Assert.assertEquals(messages.data.get(0).getFromId(), messageDto1.getFromId());
Assert.assertEquals(messages.data.get(0).getMessage(), messageDto1.getMessage());
}
@Test
public void createUserTest2() {
String fromUserId = String.valueOf(Math.random());
String toUserId = String.valueOf(Math.random());
String toUserId2 = String.valueOf(Math.random());
String messageId1 = String.valueOf(Math.random());
MessageDto messageDto1 = new MessageDto(messageId1);
messageDto1.setToId(toUserId);
messageDto1.setFromId(fromUserId);
messageDto1.setMessage(String.valueOf(Math.random()));
String messageId2 = String.valueOf(Math.random());
MessageDto messageDto2 = new MessageDto(messageId2);
messageDto2.setToId(toUserId2);
messageDto2.setFromId(fromUserId);
MessageDao messageDao = MessageDao.getInstance();
messageDao.put(messageDto1);
messageDao.put(messageDto2);
String test1 = "GET /getMessages?fromId=" + String.valueOf(Math.random()) + "&toId=" + toUserId + " HTTP/1.1\n"
+ "Host: test\n"
+ "Connection: Keep-Alive\n"
+ "\n";
System.out.println(test1);
String response = Server.processRequest(test1);
String[] responseParts = response.split("\n");
Assert.assertEquals(responseParts[0], "HTTP/1.1 200 OK");
RestApiAppResponse<MessageDto> messages = GsonTool.gson.fromJson(responseParts[2],
new TypeToken<RestApiAppResponse<MessageDto>>() {
}.getType());
Assert.assertEquals(messages.data.size(), 0);
}
}
GET USER HANDLER
package handler;
import com.google.gson.reflect.TypeToken;
import dao.UserDao;
import dto.UserDto;
import org.testng.Assert;
import org.testng.annotations.Test;
import response.RestApiAppResponse;
import server.Server;
public class GetUsersHandlerTest {
@Test
public void createUserTest(){
String user1 = String.valueOf(Math.random());
String user1Id = String.valueOf(Math.random());
UserDto user = new UserDto();
UserDao userDao = UserDao.getInstance();
user.setUserName(user1);
user.setUniqueId(user1Id);
userDao.put(user);
String test1 = "GET /getUsers HTTP/1.1\n"
+ "Host: test\n"
+ "Connection: Keep-Alive\n"
+ "\n";
String response = Server.processRequest(test1);
String[] responseParts = response.split("\n");
Assert.assertEquals(responseParts[0], "HTTP/1.1 200 OK");
RestApiAppResponse<UserDto> userRes = GsonTool.gson.fromJson(responseParts[2],
new TypeToken<RestApiAppResponse<UserDto>>() {}.getType());
Assert.assertEquals(userRes.data.size(), 1);
Assert.assertEquals(userRes.data.get(0).getUserName(), user1);
Assert.assertEquals(userRes.data.get(0).getUniqueId(), user1Id);
}
}