@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()); }