Search in sources :

Example 21 with Activity

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);
}
Also used : Activity(codeu.model.data.Activity) Test(org.junit.Test)

Example 22 with Activity

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);
}
Also used : Activity(codeu.model.data.Activity) UUID(java.util.UUID) Test(org.junit.Test)

Example 23 with Activity

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());
}
Also used : Instant(java.time.Instant) ArrayList(java.util.ArrayList) Activity(codeu.model.data.Activity) UUID(java.util.UUID) Test(org.junit.Test)

Example 24 with Activity

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);
}
Also used : User(codeu.model.data.User) Activity(codeu.model.data.Activity)

Example 25 with Activity

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");
}
Also used : User(codeu.model.data.User) Message(codeu.model.data.Message) Activity(codeu.model.data.Activity) Conversation(codeu.model.data.Conversation) Test(org.junit.Test)

Aggregations

Activity (codeu.model.data.Activity)26 User (codeu.model.data.User)16 Test (org.junit.Test)13 UUID (java.util.UUID)11 ArrayList (java.util.ArrayList)8 Conversation (codeu.model.data.Conversation)6 Message (codeu.model.data.Message)2 Email (codeu.utils.Email)2 Instant (java.time.Instant)2 ActivityStore (codeu.model.store.basic.ActivityStore)1 UserStore (codeu.model.store.basic.UserStore)1 ImageStorage (codeu.utils.ImageStorage)1 HashSet (java.util.HashSet)1 HttpSession (javax.servlet.http.HttpSession)1 Part (javax.servlet.http.Part)1