+1 (315) 557-6473 

Program To Create a Simple Chat Application With 4 Endpoints Using Java Programming Language Assignment Solutions.


Instructions

Objective
We understand that Java assignments can sometimes be challenging, but don't worry, we're here to provide you with the best Java assignment help available. Our team of expert programmers is well-versed in Java and can guide you through every step of the process. From setting up the endpoints to implementing the chat functionalities, we've got you covered. So, let's get started on your project and ensure you have a well-functioning chat application in no time!

Requirements and Specifications

Program to create a simple chat application with 4 endpoints in Java programming language

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 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 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 messages = GsonTool.gson.fromJson(responseParts[2],

        new TypeToken>() {

        }.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 messages = GsonTool.gson.fromJson(responseParts[2],

        new TypeToken>() {

        }.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 userRes = GsonTool.gson.fromJson(responseParts[2],

        new TypeToken>() {}.getType());

    Assert.assertEquals(userRes.data.size(), 1);

    Assert.assertEquals(userRes.data.get(0).getUserName(), user1);

    Assert.assertEquals(userRes.data.get(0).getUniqueId(), user1Id);

  }

}