@Test
  public void testModifyAlbumModifyPhoto() throws Exception {
    Album album = new Album(TEST_ALBUM_NAME, TEST_ALBUM_DESCRIPTION);
    album.modifyUser(user);
    Album createdAlbum = repository.create(album);

    Photo photo = new Photo(TEST_PHOTO_NAME, TEST_PHOTO_CONTENT);
    photo.setUploadTime(new Date());
    createdAlbum.addToPhotos(photo);
    createdAlbum = repository.modify(createdAlbum);
    em.flush();

    // Execute
    String modifiedTitle = "New Title";
    String modifiedDescription = "New Description";

    long photoId = 0;
    for (Photo eachPhoto : createdAlbum.getPhotos()) {
      if (eachPhoto.equals(photo)) {
        photoId = eachPhoto.getPhotoId();
        eachPhoto.setTitle(modifiedTitle);
        eachPhoto.setDescription(modifiedDescription);
        break;
      }
    }
    Album modifiedAlbum = repository.modify(createdAlbum);

    // Verify
    em.flush();
    em.clear();
    Album actualAlbum = em.find(Album.class, modifiedAlbum.getAlbumId());
    Photo actualPhoto = em.find(Photo.class, photoId);
    assertEquals(modifiedAlbum, actualAlbum);
    assertTrue(actualAlbum.getPhotos().contains(photo));
    assertEquals(modifiedTitle, actualPhoto.getTitle());
    assertEquals(modifiedDescription, actualPhoto.getDescription());
    assertEquals(actualAlbum.getCoverPhoto(), actualPhoto);
    assertEquals(photo, actualAlbum.getCoverPhoto());
  }