use of codeu.model.data.Activity in project codeu-2018-team12 by codeu-2018-team12.
the class ActivityStoreTest method testGetActivityWithId_found.
@Test
public void testGetActivityWithId_found() {
Activity resultActivity = activityStore.getActivityWithId(ACTIVITY_ONE.getId());
assertEquals(ACTIVITY_ONE, resultActivity);
}
use of codeu.model.data.Activity in project codeu-2018-team12 by codeu-2018-team12.
the class ActivityStoreTest method testGetActivityWithId_notFound.
@Test
public void testGetActivityWithId_notFound() {
// Generates an empty/nil UUID object
UUID uuid = new UUID(0L, 0L);
Activity resultActivity = activityStore.getActivityWithId(uuid);
Assert.assertNull(resultActivity);
}
use of codeu.model.data.Activity in project codeu-2018-team12 by codeu-2018-team12.
the class PersistentDataStoreTest method testSaveAndLoadActivities.
@Test
public void testSaveAndLoadActivities() throws PersistentDataStoreException {
UUID idOne = UUID.randomUUID();
UUID userIdOne = UUID.randomUUID();
UUID conversationIdOne = UUID.randomUUID();
Instant creationOne = Instant.ofEpochMilli(1000);
String messageTypeOne = "joinedApp";
String messageOne = "Ada joined!";
ArrayList<UUID> usersOne = new ArrayList<UUID>();
usersOne.add(userIdOne);
Activity inputActivityOne = new Activity(idOne, userIdOne, conversationIdOne, creationOne, messageTypeOne, messageOne, usersOne, true);
UUID idTwo = UUID.randomUUID();
UUID userIdTwo = UUID.randomUUID();
UUID conversationIdTwo = UUID.randomUUID();
Instant creationTwo = Instant.ofEpochMilli(1000);
String messageTypeTwo = "messageSent";
String messageTwo = "Grace sent a message in Programming Chat: \"I've always been more interested " + "in the future than in the past.\"";
ArrayList<UUID> usersTwo = new ArrayList<UUID>();
usersTwo.add(userIdTwo);
Activity inputActivityTwo = new Activity(idTwo, userIdTwo, conversationIdTwo, creationTwo, messageTypeTwo, messageTwo, usersTwo, false);
// save
persistentDataStore.writeThrough(inputActivityOne);
persistentDataStore.writeThrough(inputActivityTwo);
// load
List<Activity> resultActivities = persistentDataStore.loadActivities();
// confirm that what we saved matches what we loaded
Activity resultActivityOne = resultActivities.get(0);
Assert.assertEquals(idOne, resultActivityOne.getId());
Assert.assertEquals(userIdOne, resultActivityOne.getUserId());
Assert.assertEquals(conversationIdOne, resultActivityOne.getConversationId());
Assert.assertEquals(creationOne, resultActivityOne.getCreationTime());
Assert.assertEquals(messageTypeOne, resultActivityOne.getActivityType());
Assert.assertEquals(messageOne, resultActivityOne.getActivityMessage());
Assert.assertEquals(usersOne, resultActivityOne.getUsers());
Assert.assertEquals(true, resultActivityOne.getIsPublic());
Activity resultActivityTwo = resultActivities.get(1);
Assert.assertEquals(idTwo, resultActivityTwo.getId());
Assert.assertEquals(userIdTwo, resultActivityTwo.getUserId());
Assert.assertEquals(conversationIdTwo, resultActivityTwo.getConversationId());
Assert.assertEquals(creationTwo, resultActivityTwo.getCreationTime());
Assert.assertEquals(messageTypeTwo, resultActivityTwo.getActivityType());
Assert.assertEquals(messageTwo, resultActivityTwo.getActivityMessage());
Assert.assertEquals(usersTwo, resultActivityTwo.getUsers());
Assert.assertEquals(false, resultActivityTwo.getIsPublic());
}
use of codeu.model.data.Activity in project codeu-2018-team12 by codeu-2018-team12.
the class ProfileServlet method doGet.
/**
* This function fires when a user navigates to a user's profile page. It gets the username from
* the URL, finds the corresponding User, and fetches the messages posted by that user. It then
* forwards to profile.jsp for rendering.
*/
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String requestUrl = request.getRequestURI();
String name = requestUrl.substring("/profile/".length());
User loggedInUser = userStore.getUser((String) request.getSession().getAttribute("user"));
User user = userStore.getUser(name);
List<Activity> activities = null;
List<Activity> activitiesPermitted;
if (user != null) {
activitiesPermitted = loggedInUser == null ? sort(activityStore.getAllPublicActivitiesWithUserId(user.getId())) : sort(activityStore.getAllPermittedActivitiesWithUserId(user.getId(), loggedInUser.getId()));
activities = activityStore.getActivitiesPerPrivacy(user, activitiesPermitted);
}
request.setAttribute("activities", activities);
request.setAttribute("user", user);
request.setAttribute("loggedInUser", loggedInUser);
request.getRequestDispatcher("/WEB-INF/view/profile.jsp").forward(request, response);
}
use of codeu.model.data.Activity in project codeu-2018-team12 by codeu-2018-team12.
the class ChatServletTest method testDoPost_StoresActivity.
@Test
public void testDoPost_StoresActivity() throws IOException, ServletException {
Mockito.when(mockRequest.getRequestURI()).thenReturn("/chat/test_conversation");
Mockito.when(mockSession.getAttribute("user")).thenReturn("test_username");
User fakeUser = new User(UUID.randomUUID(), "test_username", "password", "testbiography", Instant.now(), "codeUChatTestEmail@gmail.com");
Mockito.when(mockUserStore.getUser("test_username")).thenReturn(fakeUser);
Conversation fakeConversation = new Conversation(UUID.randomUUID(), UUID.randomUUID(), "test_conversation", Instant.now());
Mockito.when(mockConversationStore.getConversationWithTitle("test_conversation")).thenReturn(fakeConversation);
fakeConversation.getConversationUsers().add(fakeUser.getId());
Mockito.when(mockRequest.getParameter("submitText")).thenReturn("submitText");
Mockito.when(mockRequest.getParameter("message")).thenReturn("Test message.");
Activity activity = new Activity(UUID.randomUUID(), fakeUser.getId(), fakeConversation.getId(), Instant.now(), "sentMessage", "test_activity_message" + "Test message.", fakeConversation.getConversationUsers(), fakeConversation.getIsPublic());
mockActivityStore.addActivity(activity);
Mockito.when(mockActivityStore.getActivityWithId(activity.getId())).thenReturn(activity);
chatServlet.doPost(mockRequest, mockResponse);
ArgumentCaptor<Message> messageArgumentCaptor = ArgumentCaptor.forClass(Message.class);
Mockito.verify(mockMessageStore).addMessage(messageArgumentCaptor.capture());
Mockito.verify(mockActivityStore).addActivity(activity);
Assert.assertEquals("Test message.", messageArgumentCaptor.getValue().getContent());
Assert.assertTrue(mockActivityStore.getActivityWithId(activity.getId()).getActivityMessage().contains("Test message."));
Mockito.verify(mockResponse).sendRedirect("/chat/test_conversation");
}
Aggregations